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