xref: /linux/tools/testing/selftests/tc-testing/creating-testcases/scapy-example.json (revision 0898782247ae533d1f4e47a06bc5d4870931b284)
1*14e5175eSLucas Bates[
2*14e5175eSLucas Bates    {
3*14e5175eSLucas Bates        "id": "b1e9",
4*14e5175eSLucas Bates        "name": "Test matching of source IP",
5*14e5175eSLucas Bates        "category": [
6*14e5175eSLucas Bates            "actions",
7*14e5175eSLucas Bates            "scapy"
8*14e5175eSLucas Bates        ],
9*14e5175eSLucas Bates        "plugins": {
10*14e5175eSLucas Bates            "requires": [
11*14e5175eSLucas Bates                "nsPlugin",
12*14e5175eSLucas Bates                "scapyPlugin"
13*14e5175eSLucas Bates            ]
14*14e5175eSLucas Bates        },
15*14e5175eSLucas Bates        "setup": [
16*14e5175eSLucas Bates            [
17*14e5175eSLucas Bates                "$TC qdisc del dev $DEV1 ingress",
18*14e5175eSLucas Bates                0,
19*14e5175eSLucas Bates                1,
20*14e5175eSLucas Bates                2,
21*14e5175eSLucas Bates                255
22*14e5175eSLucas Bates            ],
23*14e5175eSLucas Bates            "$TC qdisc add dev $DEV1 ingress"
24*14e5175eSLucas Bates        ],
25*14e5175eSLucas Bates        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 protocol ip flower src_ip 16.61.16.61 flowid 1:1 action ok",
26*14e5175eSLucas Bates        "scapy": {
27*14e5175eSLucas Bates            "iface": "$DEV0",
28*14e5175eSLucas Bates            "count": 1,
29*14e5175eSLucas Bates            "packet": "Ether(type=0x800)/IP(src='16.61.16.61')/ICMP()"
30*14e5175eSLucas Bates        },
31*14e5175eSLucas Bates        "expExitCode": "0",
32*14e5175eSLucas Bates        "verifyCmd": "$TC -s -j filter ls dev $DEV1 ingress prio 3",
33*14e5175eSLucas Bates        "matchJSON": [
34*14e5175eSLucas Bates            {
35*14e5175eSLucas Bates                "path": [
36*14e5175eSLucas Bates                    1,
37*14e5175eSLucas Bates                    "options",
38*14e5175eSLucas Bates                    "actions",
39*14e5175eSLucas Bates                    0,
40*14e5175eSLucas Bates                    "stats",
41*14e5175eSLucas Bates                    "packets"
42*14e5175eSLucas Bates                ],
43*14e5175eSLucas Bates                "value": 1
44*14e5175eSLucas Bates            }
45*14e5175eSLucas Bates        ],
46*14e5175eSLucas Bates        "teardown": [
47*14e5175eSLucas Bates            "$TC qdisc del dev $DEV1 ingress"
48*14e5175eSLucas Bates        ]
49*14e5175eSLucas Bates    },
50*14e5175eSLucas Bates    {
51*14e5175eSLucas Bates        "id": "e9c4",
52*14e5175eSLucas Bates        "name": "Test matching of source IP with wrong count",
53*14e5175eSLucas Bates        "category": [
54*14e5175eSLucas Bates            "actions",
55*14e5175eSLucas Bates            "scapy"
56*14e5175eSLucas Bates        ],
57*14e5175eSLucas Bates        "plugins": {
58*14e5175eSLucas Bates            "requires": [
59*14e5175eSLucas Bates                "nsPlugin",
60*14e5175eSLucas Bates                "scapyPlugin"
61*14e5175eSLucas Bates            ]
62*14e5175eSLucas Bates        },
63*14e5175eSLucas Bates        "setup": [
64*14e5175eSLucas Bates            [
65*14e5175eSLucas Bates                "$TC qdisc del dev $DEV1 ingress",
66*14e5175eSLucas Bates                0,
67*14e5175eSLucas Bates                1,
68*14e5175eSLucas Bates                2,
69*14e5175eSLucas Bates                255
70*14e5175eSLucas Bates            ],
71*14e5175eSLucas Bates            "$TC qdisc add dev $DEV1 ingress"
72*14e5175eSLucas Bates        ],
73*14e5175eSLucas Bates        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 protocol ip flower src_ip 16.61.16.61 flowid 1:1 action ok",
74*14e5175eSLucas Bates        "scapy": {
75*14e5175eSLucas Bates            "iface": "$DEV0",
76*14e5175eSLucas Bates            "count": 3,
77*14e5175eSLucas Bates            "packet": "Ether(type=0x800)/IP(src='16.61.16.61')/ICMP()"
78*14e5175eSLucas Bates        },
79*14e5175eSLucas Bates        "expExitCode": "0",
80*14e5175eSLucas Bates        "verifyCmd": "$TC -s -j filter ls dev $DEV1 parent ffff:",
81*14e5175eSLucas Bates        "matchJSON": [
82*14e5175eSLucas Bates            {
83*14e5175eSLucas Bates                "path": [
84*14e5175eSLucas Bates                    1,
85*14e5175eSLucas Bates                    "options",
86*14e5175eSLucas Bates                    "actions",
87*14e5175eSLucas Bates                    0,
88*14e5175eSLucas Bates                    "stats",
89*14e5175eSLucas Bates                    "packets"
90*14e5175eSLucas Bates                ],
91*14e5175eSLucas Bates                "value": 1
92*14e5175eSLucas Bates            }
93*14e5175eSLucas Bates        ],
94*14e5175eSLucas Bates        "teardown": [
95*14e5175eSLucas Bates            "$TC qdisc del dev $DEV1 ingress"
96*14e5175eSLucas Bates        ]
97*14e5175eSLucas Bates    }
98*14e5175eSLucas Bates]
99