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