1*4882a593Smuzhiyun[ 2*4882a593Smuzhiyun { 3*4882a593Smuzhiyun "id": "d959", 4*4882a593Smuzhiyun "name": "Add cBPF action with valid bytecode", 5*4882a593Smuzhiyun "category": [ 6*4882a593Smuzhiyun "actions", 7*4882a593Smuzhiyun "bpf" 8*4882a593Smuzhiyun ], 9*4882a593Smuzhiyun "setup": [ 10*4882a593Smuzhiyun [ 11*4882a593Smuzhiyun "$TC action flush action bpf", 12*4882a593Smuzhiyun 0, 13*4882a593Smuzhiyun 1, 14*4882a593Smuzhiyun 255 15*4882a593Smuzhiyun ] 16*4882a593Smuzhiyun ], 17*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 100", 18*4882a593Smuzhiyun "expExitCode": "0", 19*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 100", 20*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 100 ref", 21*4882a593Smuzhiyun "matchCount": "1", 22*4882a593Smuzhiyun "teardown": [ 23*4882a593Smuzhiyun "$TC action flush action bpf" 24*4882a593Smuzhiyun ] 25*4882a593Smuzhiyun }, 26*4882a593Smuzhiyun { 27*4882a593Smuzhiyun "id": "f84a", 28*4882a593Smuzhiyun "name": "Add cBPF action with invalid bytecode", 29*4882a593Smuzhiyun "category": [ 30*4882a593Smuzhiyun "actions", 31*4882a593Smuzhiyun "bpf" 32*4882a593Smuzhiyun ], 33*4882a593Smuzhiyun "setup": [ 34*4882a593Smuzhiyun [ 35*4882a593Smuzhiyun "$TC actions flush action bpf", 36*4882a593Smuzhiyun 0, 37*4882a593Smuzhiyun 1, 38*4882a593Smuzhiyun 255 39*4882a593Smuzhiyun ] 40*4882a593Smuzhiyun ], 41*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,31 0 1 2048,6 0 0 262144,6 0 0 0' index 100", 42*4882a593Smuzhiyun "expExitCode": "255", 43*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 100", 44*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,31 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 100 ref", 45*4882a593Smuzhiyun "matchCount": "0", 46*4882a593Smuzhiyun "teardown": [ 47*4882a593Smuzhiyun "$TC actions flush action bpf" 48*4882a593Smuzhiyun ] 49*4882a593Smuzhiyun }, 50*4882a593Smuzhiyun { 51*4882a593Smuzhiyun "id": "e939", 52*4882a593Smuzhiyun "name": "Add eBPF action with valid object-file", 53*4882a593Smuzhiyun "category": [ 54*4882a593Smuzhiyun "actions", 55*4882a593Smuzhiyun "bpf" 56*4882a593Smuzhiyun ], 57*4882a593Smuzhiyun "plugins": { 58*4882a593Smuzhiyun "requires": "buildebpfPlugin" 59*4882a593Smuzhiyun }, 60*4882a593Smuzhiyun "setup": [ 61*4882a593Smuzhiyun [ 62*4882a593Smuzhiyun "$TC action flush action bpf", 63*4882a593Smuzhiyun 0, 64*4882a593Smuzhiyun 1, 65*4882a593Smuzhiyun 255 66*4882a593Smuzhiyun ] 67*4882a593Smuzhiyun ], 68*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf object-file $EBPFDIR/action.o section action-ok index 667", 69*4882a593Smuzhiyun "expExitCode": "0", 70*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 667", 71*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf action.o:\\[action-ok\\] id [0-9]* tag [0-9a-f]{16}( jited)? default-action pipe.*index 667 ref", 72*4882a593Smuzhiyun "matchCount": "1", 73*4882a593Smuzhiyun "teardown": [ 74*4882a593Smuzhiyun "$TC action flush action bpf" 75*4882a593Smuzhiyun ] 76*4882a593Smuzhiyun }, 77*4882a593Smuzhiyun { 78*4882a593Smuzhiyun "id": "282d", 79*4882a593Smuzhiyun "name": "Add eBPF action with invalid object-file", 80*4882a593Smuzhiyun "category": [ 81*4882a593Smuzhiyun "actions", 82*4882a593Smuzhiyun "bpf" 83*4882a593Smuzhiyun ], 84*4882a593Smuzhiyun "plugins": { 85*4882a593Smuzhiyun "requires": "buildebpfPlugin" 86*4882a593Smuzhiyun }, 87*4882a593Smuzhiyun "setup": [ 88*4882a593Smuzhiyun [ 89*4882a593Smuzhiyun "$TC action flush action bpf", 90*4882a593Smuzhiyun 0, 91*4882a593Smuzhiyun 1, 92*4882a593Smuzhiyun 255 93*4882a593Smuzhiyun ] 94*4882a593Smuzhiyun ], 95*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf object-file $EBPFDIR/action.o section action-ko index 667", 96*4882a593Smuzhiyun "expExitCode": "255", 97*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 667", 98*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf action.o:\\[action-ko\\] id [0-9].*index 667 ref", 99*4882a593Smuzhiyun "matchCount": "0", 100*4882a593Smuzhiyun "teardown": [ 101*4882a593Smuzhiyun [ 102*4882a593Smuzhiyun "$TC action flush action bpf", 103*4882a593Smuzhiyun 0, 104*4882a593Smuzhiyun 1, 105*4882a593Smuzhiyun 255 106*4882a593Smuzhiyun ] 107*4882a593Smuzhiyun ] 108*4882a593Smuzhiyun }, 109*4882a593Smuzhiyun { 110*4882a593Smuzhiyun "id": "d819", 111*4882a593Smuzhiyun "name": "Replace cBPF bytecode and action control", 112*4882a593Smuzhiyun "category": [ 113*4882a593Smuzhiyun "actions", 114*4882a593Smuzhiyun "bpf" 115*4882a593Smuzhiyun ], 116*4882a593Smuzhiyun "setup": [ 117*4882a593Smuzhiyun [ 118*4882a593Smuzhiyun "$TC actions flush action bpf", 119*4882a593Smuzhiyun 0, 120*4882a593Smuzhiyun 1, 121*4882a593Smuzhiyun 255 122*4882a593Smuzhiyun ], 123*4882a593Smuzhiyun [ 124*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 555", 125*4882a593Smuzhiyun 0, 126*4882a593Smuzhiyun 1, 127*4882a593Smuzhiyun 255 128*4882a593Smuzhiyun ] 129*4882a593Smuzhiyun ], 130*4882a593Smuzhiyun "cmdUnderTest": "$TC action replace action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' drop index 555", 131*4882a593Smuzhiyun "expExitCode": "0", 132*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 555", 133*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' default-action drop.*index 555 ref", 134*4882a593Smuzhiyun "matchCount": "1", 135*4882a593Smuzhiyun "teardown": [ 136*4882a593Smuzhiyun "$TC action flush action bpf" 137*4882a593Smuzhiyun ] 138*4882a593Smuzhiyun }, 139*4882a593Smuzhiyun { 140*4882a593Smuzhiyun "id": "6ae3", 141*4882a593Smuzhiyun "name": "Delete cBPF action ", 142*4882a593Smuzhiyun "category": [ 143*4882a593Smuzhiyun "actions", 144*4882a593Smuzhiyun "bpf" 145*4882a593Smuzhiyun ], 146*4882a593Smuzhiyun "setup": [ 147*4882a593Smuzhiyun [ 148*4882a593Smuzhiyun "$TC actions flush action bpf", 149*4882a593Smuzhiyun 0, 150*4882a593Smuzhiyun 1, 151*4882a593Smuzhiyun 255 152*4882a593Smuzhiyun ], 153*4882a593Smuzhiyun [ 154*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 444", 155*4882a593Smuzhiyun 0, 156*4882a593Smuzhiyun 1, 157*4882a593Smuzhiyun 255 158*4882a593Smuzhiyun ] 159*4882a593Smuzhiyun ], 160*4882a593Smuzhiyun "cmdUnderTest": "$TC action delete action bpf index 444", 161*4882a593Smuzhiyun "expExitCode": "0", 162*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 444", 163*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 444 ref", 164*4882a593Smuzhiyun "matchCount": "0", 165*4882a593Smuzhiyun "teardown": [ 166*4882a593Smuzhiyun "$TC action flush action bpf" 167*4882a593Smuzhiyun ] 168*4882a593Smuzhiyun }, 169*4882a593Smuzhiyun { 170*4882a593Smuzhiyun "id": "3e0d", 171*4882a593Smuzhiyun "name": "List cBPF actions", 172*4882a593Smuzhiyun "category": [ 173*4882a593Smuzhiyun "actions", 174*4882a593Smuzhiyun "bpf" 175*4882a593Smuzhiyun ], 176*4882a593Smuzhiyun "setup": [ 177*4882a593Smuzhiyun [ 178*4882a593Smuzhiyun "$TC action flush action bpf", 179*4882a593Smuzhiyun 0, 180*4882a593Smuzhiyun 1, 181*4882a593Smuzhiyun 255 182*4882a593Smuzhiyun ], 183*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' ok index 101", 184*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' drop index 102", 185*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 33024,6 0 0 262144,6 0 0 0' continue index 103" 186*4882a593Smuzhiyun ], 187*4882a593Smuzhiyun "cmdUnderTest": "$TC action list action bpf", 188*4882a593Smuzhiyun "expExitCode": "0", 189*4882a593Smuzhiyun "verifyCmd": "$TC action list action bpf", 190*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode", 191*4882a593Smuzhiyun "matchCount": "3", 192*4882a593Smuzhiyun "teardown": [ 193*4882a593Smuzhiyun "$TC actions flush action bpf" 194*4882a593Smuzhiyun ] 195*4882a593Smuzhiyun }, 196*4882a593Smuzhiyun { 197*4882a593Smuzhiyun "id": "55ce", 198*4882a593Smuzhiyun "name": "Flush BPF actions", 199*4882a593Smuzhiyun "category": [ 200*4882a593Smuzhiyun "actions", 201*4882a593Smuzhiyun "bpf" 202*4882a593Smuzhiyun ], 203*4882a593Smuzhiyun "setup": [ 204*4882a593Smuzhiyun [ 205*4882a593Smuzhiyun "$TC actions flush action bpf", 206*4882a593Smuzhiyun 0, 207*4882a593Smuzhiyun 1, 208*4882a593Smuzhiyun 255 209*4882a593Smuzhiyun ], 210*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' ok index 101", 211*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' drop index 102", 212*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 33024,6 0 0 262144,6 0 0 0' continue index 103" 213*4882a593Smuzhiyun ], 214*4882a593Smuzhiyun "cmdUnderTest": "$TC action flush action bpf", 215*4882a593Smuzhiyun "expExitCode": "0", 216*4882a593Smuzhiyun "verifyCmd": "$TC action list action bpf", 217*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode", 218*4882a593Smuzhiyun "matchCount": "0", 219*4882a593Smuzhiyun "teardown": [ 220*4882a593Smuzhiyun "$TC actions flush action bpf" 221*4882a593Smuzhiyun ] 222*4882a593Smuzhiyun }, 223*4882a593Smuzhiyun { 224*4882a593Smuzhiyun "id": "ccc3", 225*4882a593Smuzhiyun "name": "Add cBPF action with duplicate index", 226*4882a593Smuzhiyun "category": [ 227*4882a593Smuzhiyun "actions", 228*4882a593Smuzhiyun "bpf" 229*4882a593Smuzhiyun ], 230*4882a593Smuzhiyun "setup": [ 231*4882a593Smuzhiyun [ 232*4882a593Smuzhiyun "$TC actions flush action bpf", 233*4882a593Smuzhiyun 0, 234*4882a593Smuzhiyun 1, 235*4882a593Smuzhiyun 255 236*4882a593Smuzhiyun ], 237*4882a593Smuzhiyun "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 4294967295" 238*4882a593Smuzhiyun ], 239*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' index 4294967295", 240*4882a593Smuzhiyun "expExitCode": "255", 241*4882a593Smuzhiyun "verifyCmd": "$TC action get action bpf index 4294967295", 242*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 4294967295", 243*4882a593Smuzhiyun "matchCount": "1", 244*4882a593Smuzhiyun "teardown": [ 245*4882a593Smuzhiyun "$TC action flush action bpf" 246*4882a593Smuzhiyun ] 247*4882a593Smuzhiyun }, 248*4882a593Smuzhiyun { 249*4882a593Smuzhiyun "id": "89c7", 250*4882a593Smuzhiyun "name": "Add cBPF action with invalid index", 251*4882a593Smuzhiyun "category": [ 252*4882a593Smuzhiyun "actions", 253*4882a593Smuzhiyun "bpf" 254*4882a593Smuzhiyun ], 255*4882a593Smuzhiyun "setup": [ 256*4882a593Smuzhiyun [ 257*4882a593Smuzhiyun "$TC actions flush action bpf", 258*4882a593Smuzhiyun 0, 259*4882a593Smuzhiyun 1, 260*4882a593Smuzhiyun 255 261*4882a593Smuzhiyun ] 262*4882a593Smuzhiyun ], 263*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' index 4294967296 cookie 123456", 264*4882a593Smuzhiyun "expExitCode": "255", 265*4882a593Smuzhiyun "verifyCmd": "$TC action ls action bpf", 266*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*cookie 123456", 267*4882a593Smuzhiyun "matchCount": "0", 268*4882a593Smuzhiyun "teardown": [ 269*4882a593Smuzhiyun "$TC action flush action bpf" 270*4882a593Smuzhiyun ] 271*4882a593Smuzhiyun }, 272*4882a593Smuzhiyun { 273*4882a593Smuzhiyun "id": "7ab9", 274*4882a593Smuzhiyun "name": "Add cBPF action with cookie", 275*4882a593Smuzhiyun "category": [ 276*4882a593Smuzhiyun "actions", 277*4882a593Smuzhiyun "bpf" 278*4882a593Smuzhiyun ], 279*4882a593Smuzhiyun "setup": [ 280*4882a593Smuzhiyun [ 281*4882a593Smuzhiyun "$TC actions flush action bpf", 282*4882a593Smuzhiyun 0, 283*4882a593Smuzhiyun 1, 284*4882a593Smuzhiyun 255 285*4882a593Smuzhiyun ] 286*4882a593Smuzhiyun ], 287*4882a593Smuzhiyun "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' cookie d0d0d0d0d0d0d0d0", 288*4882a593Smuzhiyun "expExitCode": "0", 289*4882a593Smuzhiyun "verifyCmd": "$TC action list action bpf", 290*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf.*cookie d0d0d0d0d0d0d0", 291*4882a593Smuzhiyun "matchCount": "1", 292*4882a593Smuzhiyun "teardown": [ 293*4882a593Smuzhiyun "$TC action flush action bpf" 294*4882a593Smuzhiyun ] 295*4882a593Smuzhiyun }, 296*4882a593Smuzhiyun { 297*4882a593Smuzhiyun "id": "b8a1", 298*4882a593Smuzhiyun "name": "Replace bpf action with invalid goto_chain control", 299*4882a593Smuzhiyun "category": [ 300*4882a593Smuzhiyun "actions", 301*4882a593Smuzhiyun "bpf" 302*4882a593Smuzhiyun ], 303*4882a593Smuzhiyun "setup": [ 304*4882a593Smuzhiyun [ 305*4882a593Smuzhiyun "$TC actions flush action bpf", 306*4882a593Smuzhiyun 0, 307*4882a593Smuzhiyun 1, 308*4882a593Smuzhiyun 255 309*4882a593Smuzhiyun ], 310*4882a593Smuzhiyun "$TC action add action bpf bytecode '1,6 0 0 4294967295' pass index 90" 311*4882a593Smuzhiyun ], 312*4882a593Smuzhiyun "cmdUnderTest": "$TC action replace action bpf bytecode '1,6 0 0 4294967295' goto chain 42 index 90 cookie c1a0c1a0", 313*4882a593Smuzhiyun "expExitCode": "255", 314*4882a593Smuzhiyun "verifyCmd": "$TC action list action bpf", 315*4882a593Smuzhiyun "matchPattern": "action order [0-9]*: bpf.* default-action pass.*index 90", 316*4882a593Smuzhiyun "matchCount": "1", 317*4882a593Smuzhiyun "teardown": [ 318*4882a593Smuzhiyun "$TC action flush action bpf" 319*4882a593Smuzhiyun ] 320*4882a593Smuzhiyun } 321*4882a593Smuzhiyun] 322