Message ID | 20241023100541.974362-1-vladimir.oltean@nxp.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a13e690191eafc154b3f60afe9ce35aa9b9128b4 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net/sched: sch_api: fix xa_insert() error path in tcf_block_get_ext() | expand |
On Wed, Oct 23, 2024 at 01:05:41PM +0300, Vladimir Oltean wrote: > This command: > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > Error: block dev insert failed: -EBUSY. > > fails because user space requests the same block index to be set for > both ingress and egress. > > [ side note, I don't think it even failed prior to commit 913b47d3424e > ("net/sched: Introduce tc block netdev tracking infra"), because this > is a command from an old set of notes of mine which used to work, but > alas, I did not scientifically bisect this ] > > The problem is not that it fails, but rather, that the second time > around, it fails differently (and irrecoverably): > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > Error: dsa_core: Flow block cb is busy. > > [ another note: the extack is added by me for illustration purposes. > the context of the problem is that clsact_init() obtains the same > &q->ingress_block pointer as &q->egress_block, and since we call > tcf_block_get_ext() on both of them, "dev" will be added to the > block->ports xarray twice, thus failing the operation: once through > the ingress block pointer, and once again through the egress block > pointer. the problem itself is that when xa_insert() fails, we have > emitted a FLOW_BLOCK_BIND command through ndo_setup_tc(), but the > offload never sees a corresponding FLOW_BLOCK_UNBIND. ] > > Even correcting the bad user input, we still cannot recover: > > $ tc qdisc replace dev swp3 ingress_block 1 egress_block 2 clsact > Error: dsa_core: Flow block cb is busy. > > Basically the only way to recover is to reboot the system, or unbind and > rebind the net device driver. > > To fix the bug, we need to fill the correct error teardown path which > was missed during code movement, and call tcf_block_offload_unbind() > when xa_insert() fails. > > [ last note, fundamentally I blame the label naming convention in > tcf_block_get_ext() for the bug. The labels should be named after what > they do, not after the error path that jumps to them. This way, it is > obviously wrong that two labels pointing to the same code mean > something is wrong, and checking the code correctness at the goto site > is also easier ] Yes, a text book case of why that practice is discouraged. > Fixes: 94e2557d086a ("net: sched: move block device tracking into tcf_block_get/put_ext()") > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Simon Horman <horms@kernel.org>
On Wed, Oct 23, 2024 at 6:05 AM Vladimir Oltean <vladimir.oltean@nxp.com> wrote: > > This command: > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > Error: block dev insert failed: -EBUSY. > > fails because user space requests the same block index to be set for > both ingress and egress. > > [ side note, I don't think it even failed prior to commit 913b47d3424e > ("net/sched: Introduce tc block netdev tracking infra"), because this > is a command from an old set of notes of mine which used to work, but > alas, I did not scientifically bisect this ] > What would be the use case for having both share the same index? Mirror action for example could be used to target a group of ports grouped by blockid in which case a unique blockid simplifies. > The problem is not that it fails, but rather, that the second time > around, it fails differently (and irrecoverably): > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > Error: dsa_core: Flow block cb is busy. > > [ another note: the extack is added by me for illustration purposes. > the context of the problem is that clsact_init() obtains the same > &q->ingress_block pointer as &q->egress_block, and since we call > tcf_block_get_ext() on both of them, "dev" will be added to the > block->ports xarray twice, thus failing the operation: once through > the ingress block pointer, and once again through the egress block > pointer. the problem itself is that when xa_insert() fails, we have > emitted a FLOW_BLOCK_BIND command through ndo_setup_tc(), but the > offload never sees a corresponding FLOW_BLOCK_UNBIND. ] > > Even correcting the bad user input, we still cannot recover: > > $ tc qdisc replace dev swp3 ingress_block 1 egress_block 2 clsact > Error: dsa_core: Flow block cb is busy. > > Basically the only way to recover is to reboot the system, or unbind and > rebind the net device driver. > > To fix the bug, we need to fill the correct error teardown path which > was missed during code movement, and call tcf_block_offload_unbind() > when xa_insert() fails. > > [ last note, fundamentally I blame the label naming convention in > tcf_block_get_ext() for the bug. The labels should be named after what > they do, not after the error path that jumps to them. This way, it is > obviously wrong that two labels pointing to the same code mean > something is wrong, and checking the code correctness at the goto site > is also easier ] > > Fixes: 94e2557d086a ("net: sched: move block device tracking into tcf_block_get/put_ext()") > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Fix makes sense. Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> I am also hoping you did run the tdc tests (despite this not looking like it breaks any existing feature) cheers, jamal > --- > net/sched/cls_api.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c > index 7637f979d689..2a7d856cc334 100644 > --- a/net/sched/cls_api.c > +++ b/net/sched/cls_api.c > @@ -1518,6 +1518,7 @@ int tcf_block_get_ext(struct tcf_block **p_block, struct Qdisc *q, > return 0; > > err_dev_insert: > + tcf_block_offload_unbind(block, q, ei); > err_block_offload_bind: > tcf_chain0_head_change_cb_del(block, ei); > err_chain0_head_change_cb_add: > -- > 2.43.0 >
On Thu, Oct 24, 2024 at 11:39:51AM -0400, Jamal Hadi Salim wrote: > On Wed, Oct 23, 2024 at 6:05 AM Vladimir Oltean <vladimir.oltean@nxp.com> wrote: > > > > This command: > > > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > > Error: block dev insert failed: -EBUSY. > > > > fails because user space requests the same block index to be set for > > both ingress and egress. > > > > [ side note, I don't think it even failed prior to commit 913b47d3424e > > ("net/sched: Introduce tc block netdev tracking infra"), because this > > is a command from an old set of notes of mine which used to work, but > > alas, I did not scientifically bisect this ] > > > > What would be the use case for having both share the same index? > Mirror action for example could be used to target a group of ports > grouped by blockid in which case a unique blockid simplifies. > > > The problem is not that it fails As mentioned, I don't have a use case for sharing block indices between ingress and egress. I did have old commands which used to not fail (incorrectly, one might say), but they stopped working without notice, and the kernel was not being very obvious about it. Had the kernel behavior in this case been more clear/consistent, and not failed any subsequent command I would type in, even if valid, it would have taken me less time to find out. Hence this patch, and also another one I have prepared for net-next which improves the error message. > Fix makes sense. > Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Thanks. > I am also hoping you did run the tdc tests (despite this not looking > like it breaks any existing feature) To be honest, I had not, because I had doubts that this error path would be exercised in any of the tests (and I still don't think it is). But I did run them now, they seem to pass, except for the last 11 of them which seem to be skipped, and I really do not have the patience right now to debug and see why. ~/selftests/tc-testing# ./tdc.py -- scapy/SubPlugin.__init__ -- ns/SubPlugin.__init__ Test 319a: Add pedit action that mangles IP TTL Test 7e67: Replace pedit action with invalid goto chain Test 377e: Add pedit action with RAW_OP offset u32 Test a0ca: Add pedit action with RAW_OP offset u32 (INVALID) Test dd8a: Add pedit action with RAW_OP offset u16 u16 Test 53db: Add pedit action with RAW_OP offset u16 (INVALID) Test 5c7e: Add pedit action with RAW_OP offset u8 add value Test 2893: Add pedit action with RAW_OP offset u8 quad Test 3a07: Add pedit action with RAW_OP offset u8-u16-u8 Test ab0f: Add pedit action with RAW_OP offset u16-u8-u8 Test 9d12: Add pedit action with RAW_OP offset u32 set u16 clear u8 invert Test ebfa: Add pedit action with RAW_OP offset overflow u32 (INVALID) Test f512: Add pedit action with RAW_OP offset u16 at offmask shift set Test c2cb: Add pedit action with RAW_OP offset u32 retain value Test 1762: Add pedit action with RAW_OP offset u8 clear value Test bcee: Add pedit action with RAW_OP offset u8 retain value Test e89f: Add pedit action with RAW_OP offset u16 retain value Test c282: Add pedit action with RAW_OP offset u32 clear value Test c422: Add pedit action with RAW_OP offset u16 invert value Test d3d3: Add pedit action with RAW_OP offset u32 invert value Test 57e5: Add pedit action with RAW_OP offset u8 preserve value Test 99e0: Add pedit action with RAW_OP offset u16 preserve value Test 1892: Add pedit action with RAW_OP offset u32 preserve value Test 4b60: Add pedit action with RAW_OP negative offset u16/u32 set value Test a5a7: Add pedit action with LAYERED_OP eth set src Test 86d4: Add pedit action with LAYERED_OP eth set src & dst Test f8a9: Add pedit action with LAYERED_OP eth set dst Test c715: Add pedit action with LAYERED_OP eth set src (INVALID) Test 8131: Add pedit action with LAYERED_OP eth set dst (INVALID) Test ba22: Add pedit action with LAYERED_OP eth type set/clear sequence Test dec4: Add pedit action with LAYERED_OP eth set type (INVALID) Test ab06: Add pedit action with LAYERED_OP eth add type Test 918d: Add pedit action with LAYERED_OP eth invert src Test a8d4: Add pedit action with LAYERED_OP eth invert dst Test ee13: Add pedit action with LAYERED_OP eth invert type Test 7588: Add pedit action with LAYERED_OP ip set src Test 0fa7: Add pedit action with LAYERED_OP ip set dst Test 5810: Add pedit action with LAYERED_OP ip set src & dst Test 1092: Add pedit action with LAYERED_OP ip set ihl & dsfield Test 02d8: Add pedit action with LAYERED_OP ip set ttl & protocol Test 3e2d: Add pedit action with LAYERED_OP ip set ttl (INVALID) Test 31ae: Add pedit action with LAYERED_OP ip ttl clear/set Test 486f: Add pedit action with LAYERED_OP ip set duplicate fields Test e790: Add pedit action with LAYERED_OP ip set ce, df, mf, firstfrag, nofrag fields Test cc8a: Add pedit action with LAYERED_OP ip set tos Test 7a17: Add pedit action with LAYERED_OP ip set precedence Test c3b6: Add pedit action with LAYERED_OP ip add tos Test 43d3: Add pedit action with LAYERED_OP ip add precedence Test 438e: Add pedit action with LAYERED_OP ip clear tos Test 6b1b: Add pedit action with LAYERED_OP ip clear precedence Test 824a: Add pedit action with LAYERED_OP ip invert tos Test 106f: Add pedit action with LAYERED_OP ip invert precedence Test 6829: Add pedit action with LAYERED_OP beyond ip set dport & sport Test afd8: Add pedit action with LAYERED_OP beyond ip set icmp_type & icmp_code Test 3143: Add pedit action with LAYERED_OP beyond ip set dport (INVALID) Test 815c: Add pedit action with LAYERED_OP ip6 set src Test 4dae: Add pedit action with LAYERED_OP ip6 set dst Test fc1f: Add pedit action with LAYERED_OP ip6 set src & dst Test 6d34: Add pedit action with LAYERED_OP ip6 dst retain value (INVALID) Test 94bb: Add pedit action with LAYERED_OP ip6 traffic_class Test 6f5e: Add pedit action with LAYERED_OP ip6 flow_lbl Test 6795: Add pedit action with LAYERED_OP ip6 set payload_len, nexthdr, hoplimit Test 1442: Add pedit action with LAYERED_OP tcp set dport & sport Test b7ac: Add pedit action with LAYERED_OP tcp sport set (INVALID) Test cfcc: Add pedit action with LAYERED_OP tcp flags set Test 3bc4: Add pedit action with LAYERED_OP tcp set dport, sport & flags fields Test f1c8: Add pedit action with LAYERED_OP udp set dport & sport Test d784: Add pedit action with mixed RAW/LAYERED_OP #1 Test 70ca: Add pedit action with mixed RAW/LAYERED_OP #2 Test 2b11: Add tunnel_key set action with mandatory parameters Test dc6b: Add tunnel_key set action with missing mandatory src_ip parameter Test 7f25: Add tunnel_key set action with missing mandatory dst_ip parameter Test a5e0: Add tunnel_key set action with invalid src_ip parameter Test eaa8: Add tunnel_key set action with invalid dst_ip parameter Test 3b09: Add tunnel_key set action with invalid id parameter Test 9625: Add tunnel_key set action with invalid dst_port parameter Test 05af: Add tunnel_key set action with optional dst_port parameter Test da80: Add tunnel_key set action with index at 32-bit maximum Test d407: Add tunnel_key set action with index exceeding 32-bit maximum Test 5cba: Add tunnel_key set action with id value at 32-bit maximum Test e84a: Add tunnel_key set action with id value exceeding 32-bit maximum Test 9c19: Add tunnel_key set action with dst_port value at 16-bit maximum Test 3bd9: Add tunnel_key set action with dst_port value exceeding 16-bit maximum Test 68e2: Add tunnel_key unset action Test 6192: Add tunnel_key unset continue action Test 061d: Add tunnel_key set continue action with cookie Test 8acb: Add tunnel_key set continue action with invalid cookie Test a07e: Add tunnel_key action with no set/unset command specified Test b227: Add tunnel_key action with csum option Test 58a7: Add tunnel_key action with nocsum option Test 2575: Add tunnel_key action with not-supported parameter Test 7a88: Add tunnel_key action with cookie parameter Test 4f20: Add tunnel_key action with a single geneve option parameter Test e33d: Add tunnel_key action with multiple geneve options parameter Test 0778: Add tunnel_key action with invalid class geneve option parameter Test 4ae8: Add tunnel_key action with invalid type geneve option parameter Test 4039: Add tunnel_key action with short data length geneve option parameter Test 26a6: Add tunnel_key action with non-multiple of 4 data length geneve option parameter Test f44d: Add tunnel_key action with incomplete geneve options parameter Test 7afc: Replace tunnel_key set action with all parameters Test 364d: Replace tunnel_key set action with all parameters and cookie Test 937c: Fetch all existing tunnel_key actions Test 6783: Flush all existing tunnel_key actions Test 8242: Replace tunnel_key set action with invalid goto chain Test 0cd2: Add tunnel_key set action with no_percpu flag Test 3671: Delete tunnel_key set action with valid index Test 8597: Delete tunnel_key set action with invalid index Test 6bda: Add tunnel_key action with nofrag option Test 7682: Create valid ife encode action with mark and pass control Test ef47: Create valid ife encode action with mark and pipe control Test df43: Create valid ife encode action with mark and continue control Test e4cf: Create valid ife encode action with mark and drop control Test ccba: Create valid ife encode action with mark and reclassify control Test a1cf: Create valid ife encode action with mark and jump control Test cb3d: Create valid ife encode action with mark value at 32-bit maximum Test 1efb: Create ife encode action with mark value exceeding 32-bit maximum Test 95ed: Create valid ife encode action with prio and pass control Test aa17: Create valid ife encode action with prio and pipe control Test 74c7: Create valid ife encode action with prio and continue control Test 7a97: Create valid ife encode action with prio and drop control Test f66b: Create valid ife encode action with prio and reclassify control Test 3056: Create valid ife encode action with prio and jump control Test 7dd3: Create valid ife encode action with prio value at 32-bit maximum Test 2ca1: Create ife encode action with prio value exceeding 32-bit maximum Test 05bb: Create valid ife encode action with tcindex and pass control Test ce65: Create valid ife encode action with tcindex and pipe control Test 09cd: Create valid ife encode action with tcindex and continue control Test 8eb5: Create valid ife encode action with tcindex and continue control Test 451a: Create valid ife encode action with tcindex and drop control Test d76c: Create valid ife encode action with tcindex and reclassify control Test e731: Create valid ife encode action with tcindex and jump control Test b7b8: Create valid ife encode action with tcindex value at 16-bit maximum Test d0d8: Create ife encode action with tcindex value exceeding 16-bit maximum Test 2a9c: Create valid ife encode action with mac src parameter Test cf5c: Create valid ife encode action with mac dst parameter Test 2353: Create valid ife encode action with mac src and mac dst parameters Test 552c: Create valid ife encode action with mark and type parameters Test 0421: Create valid ife encode action with prio and type parameters Test 4017: Create valid ife encode action with tcindex and type parameters Test fac3: Create valid ife encode action with index at 32-bit maximum Test 7c25: Create valid ife decode action with pass control Test dccb: Create valid ife decode action with pipe control Test 7bb9: Create valid ife decode action with continue control Test d9ad: Create valid ife decode action with drop control Test 219f: Create valid ife decode action with reclassify control Test 8f44: Create valid ife decode action with jump control Test 56cf: Create ife encode action with index exceeding 32-bit maximum Test ee94: Create ife encode action with invalid control Test b330: Create ife encode action with cookie Test bbc0: Create ife encode action with invalid argument Test d54a: Create ife encode action with invalid type argument Test 7ee0: Create ife encode action with invalid mac src argument Test 0a7d: Create ife encode action with invalid mac dst argument Test a0e2: Replace ife encode action with invalid goto chain control Test a972: Delete ife encode action with valid index Test 1272: Delete ife encode action with invalid index Test 6236: Add skbedit action with valid mark Test c8cf: Add skbedit action with 32-bit maximum mark Test 407b: Add skbedit action with mark exceeding 32-bit maximum Test d4cd: Add skbedit action with valid mark and mask Test baa7: Add skbedit action with valid mark and 32-bit maximum mask Test 62a5: Add skbedit action with valid mark and mask exceeding 32-bit maximum Test bc15: Add skbedit action with valid mark and mask with invalid format Test 57c2: Replace skbedit action with new mask Test 081d: Add skbedit action with priority Test cc37: Add skbedit action with invalid priority Test 3c95: Add skbedit action with queue_mapping Test 985c: Add skbedit action with queue_mapping exceeding 16-bit maximum Test 224f: Add skbedit action with ptype host Test d1a3: Add skbedit action with ptype otherhost Test b9c6: Add skbedit action with invalid ptype Test 464a: Add skbedit action with control pipe Test 212f: Add skbedit action with control reclassify Test 0651: Add skbedit action with control pass Test cc53: Add skbedit action with control drop Test ec16: Add skbedit action with control jump Test db54: Add skbedit action with control continue Test 1055: Add skbedit action with cookie Test 5172: List skbedit actions Test a6d6: Add skbedit action with index at 32-bit maximum Test f0f4: Add skbedit action with index exceeding 32-bit maximum Test 38f3: Delete skbedit action Test ce97: Flush skbedit actions Test 1b2b: Replace skbedit action with invalid goto_chain control Test 630c: Add batch of 32 skbedit actions with all parameters and cookie Test 706d: Delete batch of 32 skbedit actions with all parameters Test e89a: Add valid pass action Test a02c: Add valid pipe action Test feef: Add valid reclassify action Test 8a7a: Add valid drop action Test 9a52: Add valid continue action Test d700: Add invalid action Test 9215: Add action with duplicate index Test 798e: Add action with index exceeding 32-bit maximum Test 22be: Add action with index at 32-bit maximum Test ac2a: List actions Test 3edf: Flush gact actions Test 63ec: Delete pass action Test 46be: Delete pipe action Test 2e08: Delete reclassify action Test 99c4: Delete drop action Test fb6b: Delete continue action Test 0eb3: Delete non-existent action Test f02c: Replace gact action Test 525f: Get gact action by index Test 1021: Add batch of 32 gact pass actions Test da7a: Add batch of 32 gact continue actions with cookie Test 8aa3: Delete batch of 32 gact continue actions Test 8e47: Add gact action with random determ goto chain control action Test ca89: Replace gact action with invalid goto chain control Test 95ad: Add gact pass action with no_percpu flag Test 7f52: Try to flush action which is referenced by filter Test ae1e: Try to flush actions when last one is referenced by filter Test d959: Add cBPF action with valid bytecode Test f84a: Add cBPF action with invalid bytecode Test e939: Add eBPF action with valid object-file Test 282d: Add eBPF action with invalid object-file Test d819: Replace cBPF bytecode and action control Test 6ae3: Delete cBPF action Test 3e0d: List cBPF actions Test 55ce: Flush BPF actions Test ccc3: Add cBPF action with duplicate index Test 89c7: Add cBPF action with invalid index Test 7ab9: Add cBPF action with cookie Test b8a1: Replace bpf action with invalid goto_chain control Test 2002: Add valid connmark action with defaults Test 56a5: Add valid connmark action with control pass Test 7c66: Add valid connmark action with control drop Test a913: Add valid connmark action with control pipe Test bdd8: Add valid connmark action with control reclassify Test b8be: Add valid connmark action with control continue Test d8a6: Add valid connmark action with control jump Test aae8: Add valid connmark action with zone argument Test 2f0b: Add valid connmark action with invalid zone argument Test 9305: Add connmark action with unsupported argument Test 71ca: Add valid connmark action and replace it Test 5f8f: Add valid connmark action with cookie Test c506: Replace connmark with invalid goto chain control Test 6571: Delete connmark action with valid index Test 3426: Delete connmark action with invalid index Test 7d50: Add skbmod action to set destination mac Test 9b29: Add skbmod action to set source mac Test 1724: Add skbmod action with invalid mac Test 3cf1: Add skbmod action with valid etype Test a749: Add skbmod action with invalid etype Test bfe6: Add skbmod action to swap mac Test 839b: Add skbmod action with control pipe Test c167: Add skbmod action with control reclassify Test 0c2f: Add skbmod action with control drop Test d113: Add skbmod action with control continue Test 7242: Add skbmod action with control pass Test 6046: Add skbmod action with control reclassify and cookie Test 58cb: List skbmod actions Test 9aa8: Get a single skbmod action from a list Test e93a: Delete an skbmod action Test 40c2: Flush skbmod actions Test b651: Replace skbmod action with invalid goto_chain control Test fe09: Add skbmod action to mark ECN bits Test 6d84: Add csum iph action Test 1862: Add csum ip4h action Test 15c6: Add csum ipv4h action Test bf47: Add csum icmp action Test cc1d: Add csum igmp action Test bccc: Add csum foobar action Test 3bb4: Add csum tcp action Test 759c: Add csum udp action Test bdb6: Add csum udp xor iph action Test c220: Add csum udplite action Test 8993: Add csum sctp action Test b138: Add csum ip & icmp action Test eeda: Add csum ip & sctp action Test 0017: Add csum udp or tcp action Test b10b: Add all 7 csum actions Test ce92: Add csum udp action with cookie Test 912f: Add csum icmp action with large cookie Test 879b: Add batch of 32 csum tcp actions Test b4e9: Delete batch of 32 csum actions Test 0015: Add batch of 32 csum tcp actions with large cookies Test 989e: Delete batch of 32 csum actions with large cookies Test d128: Replace csum action with invalid goto chain control Test eaf0: Add csum iph action with no_percpu flag Test c826: Add ctinfo action with default setting Test 0286: Add ctinfo action with dscp Test 4938: Add ctinfo action with valid cpmark and zone Test 7593: Add ctinfo action with drop control Test 2961: Replace ctinfo action zone and action control Test e567: Delete ctinfo action with valid index Test 6a91: Delete ctinfo action with invalid index Test 5232: List ctinfo actions Test 7702: Flush ctinfo actions Test 3201: Add ctinfo action with duplicate index Test 8295: Add ctinfo action with invalid index Test 3964: Replace ctinfo action with invalid goto_chain control Test 696a: Add simple ct action Test e38c: Add simple ct action with cookie Test 9f20: Add ct clear action Test 0bc1: Add ct clear action with cookie of max length Test 5bea: Try ct with zone Test d5d6: Try ct with zone, commit Test 029f: Try ct with zone, commit, mark Test a58d: Try ct with zone, commit, mark, nat Test 901b: Try ct with full nat ipv4 range syntax Test 072b: Try ct with full nat ipv6 syntax Test 3420: Try ct with full nat ipv6 range syntax Test 4470: Try ct with full nat ipv6 range syntax + force Test 5d88: Try ct with label Test 04d4: Try ct with label with mask Test 9751: Try ct with mark + mask Test 2faa: Try ct with mark + mask and cookie Test 3991: Add simple ct action with no_percpu flag Test 3992: Add ct action triggering DNAT tuple conflict [ 515.492083] v0p0id3992: entered promiscuous mode WARNING: No route found (no default route?) WARNING: No route found (no default[ 515.596668] v0p0id3992: left promiscuous mode route?) . Sent 1 packets. [ 515.629639] v0p0id3992: entered promiscuous mode WARNING: more No route found (no default route?) . Sent 1 packets.[ 515.682169] v0p0id3992: left promiscuous mode Test 6f5a: Add vlan pop action with pipe opcode Test df35: Add vlan pop action with pass opcode Test b0d4: Add vlan pop action with drop opcode Test 95ee: Add vlan pop action with reclassify opcode Test 0283: Add vlan pop action with continue opcode Test b6b9: Add vlan pop action with jump opcode Test 87c3: Add vlan pop action with trap opcode Test a178: Add vlan pop action with invalid opcode Test ee6f: Add vlan pop action with index at 32-bit maximum Test 0dfa: Add vlan pop action with index exceeding 32-bit maximum Test 2b91: Add vlan invalid action Test 57fc: Add vlan push action with invalid protocol type Test 3989: Add vlan push action with default protocol and priority Test 79dc: Add vlan push action with protocol 802.1Q and priority 3 Test 4d73: Add vlan push action with protocol 802.1AD Test 1f4b: Add vlan push action with maximum 12-bit vlan ID Test 1f7b: Add vlan push action with invalid vlan ID Test fe40: Add vlan push action with maximum 3-bit IEEE 802.1p priority Test 5d02: Add vlan push action with invalid IEEE 802.1p priority Test ba5b: Add vlan modify action for protocol 802.1Q setting priority 0 Test 6812: Add vlan modify action for protocol 802.1Q Test 5a31: Add vlan modify action for protocol 802.1AD Test 3deb: Replace existing vlan push action with new ID Test 9e76: Replace existing vlan push action with new protocol Test ede4: Replace existing vlan push action with new priority Test d413: Replace existing vlan pop action with new cookie Test 83a4: Delete vlan pop action Test ed1e: Delete vlan push action for protocol 802.1Q Test a2a3: Flush vlan actions Test 1d78: Add vlan push action with cookie Test e394: Replace vlan push action with invalid goto chain control Test 294e: Add batch of 32 vlan push actions with cookie Test 56f7: Delete batch of 32 vlan push actions Test 759f: Add batch of 32 vlan pop actions with cookie Test c84a: Delete batch of 32 vlan pop actions Test 1a3d: Add vlan pop action with no_percpu flag Test 7565: Add nat action on ingress with default control action Test fd79: Add nat action on ingress with pipe control action Test eab9: Add nat action on ingress with continue control action Test c53a: Add nat action on ingress with reclassify control action Test 76c9: Add nat action on ingress with jump control action Test 24c6: Add nat action on ingress with drop control action Test 2120: Add nat action on ingress with maximum index value Test 3e9d: Add nat action on ingress with invalid index value Test f6c9: Add nat action on ingress with invalid IP address Test be25: Add nat action on ingress with invalid argument Test a7bd: Add nat action on ingress with DEFAULT IP address Test ee1e: Add nat action on ingress with ANY IP address Test 1de8: Add nat action on ingress with ALL IP address Test 8dba: Add nat action on egress with default control action Test 19a7: Add nat action on egress with pipe control action Test f1d9: Add nat action on egress with continue control action Test 6d4a: Add nat action on egress with reclassify control action Test b313: Add nat action on egress with jump control action Test d9fc: Add nat action on egress with drop control action Test a895: Add nat action on egress with DEFAULT IP address Test 2572: Add nat action on egress with ANY IP address Test 37f3: Add nat action on egress with ALL IP address Test 6054: Add nat action on egress with cookie Test 79d6: Add nat action on ingress with cookie Test 4b12: Replace nat action with invalid goto chain control Test b811: Delete nat action with valid index Test a521: Delete nat action with invalid index Test 9784: Add valid sample action with mandatory arguments Test 5c91: Add valid sample action with mandatory arguments and continue control action Test 334b: Add valid sample action with mandatory arguments and drop control action Test da69: Add valid sample action with mandatory arguments and reclassify control action Test 13ce: Add valid sample action with mandatory arguments and pipe control action Test 1886: Add valid sample action with mandatory arguments and jump control action Test 7571: Add sample action with invalid rate Test b6d4: Add sample action with mandatory arguments and invalid control action Test a874: Add invalid sample action without mandatory arguments Test ac01: Add invalid sample action without mandatory argument rate Test 4203: Add invalid sample action without mandatory argument group Test 14a7: Add invalid sample action without mandatory argument group Test 8f2e: Add valid sample action with trunc argument Test 45f8: Add sample action with maximum rate argument Test ad0c: Add sample action with maximum trunc argument Test 83a9: Add sample action with maximum group argument Test ed27: Add sample action with invalid rate argument Test 2eae: Add sample action with invalid group argument Test 6ff3: Add sample action with invalid trunc size Test 2b2a: Add sample action with invalid index Test dee2: Add sample action with maximum allowed index Test 560e: Add sample action with cookie Test 704a: Replace existing sample action with new rate argument Test 60eb: Replace existing sample action with new group argument Test 2cce: Replace existing sample action with new trunc argument Test 59d1: Replace existing sample action with new control argument Test 0a6e: Replace sample action with invalid goto chain control Test 3872: Delete sample action with valid index Test a394: Delete sample action with invalid index Test 49aa: Add valid basic police action Test 3abe: Add police action with duplicate index Test 49fa: Add valid police action with mtu Test 7943: Add valid police action with peakrate Test 055e: Add police action with peakrate and no mtu Test f057: Add police action with valid overhead Test 7ffb: Add police action with ethernet linklayer type Test 3dda: Add police action with atm linklayer type Test 551b: Add police actions with conform-exceed control continue/drop Test 0c70: Add police actions with conform-exceed control pass/reclassify Test d946: Add police actions with conform-exceed control pass/pipe Test ddd6: Add police action with invalid rate value Test f61c: Add police action with invalid burst value Test 6aaf: Add police actions with conform-exceed control pass/pipe [with numeric values] Test 29b1: Add police actions with conform-exceed control <invalid>/drop Test c26f: Add police action with invalid peakrate value Test db04: Add police action with invalid mtu value Test f3c9: Add police action with cookie Test d190: Add police action with maximum index Test 336e: Delete police action Test 77fa: Get single police action from many actions Test aa43: Get single police action without specifying index Test 858b: List police actions Test 1c3a: Flush police actions Test 7326: Add police action with control continue Test 34fa: Add police action with control drop Test 8dd5: Add police action with control ok Test b9d1: Add police action with control reclassify Test c534: Add police action with control pipe Test b48b: Add police action with exceed goto chain control action Test 689e: Replace police action with invalid goto chain control Test cdd7: Add valid police action with packets per second rate limit Test f5bc: Add invalid police action with both bps and pps Test 7d64: Add police action with skip_hw option Test b078: Add simple action Test 4297: Add simple action with change command Test 6d4c: Add simple action with duplicate index Test 2542: List simple actions Test ea67: Delete simple action Test 8ff1: Flush simple actions Test b776: Replace simple action with invalid goto chain control Test 8d07: Verify cleanup of failed actions batch add Test a68a: Verify cleanup of failed actions batch change Test a933: Add MPLS dec_ttl action with pipe opcode Test 08d1: Add mpls dec_ttl action with pass opcode Test d786: Add mpls dec_ttl action with drop opcode Test f334: Add mpls dec_ttl action with reclassify opcode Test 29bd: Add mpls dec_ttl action with continue opcode Test 48df: Add mpls dec_ttl action with jump opcode Test 62eb: Add mpls dec_ttl action with trap opcode Test 09d2: Add mpls dec_ttl action with opcode and cookie Test c170: Add mpls dec_ttl action with opcode and cookie of max length Test 9118: Add mpls dec_ttl action with invalid opcode Test 6ce1: Add mpls dec_ttl action with label (invalid) Test 352f: Add mpls dec_ttl action with tc (invalid) Test fa1c: Add mpls dec_ttl action with ttl (invalid) Test 6b79: Add mpls dec_ttl action with bos (invalid) Test d4c4: Add mpls pop action with ip proto Test 91fb: Add mpls pop action with ip proto and cookie Test 92fe: Add mpls pop action with mpls proto Test 7e23: Add mpls pop action with no protocol (invalid) Test 6182: Add mpls pop action with label (invalid) Test 6475: Add mpls pop action with tc (invalid) Test 067b: Add mpls pop action with ttl (invalid) Test 7316: Add mpls pop action with bos (invalid) Test 38cc: Add mpls push action with label Test c281: Add mpls push action with mpls_mc protocol Test 5db4: Add mpls push action with label, tc and ttl Test 7c34: Add mpls push action with label, tc ttl and cookie of max length Test 16eb: Add mpls push action with label and bos Test d69d: Add mpls push action with no label (invalid) Test e8e4: Add mpls push action with ipv4 protocol (invalid) Test ecd0: Add mpls push action with out of range label (invalid) Test d303: Add mpls push action with out of range tc (invalid) Test fd6e: Add mpls push action with ttl of 0 (invalid) Test 19e9: Add mpls mod action with mpls label Test 1fde: Add mpls mod action with max mpls label Test 0c50: Add mpls mod action with mpls label exceeding max (invalid) Test 10b6: Add mpls mod action with mpls label of MPLS_LABEL_IMPLNULL (invalid) Test 57c9: Add mpls mod action with mpls min tc Test 6872: Add mpls mod action with mpls max tc Test a70a: Add mpls mod action with mpls tc exceeding max (invalid) Test 6ed5: Add mpls mod action with mpls ttl Test 77c1: Add mpls mod action with mpls ttl and cookie Test b80f: Add mpls mod action with mpls max ttl Test 8864: Add mpls mod action with mpls min ttl Test 6c06: Add mpls mod action with mpls ttl of 0 (invalid) Test b5d8: Add mpls mod action with mpls ttl exceeding max (invalid) Test 451f: Add mpls mod action with mpls max bos Test a1ed: Add mpls mod action with mpls min bos Test 3dcf: Add mpls mod action with mpls bos exceeding max (invalid) Test db7c: Add mpls mod action with protocol (invalid) Test b070: Replace existing mpls push action with new ID Test 95a9: Replace existing mpls push action with new label, tc, ttl and cookie Test 6cce: Delete mpls pop action Test d138: Flush mpls actions Test 5153: Add gate action with priority and sched-entry Test 7189: Add gate action with base-time Test a721: Add gate action with cycle-time Test c029: Add gate action with cycle-time-ext Test 3719: Replace gate base-time action Test d821: Delete gate action with valid index Test 3128: Delete gate action with invalid index Test 7837: List gate actions Test 9273: Flush gate actions Test c829: Add gate action with duplicate index Test 3043: Add gate action with invalid index Test 2930: Add gate action with cookie Test 5124: Add mirred mirror to egress action Test 6fb4: Add mirred redirect to egress action Test ba38: Get mirred actions Test d7c0: Add invalid mirred direction Test e213: Add invalid mirred action Test 2d89: Add mirred action with invalid device Test 300b: Add mirred action with duplicate index Test 8917: Add mirred mirror action with control pass Test 1054: Add mirred mirror action with control pipe Test 9887: Add mirred mirror action with control continue Test e4aa: Add mirred mirror action with control reclassify Test ece9: Add mirred mirror action with control drop Test 0031: Add mirred mirror action with control jump Test 407c: Add mirred mirror action with cookie Test 8b69: Add mirred mirror action with index at 32-bit maximum Test 3f66: Add mirred mirror action with index exceeding 32-bit maximum Test a70e: Delete mirred mirror action Test 3fb3: Delete mirred redirect action Test 2a9a: Replace mirred action with invalid goto chain control Test 4749: Add batch of 32 mirred redirect egress actions with cookie Test 5c69: Delete batch of 32 mirred redirect egress actions Test d3c0: Add batch of 32 mirred mirror ingress actions with cookie Test e684: Delete batch of 32 mirred mirror ingress actions Test 31e3: Add mirred mirror to egress action with no_percpu flag Test 456d: Add mirred mirror to egress block action Test 2358: Add mirred mirror to ingress block action Test fdb1: Add mirred redirect to egress block action Test 20cc: Add mirred redirect to ingress block action Test e739: Try to add mirred action with both dev and block Test 2f47: Try to add mirred action without specifying neither dev nor block Test 3188: Replace mirred redirect to dev action with redirect to block Test 83cc: Replace mirred redirect to block action with mirror to dev Test c2b4: Soft lockup alarm will be not generated after delete the prio 0 filter of the chain Test abdc: Reference pedit action object in filter Test 7a70: Reference mpls action object in filter Test d241: Reference bpf action object in filter Test 383a: Reference connmark action object in filter Test c619: Reference csum action object in filter Test a93d: Reference ct action object in filter Test 8bb5: Reference ctinfo action object in filter Test 2241: Reference gact action object in filter Test 35e9: Reference gate action object in filter Test b22e: Reference ife action object in filter Test ef74: Reference mirred action object in filter Test 2c81: Reference nat action object in filter Test ac9d: Reference police action object in filter Test 68be: Reference sample action object in filter Test cf01: Reference skbedit action object in filter Test c109: Reference skbmod action object in filter Test 4abc: Reference tunnel_key action object in filter Test dadd: Reference vlan action object in filter Test 0582: Create QFQ with default setting Test c9a3: Create QFQ with class weight setting Test d364: Test QFQ with max class weight setting Test 8452: Create QFQ with class maxpkt setting Test 22df: Test QFQ class maxpkt setting lower bound Test 92ee: Test QFQ class maxpkt setting upper bound Test d920: Create QFQ with multiple class setting Test 0548: Delete QFQ with handle Test 5901: Show QFQ class Test 85ee: QFQ with big MTU Test ddfa: QFQ with small MTU Test 5993: QFQ with stab overhead greater than max packet len [ 638.656129] v0p0id5993: entered promiscuous mode WARNING: No route found (no default route?) WARNING: No route f[ 638.701968] v0p0id5993: left promiscuous mode ound (no default route?) . Sent 1 packets. [ 638.736981] v0p0id5993: entered promiscuous mode WARNING: more No route found (no default route?) . Sent 1 packets[ 638.777954] v0p0id5993: left promiscuous mode . [ 638.812953] v0p0id5993: entered promiscuous mode . Sent 1 packets.[ 638.849813] v0p0id5993: left promiscuous mode [ 638.884963] v0p0id5993: entered promiscuous mode . Sent 1 packets.[ 638.925612] v0p0id5993: left promiscuous mode [ 638.953133] v0p0id5993: entered promiscuous mode . [ 638.985367] v0p0id5993: left promiscuous mode [ 639.020353] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.060436] v0p0id5993: left promiscuous mode . [ 639.089161] v0p0id5993: entered promiscuous mode . [ 639.129532] v0p0id5993: left promiscuous mode [ 639.156947] v0p0id5993: entered promiscuous mode . [ 639.197584] v0p0id5993: left promiscuous mode [ 639.233167] v0p0id5993: entered promiscuous mode . [ 639.273817] v0p0id5993: left promiscuous mode [ 639.305446] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.341676] v0p0id5993: left promiscuous mode . [ 639.376899] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.417500] v0p0id5993: left promiscuous mode . [ 639.452899] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.493230] v0p0id5993: left promiscuous mode . [ 639.521279] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.557434] v0p0id5993: left promiscuous mode . [ 639.589209] v0p0id5993: entered promiscuous mode . [ 639.632315] v0p0id5993: left promiscuous mode [ 639.664945] v0p0id5993: entered promiscuous mode . Sent 1 packets.[ 639.705542] v0p0id5993: left promiscuous mode [ 639.740942] v0p0id5993: entered promiscuous mode . Sent 1 packets.[ 639.781674] v0p0id5993: left promiscuous mode [ 639.816944] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.860440] v0p0id5993: left promiscuous mode . [ 639.888903] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 639.930304] v0p0id5993: left promiscuous mode . [ 639.965205] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 640.004225] v0p0id5993: left promiscuous mode . [ 640.033184] v0p0id5993: entered promiscuous mode . [ 640.072225] v0p0id5993: left promiscuous mode [ 640.097321] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 640.144250] v0p0id5993: left promiscuous mode . [ 640.176907] v0p0id5993: entered promiscuous mode . Sent 1 packets[ 640.217326] v0p0id5993: left promiscuous mode . Test 0385: Create DRR with default setting Test 2375: Delete DRR with handle Test 3092: Show DRR class Test 9903: Add mqprio Qdisc to multi-queue device (8 queues) Test 453a: Delete nonexistent mqprio Qdisc Test 5292: Delete mqprio Qdisc twice Test 45a9: Add mqprio Qdisc to single-queue device Test 2ba9: Show mqprio class Test 4812: Create HHF with default setting Test 8a92: Create HHF with limit setting Test 3491: Create HHF with quantum setting Test ba04: Create HHF with reset_timeout setting Test 4238: Create HHF with admit_bytes setting Test 839f: Create HHF with evict_timeout setting Test a044: Create HHF with non_hh_weight setting Test 32f9: Change HHF with limit setting Test 385e: Show HHF class Test 7482: Create SFQ with default setting Test c186: Create SFQ with limit setting Test ae23: Create SFQ with perturb setting Test a430: Create SFQ with quantum setting Test 4539: Create SFQ with divisor setting Test b089: Create SFQ with flows setting Test 99a0: Create SFQ with depth setting Test 7389: Create SFQ with headdrop setting Test 6472: Create SFQ with redflowlimit setting Test 8929: Show SFQ class Test 0904: Create HTB with default setting Test 3906: Create HTB with default-N setting Test 8492: Create HTB with r2q setting Test 9502: Create HTB with direct_qlen setting Test b924: Create HTB with class rate and burst setting Test 4359: Create HTB with class mpu setting Test 9048: Create HTB with class prio setting Test 4994: Create HTB with class ceil setting Test 9523: Create HTB with class cburst setting Test 5353: Create HTB with class mtu setting Test 346a: Create HTB with class quantum setting Test 303a: Delete HTB with handle Test e90e: Add ETS qdisc using bands Test b059: Add ETS qdisc using quanta Test e8e7: Add ETS qdisc using strict Test 233c: Add ETS qdisc using bands + quanta Test 3d35: Add ETS qdisc using bands + strict Test 7f3b: Add ETS qdisc using strict + quanta Test 4593: Add ETS qdisc using strict 0 + quanta Test 8938: Add ETS qdisc using bands + strict + quanta Test 0782: Add ETS qdisc with more bands than quanta Test 501b: Add ETS qdisc with more bands than strict Test 671a: Add ETS qdisc with more bands than strict + quanta Test 2a23: Add ETS qdisc with 16 bands Test 8daf: Add ETS qdisc with 17 bands Test 7f95: Add ETS qdisc with 17 strict Test 837a: Add ETS qdisc with 16 quanta Test 65b6: Add ETS qdisc with 17 quanta Test b9e9: Add ETS qdisc with 16 strict + quanta Test 9877: Add ETS qdisc with 17 strict + quanta Test c696: Add ETS qdisc with priomap Test 30c4: Add ETS qdisc with quanta + priomap Test e8ac: Add ETS qdisc with strict + priomap Test 5a7e: Add ETS qdisc with quanta + strict + priomap Test cb8b: Show ETS class :1 Test 1b4e: Show ETS class :2 Test f642: Show ETS class :3 Test 0a5f: Show ETS strict class Test f7c8: Add ETS qdisc with too many quanta Test 2389: Add ETS qdisc with too many strict Test fe3c: Add ETS qdisc with too many strict + quanta Test cb04: Add ETS qdisc with excess priomap elements Test c32e: Add ETS qdisc with priomap above bands Test 744c: Add ETS qdisc with priomap above quanta Test 7b33: Add ETS qdisc with priomap above strict Test dbe6: Add ETS qdisc with priomap above strict + quanta Test bdb2: Add ETS qdisc with priomap within bands with strict + quanta Test 39a3: Add ETS qdisc with priomap above bands with strict + quanta Test 557c: Unset priorities default to the last band Test a347: Unset priorities default to the last band -- no priomap Test 39c4: Add ETS qdisc with too few bands Test 930b: Add ETS qdisc with too many bands Test 406a: Add ETS qdisc without parameters Test e51a: Zero element in quanta Test e7f2: Sole zero element in quanta Test d6e6: No values after the quanta keyword Test 28c6: Change ETS band quantum Test 4714: Change ETS band without quantum Test 6979: Change quantum of a strict ETS band Test 9a7d: Change ETS strict band without quantum Test 34ba: Create ETF with default setting Test 438f: Create ETF with delta nanos setting Test 9041: Create ETF with deadline_mode setting Test 9a0c: Create ETF with skip_sock_check setting Test 2093: Delete ETF with valid handle Test 84a0: Create TEQL with default setting Test 7734: Create TEQL with multiple device Test 34a9: Delete TEQL with valid handle Test 6289: Show TEQL stats Test 6430: Create TBF with default setting [ 688.320698] sch_tbf: burst 1500 is lower than device dummy1id6430 mtu (1514) ! Test 0518: Create TBF with mtu setting [ 688.834123] sch_tbf: burst 1500 is lower than device dummy1id0518 mtu (1514) ! Test 320a: Create TBF with peakrate setting [ 689.356657] sch_tbf: burst 1500 is lower than device dummy1id320a mtu (1514) ! Test 239b: Create TBF with latency setting [ 689.867874] sch_tbf: burst 1500 is lower than device dummy1id239b mtu (1514) ! Test c975: Create TBF with overhead setting [ 690.409268] sch_tbf: burst 1500 is lower than device dummy1idc975 mtu (1514) ! Test 948c: Create TBF with linklayer setting [ 690.932722] sch_tbf: burst 1500 is lower than device dummy1id948c mtu (1514) ! Test 3549: Replace TBF with mtu [ 691.406220] sch_tbf: burst 1500 is lower than device dummy1id3549 mtu (1514) ! [ 691.480321] sch_tbf: burst 1500 is lower than device dummy1id3549 mtu (1514) ! Test f948: Change TBF with latency time [ 691.961038] sch_tbf: burst 1500 is lower than device dummy1idf948 mtu (1514) ! [ 692.036525] sch_tbf: burst 1500 is lower than device dummy1idf948 mtu (1514) ! Test 2348: Show TBF class Test 8b6e: Create RED with no flags Test 342e: Create RED with adaptive flag Test 2d4b: Create RED with ECN flag Test 650f: Create RED with flags ECN, adaptive Test 5f15: Create RED with flags ECN, harddrop Test 53e8: Create RED with flags ECN, nodrop Test d091: Fail to create RED with only nodrop flag Test af8e: Create RED with flags ECN, nodrop, harddrop Test 290a: Show RED class Test 1212: Create CAKE with default setting Test 3281: Create CAKE with bandwidth limit Test c940: Create CAKE with autorate-ingress flag Test 2310: Create CAKE with rtt time Test 2385: Create CAKE with besteffort flag Test a032: Create CAKE with diffserv8 flag Test 2349: Create CAKE with diffserv4 flag Test 8472: Create CAKE with flowblind flag Test 2341: Create CAKE with dsthost and nat flag Test 5134: Create CAKE with wash flag Test 2302: Create CAKE with flowblind and no-split-gso flag Test 0768: Create CAKE with dual-srchost and ack-filter flag Test 0238: Create CAKE with dual-dsthost and ack-filter-aggressive flag Test 6572: Create CAKE with memlimit and ptm flag Test 2436: Create CAKE with fwmark and atm flag Test 3984: Create CAKE with overhead and mpu Test 5421: Create CAKE with conservative and ingress flag Test 6854: Delete CAKE with conservative and ingress flag Test 2342: Replace CAKE with mpu Test 2313: Change CAKE with mpu Test 4365: Show CAKE class Test ddd9: Add prio qdisc on egress Test aa71: Add prio qdisc on egress with handle of maximum value Test db37: Add prio qdisc on egress with invalid handle exceeding maximum value Test 39d8: Add prio qdisc on egress with unsupported argument Test 5769: Add prio qdisc on egress with 4 bands and new priomap Test fe0f: Add prio qdisc on egress with 4 bands and priomap exceeding TC_PRIO_MAX entries Test 1f91: Add prio qdisc on egress with 4 bands and priomap's values exceeding bands number Test d248: Add prio qdisc on egress with invalid bands value (< 2) Test 1d0e: Add prio qdisc on egress with invalid bands value exceeding TCQ_PRIO_BANDS Test 1971: Replace default prio qdisc on egress with 8 bands and new priomap Test d88a: Add duplicate prio qdisc on egress Test 5948: Delete nonexistent prio qdisc Test 6c0a: Add prio qdisc on egress with invalid format for handles Test 0175: Delete prio qdisc twice Test 2410: Show prio class Test 8942: Create GRED with default setting Test 5783: Create GRED with grio setting Test 8a09: Create GRED with limit setting Test 48ca: Create GRED with ecn setting Test 48cb: Create GRED with harddrop setting Test 763a: Change GRED setting Test 8309: Show GRED class Test 3254: Create HFSC with default setting Test 0289: Create HFSC with class sc and ul rate setting Test 846a: Create HFSC with class sc umax and dmax setting Test 5413: Create HFSC with class rt and ls rate setting Test 9312: Create HFSC with class rt umax and dmax setting Test 6931: Delete HFSC with handle Test 8436: Show HFSC class Test bef4: HFSC rt inner class upgrade to sc Test 983a: Create CODEL with default setting Test 38aa: Create CODEL with limit packet setting Test 9178: Create CODEL with target setting Test 78d1: Create CODEL with interval setting Test 238a: Create CODEL with ecn setting Test 939c: Create CODEL with ce_threshold setting Test 8380: Delete CODEL with valid handle Test 289c: Replace CODEL with limit setting Test 0648: Change CODEL with limit setting Test 83be: Create FQ-PIE with invalid number of flows Test 3289: Create PLUG with default setting Test 0917: Create PLUG with block setting Test 483b: Create PLUG with release setting Test 4995: Create PLUG with release_indefinite setting Test 389c: Create PLUG with limit setting Test 384a: Delete PLUG with valid handle Test 439a: Replace PLUG with limit setting Test 9831: Change PLUG with limit setting Test 8937: Create CHOKE with default setting Test 48c0: Create CHOKE with min packet setting Test 38c1: Create CHOKE with max packet setting Test 234a: Create CHOKE with ecn setting Test 4380: Create CHOKE with burst setting Test 48c7: Delete CHOKE with valid handle Test 4398: Replace CHOKE with min setting Test 0301: Change CHOKE with limit setting Test 3294: Create SFB with default setting Test 430a: Create SFB with rehash setting Test 3410: Create SFB with db setting Test 49a0: Create SFB with limit setting Test 1241: Create SFB with max setting Test 3249: Create SFB with target setting Test 30a9: Create SFB with increment setting Test 239a: Create SFB with decrement setting Test 9301: Create SFB with penalty_rate setting Test 2a01: Create SFB with penalty_burst setting Test 3209: Change SFB with rehash setting Test 5447: Show SFB class Test 900c: Create pfifo_fast with default setting Test 7470: Dump pfifo_fast stats Test b974: Replace pfifo_fast with different handle Test 3240: Delete pfifo_fast with valid handle Test 4385: Delete pfifo_fast with invalid handle Test ba39: Add taprio Qdisc to multi-queue device (8 queues) Test 9462: Add taprio Qdisc with multiple sched-entry Test 8d92: Add taprio Qdisc with txtime-delay Test d092: Delete taprio Qdisc with valid handle Test 8471: Show taprio class Test 0a85: Add taprio Qdisc to single-queue device Test 6f62: Add taprio Qdisc with too short interval Test 831f: Add taprio Qdisc with too short cycle-time Test 3e1e: Add taprio Qdisc with an invalid cycle-time Test 39b4: Reject grafting taprio as child qdisc of software taprio Test e8a1: Reject grafting taprio as child qdisc of offloaded taprio Test a7bf: Graft cbs as child of software taprio Test 6a83: Graft cbs as child of offloaded taprio Test ce7d: Add mq Qdisc to multi-queue device (4 queues) Test 2f82: Add mq Qdisc to multi-queue device (256 queues) Test c525: Add duplicate mq Qdisc Test 128a: Delete nonexistent mq Qdisc Test 03a9: Delete mq Qdisc twice Test be0f: Add mq Qdisc to single-queue device Test 1023: Show mq class Test 0531: Replace mq with invalid parent ID Test 20ba: Add multiq Qdisc to multi-queue device (8 queues) Test 4301: List multiq Class Test 7832: Delete nonexistent multiq Qdisc Test 2891: Delete multiq Qdisc twice Test 1329: Add multiq Qdisc to single-queue device Test 1820: Create CBS with default setting Test 1532: Create CBS with hicredit setting Test 2078: Create CBS with locredit setting Test 9271: Create CBS with sendslope setting Test 0482: Create CBS with idleslope setting Test e8f3: Create CBS with multiple setting Test 23c9: Replace CBS with sendslope setting Test a07a: Change CBS with idleslope setting Test 43b3: Delete CBS with handle Test 9472: Show CBS class Test a519: Add bfifo qdisc with system default parameters on egress Test 585c: Add pfifo qdisc with system default parameters on egress Test a86e: Add bfifo qdisc with system default parameters on egress with handle of maximum value Test 9ac8: Add bfifo qdisc on egress with queue size of 3000 bytes Test f4e6: Add pfifo qdisc on egress with queue size of 3000 packets Test b1b1: Add bfifo qdisc with system default parameters on egress with invalid handle exceeding maximum value Test 8d5e: Add bfifo qdisc on egress with unsupported argument Test 7787: Add pfifo qdisc on egress with unsupported argument Test c4b6: Replace bfifo qdisc on egress with new queue size Test 3df6: Replace pfifo qdisc on egress with new queue size Test 7a67: Add bfifo qdisc on egress with queue size in invalid format Test 1298: Add duplicate bfifo qdisc on egress Test 45a0: Delete nonexistent bfifo qdisc Test 972b: Add prio qdisc on egress with invalid format for handles Test 4d39: Delete bfifo qdisc twice Test cb28: Create NETEM with default setting Test a089: Create NETEM with limit flag Test 3449: Create NETEM with delay time Test 3782: Create NETEM with distribution and corrupt flag Test 2b82: Create NETEM with distribution and duplicate flag Test a932: Create NETEM with distribution and loss flag Test e01a: Create NETEM with distribution and loss state flag Test ba29: Create NETEM with loss gemodel flag Test 0492: Create NETEM with reorder flag Test 7862: Create NETEM with rate limit Test 7235: Create NETEM with multiple slot rate Test 5439: Create NETEM with multiple slot setting Test 5029: Change NETEM with loss state Test 3785: Replace NETEM with delay time Test 4502: Delete NETEM with handle Test 0785: Show NETEM class Test 983b: Create FQ with default setting Test 38a1: Create FQ with limit packet setting Test 0a18: Create FQ with flow_limit setting Test 2390: Create FQ with quantum setting Test 845b: Create FQ with initial_quantum setting Test 10f7: Create FQ with invalid initial_quantum setting Test 9398: Create FQ with maxrate setting Test 342c: Create FQ with nopacing setting Test 6391: Create FQ with refill_delay setting Test 238b: Create FQ with low_rate_threshold setting Test 7582: Create FQ with orphan_mask setting Test 4894: Create FQ with timer_slack setting Test 324c: Create FQ with ce_threshold setting Test 424a: Create FQ with horizon time setting Test 89e1: Create FQ with horizon_cap setting Test 32e1: Delete FQ with valid handle Test 49b0: Replace FQ with limit setting Test 9478: Change FQ with limit setting Test 4957: Create FQ_CODEL with default setting Test 7621: Create FQ_CODEL with limit setting Test 6871: Create FQ_CODEL with memory_limit setting Test 5636: Create FQ_CODEL with target setting Test 630a: Create FQ_CODEL with interval setting Test 4324: Create FQ_CODEL with quantum setting Test b190: Create FQ_CODEL with noecn flag Test 5381: Create FQ_CODEL with ce_threshold setting Test c9d2: Create FQ_CODEL with drop_batch setting Test 523b: Create FQ_CODEL with multiple setting Test 9283: Replace FQ_CODEL with noecn setting Test 3459: Change FQ_CODEL with limit setting Test 0128: Delete FQ_CODEL with handle Test 0435: Show FQ_CODEL class Test 283e: Create skbprio with default setting Test c086: Create skbprio with limit setting Test 6733: Change skbprio with limit setting Test 2958: Show skbprio class Test 9872: Add ingress qdisc Test 5c5e: Add ingress qdisc with unsupported argument Test 74f6: Add duplicate ingress qdisc Test f769: Delete nonexistent ingress qdisc Test 3b88: Delete ingress qdisc twice Test 0521: Show ingress class Test afa9: Add u32 with source match Test 6aa7: Add/Replace u32 with source match and invalid indev Test bc4d: Replace valid u32 with source match and invalid indev Test 648b: Add u32 with custom hash table Test 6658: Add/Replace u32 with custom hash table and invalid handle Test 9d0a: Replace valid u32 with custom hash table and invalid handle Test 1644: Add u32 filter that links to a custom hash table Test 74c2: Add/Replace u32 filter with invalid hash table id Test 1fe6: Replace valid u32 filter with invalid hash table id Test 0692: Test u32 sample option, divisor 256 Test 2478: Test u32 sample option, divisor 16 Test 0c37: Try to delete class referenced by u32 after a replace Test bd32: Try to delete hashtable referenced by another u32 filter Test 4585: Delete small tree of u32 hashtables and filters Test 7a92: Add basic filter with cmp ematch u8/link layer and default action Test 2e8a: Add basic filter with cmp ematch u8/link layer with trans flag and default action Test 4d9f: Add basic filter with cmp ematch u16/link layer and a single action Test 4943: Add basic filter with cmp ematch u32/link layer and miltiple actions Test 7559: Add basic filter with cmp ematch u8/network layer and default action Test aff4: Add basic filter with cmp ematch u8/network layer with trans flag and default action Test c732: Add basic filter with cmp ematch u16/network layer and a single action Test 32d8: Add basic filter with cmp ematch u32/network layer and miltiple actions Test b99c: Add basic filter with cmp ematch u8/transport layer and default action Test 0752: Add basic filter with cmp ematch u8/transport layer with trans flag and default action Test 7e07: Add basic filter with cmp ematch u16/transport layer and a single action Test 62d7: Add basic filter with cmp ematch u32/transport layer and miltiple actions Test 304b: Add basic filter with NOT cmp ematch rule and default action Test 8ecb: Add basic filter with two ANDed cmp ematch rules and single action Test b1ad: Add basic filter with two ORed cmp ematch rules and single action Test 4600: Add basic filter with two ANDed cmp ematch rules and one ORed ematch rule and single action Test bc59: Add basic filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action Test bae4: Add basic filter with u32 ematch u8/zero offset and default action Test e6cb: Add basic filter with u32 ematch u8/zero offset and invalid value >0xFF Test 7727: Add basic filter with u32 ematch u8/positive offset and default action Test a429: Add basic filter with u32 ematch u8/invalid mask >0xFF Test 8373: Add basic filter with u32 ematch u8/missing offset Test ab8e: Add basic filter with u32 ematch u8/missing AT keyword Test 712d: Add basic filter with u32 ematch u8/missing value Test 350f: Add basic filter with u32 ematch u8/non-numeric value Test e28f: Add basic filter with u32 ematch u8/non-numeric mask Test 6d5f: Add basic filter with u32 ematch u8/negative offset and default action Test 12dc: Add basic filter with u32 ematch u8/nexthdr+ offset and default action Test 1d85: Add basic filter with u32 ematch u16/zero offset and default action Test 3672: Add basic filter with u32 ematch u16/zero offset and invalid value >0xFFFF Test 7fb0: Add basic filter with u32 ematch u16/positive offset and default action Test 19af: Add basic filter with u32 ematch u16/invalid mask >0xFFFF Test 446d: Add basic filter with u32 ematch u16/missing offset Test 151b: Add basic filter with u32 ematch u16/missing AT keyword Test bb23: Add basic filter with u32 ematch u16/missing value Test decc: Add basic filter with u32 ematch u16/non-numeric value Test e988: Add basic filter with u32 ematch u16/non-numeric mask Test 07d8: Add basic filter with u32 ematch u16/negative offset and default action Test f474: Add basic filter with u32 ematch u16/nexthdr+ offset and default action Test 47a0: Add basic filter with u32 ematch u32/zero offset and default action Test 849f: Add basic filter with u32 ematch u32/positive offset and default action Test d288: Add basic filter with u32 ematch u32/missing offset Test 4998: Add basic filter with u32 ematch u32/missing AT keyword Test 1f0a: Add basic filter with u32 ematch u32/missing value Test 848e: Add basic filter with u32 ematch u32/non-numeric value Test f748: Add basic filter with u32 ematch u32/non-numeric mask Test 55a6: Add basic filter with u32 ematch u32/negative offset and default action Test 7282: Add basic filter with u32 ematch u32/nexthdr+ offset and default action Test b2b6: Add basic filter with canid ematch and single SFF Test f67f: Add basic filter with canid ematch and single SFF with mask Test bd5c: Add basic filter with canid ematch and multiple SFF Test 83c7: Add basic filter with canid ematch and multiple SFF with masks Test a8f5: Add basic filter with canid ematch and single EFF Test 98ae: Add basic filter with canid ematch and single EFF with mask Test 6056: Add basic filter with canid ematch and multiple EFF Test d188: Add basic filter with canid ematch and multiple EFF with masks Test 25d1: Add basic filter with canid ematch and a combination of SFF/EFF Test b438: Add basic filter with canid ematch and a combination of SFF/EFF with masks Test 0811: Add multiple basic filter with cmp ematch u8/link layer and default action and dump them Test 5129: List basic filters Test 901f: Add fw filter with prio at 32-bit maxixum Test 51e2: Add fw filter with prio exceeding 32-bit maxixum Test d987: Add fw filter with action ok Test c591: Add fw filter with action ok by reference Test affe: Add fw filter with action continue Test 38b3: Add fw filter with action continue by reference Test 28bc: Add fw filter with action pipe Test 6753: Add fw filter with action pipe by reference Test 8da2: Add fw filter with action drop Test 6dc6: Add fw filter with action drop by reference Test 9436: Add fw filter with action reclassify Test 3bc2: Add fw filter with action reclassify by reference Test 95bb: Add fw filter with action jump 10 Test 36f7: Add fw filter with action jump 10 by reference Test 3d74: Add fw filter with action goto chain 5 Test eb8f: Add fw filter with invalid action Test 6a79: Add fw filter with missing mandatory action Test 8298: Add fw filter with cookie Test a88c: Add fw filter with invalid cookie Test 10f6: Add fw filter with handle in hex Test 9d51: Add fw filter with handle at 32-bit maximum Test d939: Add fw filter with handle exceeding 32-bit maximum Test 658c: Add fw filter with mask in hex Test 86be: Add fw filter with mask at 32-bit maximum Test e635: Add fw filter with mask exceeding 32-bit maximum Test 6cab: Add fw filter with handle/mask in hex Test 8700: Add fw filter with handle/mask at 32-bit maximum Test 7d62: Add fw filter with handle/mask exceeding 32-bit maximum Test 7b69: Add fw filter with missing mandatory handle Test d68b: Add fw filter with invalid parent Test 66e0: Add fw filter with missing mandatory parent id Test 0ff3: Add fw filter with classid Test 9849: Add fw filter with classid at root Test b7ff: Add fw filter with classid - keeps last 8 (hex) digits Test 2b18: Add fw filter with invalid classid Test fade: Add fw filter with flowid Test 33af: Add fw filter with flowid then classid (same arg, takes second) Test 8a8c: Add fw filter with classid then flowid (same arg, takes second) Test b50d: Add fw filter with handle val/mask and flowid 10:1000 Test 7207: Add fw filter with protocol ip Test 306d: Add fw filter with protocol ipv6 Test 9a78: Add fw filter with protocol arp Test 1821: Add fw filter with protocol 802_3 Test 2260: Add fw filter with invalid protocol Test 09d7: Add fw filters protocol 802_3 and ip with conflicting priorities Test 6973: Add fw filters with same index, same action Test fc06: Add fw filters with action police Test aac7: Add fw filters with action police linklayer atm Test 5339: Del entire fw filter Test 0e99: Del single fw filter x1 Test f54c: Del single fw filter x2 Test ba94: Del fw filter by prio Test 4acb: Del fw filter by chain Test 3424: Del fw filter by action (invalid) Test da89: Del fw filter by handle (invalid) Test 4d95: Del fw filter by protocol (invalid) Test 4736: Del fw filter by flowid (invalid) Test 3dcb: Replace fw filter action Test eb4d: Replace fw filter classid Test 67ec: Replace fw filter index Test e470: Try to delete class referenced by fw after a replace Test ec1a: Replace fw classid with nil Test 5294: Add flow filter with map key and ops Test 3514: Add flow filter with map key or ops Test 7534: Add flow filter with map key xor ops Test 4524: Add flow filter with map key rshift ops Test 0230: Add flow filter with map key addend ops Test 2344: Add flow filter with src map key Test 9304: Add flow filter with proto map key Test 9038: Add flow filter with proto-src map key Test 2a03: Add flow filter with proto-dst map key Test a073: Add flow filter with iif map key Test 3b20: Add flow filter with priority map key Test 8945: Add flow filter with mark map key Test c034: Add flow filter with nfct map key Test 0205: Add flow filter with nfct-src map key Test 5315: Add flow filter with nfct-src map key Test 7849: Add flow filter with nfct-proto-src map key Test 9902: Add flow filter with nfct-proto-dst map key Test 6742: Add flow filter with rt-classid map key Test 5432: Add flow filter with sk-uid map key Test 4134: Add flow filter with sk-gid map key Test 4522: Add flow filter with vlan-tag map key Test 4253: Add flow filter with rxhash map key Test 4452: Add flow filter with hash key list Test 4341: Add flow filter with muliple ops Test 4392: List flow filters Test 4322: Change flow filter with map key num Test 2320: Replace flow filter with map key num Test 3213: Delete flow filter with map key num Test 23c3: Add cBPF filter with valid bytecode Test 1563: Add cBPF filter with invalid bytecode Test 2334: Add eBPF filter with valid object-file Test 2373: Add eBPF filter with invalid object-file Test 4423: Replace cBPF bytecode Test 5122: Delete cBPF filter Test e0a9: List cBPF filters Test e122: Add route filter with from and to tag Test 6573: Add route filter with fromif and to tag Test 1362: Add route filter with to flag and reclassify action Test 4720: Add route filter with from flag and continue actions Test 2812: Add route filter with form tag and pipe action Test 7994: Add route filter with miltiple actions Test 4312: List route filters Test 2634: Delete route filter with pipe action Test b042: Try to delete class referenced by route after a replace Test f62b: Add ingress matchall filter for protocol ipv4 and action PASS Test 7f09: Add egress matchall filter for protocol ipv4 and action PASS Test 0596: Add ingress matchall filter for protocol ipv6 and action DROP Test 41df: Add egress matchall filter for protocol ipv6 and action DROP Test e1da: Add ingress matchall filter for protocol ipv4 and action PASS with priority at 16-bit maximum Test 3de5: Add egress matchall filter for protocol ipv4 and action PASS with priority at 16-bit maximum Test 72d7: Add ingress matchall filter for protocol ipv4 and action PASS with priority exceeding 16-bit maximum Test 41d3: Add egress matchall filter for protocol ipv4 and action PASS with priority exceeding 16-bit maximum Test f755: Add ingress matchall filter for all protocols and action CONTINUE with handle at 32-bit maximum Test 2c33: Add egress matchall filter for all protocols and action CONTINUE with handle at 32-bit maximum Test 0e4a: Add ingress matchall filter for all protocols and action RECLASSIFY with skip_hw flag Test 7f60: Add egress matchall filter for all protocols and action RECLASSIFY with skip_hw flag Test 8bd2: Add ingress matchall filter for protocol ipv6 and action PASS with classid Test 2a4a: Add ingress matchall filter for protocol ipv6 and action PASS with invalid classid Test eaf8: Delete single ingress matchall filter Test 76ad: Delete all ingress matchall filters Test 1eb9: Delete single ingress matchall filter out of multiple Test 6d63: Delete ingress matchall filter by chain ID Test 3329: Validate flags of the matchall filter with skip_sw and police action with skip_hw Test 0eeb: Validate flags of the matchall filter with skip_hw and police action Test eee4: Validate flags of the matchall filter with skip_sw and police action Test 2638: Add matchall and try to get it Test 6273: Add cgroup filter with cmp ematch u8/link layer and drop action Test 4721: Add cgroup filter with cmp ematch u8/link layer with trans flag and pass action Test d392: Add cgroup filter with cmp ematch u16/link layer and pipe action Test 0234: Add cgroup filter with cmp ematch u32/link layer and miltiple actions Test 8499: Add cgroup filter with cmp ematch u8/network layer and pass action Test b273: Add cgroup filter with cmp ematch u8/network layer with trans flag and drop action Test 1934: Add cgroup filter with cmp ematch u16/network layer and pipe action Test 2733: Add cgroup filter with cmp ematch u32/network layer and miltiple actions Test 3271: Add cgroup filter with NOT cmp ematch rule and pass action Test 2362: Add cgroup filter with two ANDed cmp ematch rules and single action Test 9993: Add cgroup filter with two ORed cmp ematch rules and single action Test 2331: Add cgroup filter with two ANDed cmp ematch rules and one ORed ematch rule and single action Test 3645: Add cgroup filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action Test b124: Add cgroup filter with u32 ematch u8/zero offset and drop action Test 7381: Add cgroup filter with u32 ematch u8/zero offset and invalid value >0xFF Test 2231: Add cgroup filter with u32 ematch u8/positive offset and drop action Test 1882: Add cgroup filter with u32 ematch u8/invalid mask >0xFF Test 1237: Add cgroup filter with u32 ematch u8/missing offset Test 3812: Add cgroup filter with u32 ematch u8/missing AT keyword Test 1112: Add cgroup filter with u32 ematch u8/missing value Test 3241: Add cgroup filter with u32 ematch u8/non-numeric value Test e231: Add cgroup filter with u32 ematch u8/non-numeric mask Test 4652: Add cgroup filter with u32 ematch u8/negative offset and pass action Test 7566: Add cgroup filter with u32 ematch u8/nexthdr+ offset and drop action Test 1331: Add cgroup filter with u32 ematch u16/zero offset and pipe action Test e354: Add cgroup filter with u32 ematch u16/zero offset and invalid value >0xFFFF Test 3538: Add cgroup filter with u32 ematch u16/positive offset and drop action Test 4576: Add cgroup filter with u32 ematch u16/invalid mask >0xFFFF Test b842: Add cgroup filter with u32 ematch u16/missing offset Test c924: Add cgroup filter with u32 ematch u16/missing AT keyword Test cc93: Add cgroup filter with u32 ematch u16/missing value Test 123c: Add cgroup filter with u32 ematch u16/non-numeric value Test 3675: Add cgroup filter with u32 ematch u16/non-numeric mask Test 1123: Add cgroup filter with u32 ematch u16/negative offset and drop action Test 4234: Add cgroup filter with u32 ematch u16/nexthdr+ offset and pass action Test e912: Add cgroup filter with u32 ematch u32/zero offset and pipe action Test 1435: Add cgroup filter with u32 ematch u32/positive offset and drop action Test 1282: Add cgroup filter with u32 ematch u32/missing offset Test 6456: Add cgroup filter with u32 ematch u32/missing AT keyword Test 4231: Add cgroup filter with u32 ematch u32/missing value Test 2131: Add cgroup filter with u32 ematch u32/non-numeric value Test f125: Add cgroup filter with u32 ematch u32/non-numeric mask Test 4316: Add cgroup filter with u32 ematch u32/negative offset and drop action Test 23ae: Add cgroup filter with u32 ematch u32/nexthdr+ offset and pipe action Test 23a1: Add cgroup filter with canid ematch and single SFF Test 324f: Add cgroup filter with canid ematch and single SFF with mask Test 2576: Add cgroup filter with canid ematch and multiple SFF Test 4839: Add cgroup filter with canid ematch and multiple SFF with masks Test 6713: Add cgroup filter with canid ematch and single EFF Test 4572: Add cgroup filter with canid ematch and single EFF with mask Test 8031: Add cgroup filter with canid ematch and multiple EFF Test ab9d: Add cgroup filter with canid ematch and multiple EFF with masks Test 5349: Add cgroup filter with canid ematch and a combination of SFF/EFF Test c934: Add cgroup filter with canid ematch and a combination of SFF/EFF with masks Test 4319: Replace cgroup filter with diffferent match Test 4636: Delete cgroup filter All test results: 1..1161 ok 1 319a - Add pedit action that mangles IP TTL ok 2 7e67 - Replace pedit action with invalid goto chain ok 3 377e - Add pedit action with RAW_OP offset u32 ok 4 a0ca - Add pedit action with RAW_OP offset u32 (INVALID) ok 5 dd8a - Add pedit action with RAW_OP offset u16 u16 ok 6 53db - Add pedit action with RAW_OP offset u16 (INVALID) ok 7 5c7e - Add pedit action with RAW_OP offset u8 add value ok 8 2893 - Add pedit action with RAW_OP offset u8 quad ok 9 3a07 - Add pedit action with RAW_OP offset u8-u16-u8 ok 10 ab0f - Add pedit action with RAW_OP offset u16-u8-u8 ok 11 9d12 - Add pedit action with RAW_OP offset u32 set u16 clear u8 invert ok 12 ebfa - Add pedit action with RAW_OP offset overflow u32 (INVALID) ok 13 f512 - Add pedit action with RAW_OP offset u16 at offmask shift set ok 14 c2cb - Add pedit action with RAW_OP offset u32 retain value ok 15 1762 - Add pedit action with RAW_OP offset u8 clear value ok 16 bcee - Add pedit action with RAW_OP offset u8 retain value ok 17 e89f - Add pedit action with RAW_OP offset u16 retain value ok 18 c282 - Add pedit action with RAW_OP offset u32 clear value ok 19 c422 - Add pedit action with RAW_OP offset u16 invert value ok 20 d3d3 - Add pedit action with RAW_OP offset u32 invert value ok 21 57e5 - Add pedit action with RAW_OP offset u8 preserve value ok 22 99e0 - Add pedit action with RAW_OP offset u16 preserve value ok 23 1892 - Add pedit action with RAW_OP offset u32 preserve value ok 24 4b60 - Add pedit action with RAW_OP negative offset u16/u32 set value ok 25 a5a7 - Add pedit action with LAYERED_OP eth set src ok 26 86d4 - Add pedit action with LAYERED_OP eth set src & dst ok 27 f8a9 - Add pedit action with LAYERED_OP eth set dst ok 28 c715 - Add pedit action with LAYERED_OP eth set src (INVALID) ok 29 8131 - Add pedit action with LAYERED_OP eth set dst (INVALID) ok 30 ba22 - Add pedit action with LAYERED_OP eth type set/clear sequence ok 31 dec4 - Add pedit action with LAYERED_OP eth set type (INVALID) ok 32 ab06 - Add pedit action with LAYERED_OP eth add type ok 33 918d - Add pedit action with LAYERED_OP eth invert src ok 34 a8d4 - Add pedit action with LAYERED_OP eth invert dst ok 35 ee13 - Add pedit action with LAYERED_OP eth invert type ok 36 7588 - Add pedit action with LAYERED_OP ip set src ok 37 0fa7 - Add pedit action with LAYERED_OP ip set dst ok 38 5810 - Add pedit action with LAYERED_OP ip set src & dst ok 39 1092 - Add pedit action with LAYERED_OP ip set ihl & dsfield ok 40 02d8 - Add pedit action with LAYERED_OP ip set ttl & protocol ok 41 3e2d - Add pedit action with LAYERED_OP ip set ttl (INVALID) ok 42 31ae - Add pedit action with LAYERED_OP ip ttl clear/set ok 43 486f - Add pedit action with LAYERED_OP ip set duplicate fields ok 44 e790 - Add pedit action with LAYERED_OP ip set ce, df, mf, firstfrag, nofrag fields ok 45 cc8a - Add pedit action with LAYERED_OP ip set tos ok 46 7a17 - Add pedit action with LAYERED_OP ip set precedence ok 47 c3b6 - Add pedit action with LAYERED_OP ip add tos ok 48 43d3 - Add pedit action with LAYERED_OP ip add precedence ok 49 438e - Add pedit action with LAYERED_OP ip clear tos ok 50 6b1b - Add pedit action with LAYERED_OP ip clear precedence ok 51 824a - Add pedit action with LAYERED_OP ip invert tos ok 52 106f - Add pedit action with LAYERED_OP ip invert precedence ok 53 6829 - Add pedit action with LAYERED_OP beyond ip set dport & sport ok 54 afd8 - Add pedit action with LAYERED_OP beyond ip set icmp_type & icmp_code ok 55 3143 - Add pedit action with LAYERED_OP beyond ip set dport (INVALID) ok 56 815c - Add pedit action with LAYERED_OP ip6 set src ok 57 4dae - Add pedit action with LAYERED_OP ip6 set dst ok 58 fc1f - Add pedit action with LAYERED_OP ip6 set src & dst ok 59 6d34 - Add pedit action with LAYERED_OP ip6 dst retain value (INVALID) ok 60 94bb - Add pedit action with LAYERED_OP ip6 traffic_class ok 61 6f5e - Add pedit action with LAYERED_OP ip6 flow_lbl ok 62 6795 - Add pedit action with LAYERED_OP ip6 set payload_len, nexthdr, hoplimit ok 63 1442 - Add pedit action with LAYERED_OP tcp set dport & sport ok 64 b7ac - Add pedit action with LAYERED_OP tcp sport set (INVALID) ok 65 cfcc - Add pedit action with LAYERED_OP tcp flags set ok 66 3bc4 - Add pedit action with LAYERED_OP tcp set dport, sport & flags fields ok 67 f1c8 - Add pedit action with LAYERED_OP udp set dport & sport ok 68 d784 - Add pedit action with mixed RAW/LAYERED_OP #1 ok 69 70ca - Add pedit action with mixed RAW/LAYERED_OP #2 ok 70 2b11 - Add tunnel_key set action with mandatory parameters ok 71 dc6b - Add tunnel_key set action with missing mandatory src_ip parameter ok 72 7f25 - Add tunnel_key set action with missing mandatory dst_ip parameter ok 73 a5e0 - Add tunnel_key set action with invalid src_ip parameter ok 74 eaa8 - Add tunnel_key set action with invalid dst_ip parameter ok 75 3b09 - Add tunnel_key set action with invalid id parameter ok 76 9625 - Add tunnel_key set action with invalid dst_port parameter ok 77 05af - Add tunnel_key set action with optional dst_port parameter ok 78 da80 - Add tunnel_key set action with index at 32-bit maximum ok 79 d407 - Add tunnel_key set action with index exceeding 32-bit maximum ok 80 5cba - Add tunnel_key set action with id value at 32-bit maximum ok 81 e84a - Add tunnel_key set action with id value exceeding 32-bit maximum ok 82 9c19 - Add tunnel_key set action with dst_port value at 16-bit maximum ok 83 3bd9 - Add tunnel_key set action with dst_port value exceeding 16-bit maximum ok 84 68e2 - Add tunnel_key unset action ok 85 6192 - Add tunnel_key unset continue action ok 86 061d - Add tunnel_key set continue action with cookie ok 87 8acb - Add tunnel_key set continue action with invalid cookie ok 88 a07e - Add tunnel_key action with no set/unset command specified ok 89 b227 - Add tunnel_key action with csum option ok 90 58a7 - Add tunnel_key action with nocsum option ok 91 2575 - Add tunnel_key action with not-supported parameter ok 92 7a88 - Add tunnel_key action with cookie parameter ok 93 4f20 - Add tunnel_key action with a single geneve option parameter ok 94 e33d - Add tunnel_key action with multiple geneve options parameter ok 95 0778 - Add tunnel_key action with invalid class geneve option parameter ok 96 4ae8 - Add tunnel_key action with invalid type geneve option parameter ok 97 4039 - Add tunnel_key action with short data length geneve option parameter ok 98 26a6 - Add tunnel_key action with non-multiple of 4 data length geneve option parameter ok 99 f44d - Add tunnel_key action with incomplete geneve options parameter ok 100 7afc - Replace tunnel_key set action with all parameters ok 101 364d - Replace tunnel_key set action with all parameters and cookie ok 102 937c - Fetch all existing tunnel_key actions ok 103 6783 - Flush all existing tunnel_key actions ok 104 8242 - Replace tunnel_key set action with invalid goto chain ok 105 0cd2 - Add tunnel_key set action with no_percpu flag ok 106 3671 - Delete tunnel_key set action with valid index ok 107 8597 - Delete tunnel_key set action with invalid index ok 108 6bda - Add tunnel_key action with nofrag option # skipped - probe command: test skipped. ok 109 7682 - Create valid ife encode action with mark and pass control ok 110 ef47 - Create valid ife encode action with mark and pipe control ok 111 df43 - Create valid ife encode action with mark and continue control ok 112 e4cf - Create valid ife encode action with mark and drop control ok 113 ccba - Create valid ife encode action with mark and reclassify control ok 114 a1cf - Create valid ife encode action with mark and jump control ok 115 cb3d - Create valid ife encode action with mark value at 32-bit maximum ok 116 1efb - Create ife encode action with mark value exceeding 32-bit maximum ok 117 95ed - Create valid ife encode action with prio and pass control ok 118 aa17 - Create valid ife encode action with prio and pipe control ok 119 74c7 - Create valid ife encode action with prio and continue control ok 120 7a97 - Create valid ife encode action with prio and drop control ok 121 f66b - Create valid ife encode action with prio and reclassify control ok 122 3056 - Create valid ife encode action with prio and jump control ok 123 7dd3 - Create valid ife encode action with prio value at 32-bit maximum ok 124 2ca1 - Create ife encode action with prio value exceeding 32-bit maximum ok 125 05bb - Create valid ife encode action with tcindex and pass control ok 126 ce65 - Create valid ife encode action with tcindex and pipe control ok 127 09cd - Create valid ife encode action with tcindex and continue control ok 128 8eb5 - Create valid ife encode action with tcindex and continue control ok 129 451a - Create valid ife encode action with tcindex and drop control ok 130 d76c - Create valid ife encode action with tcindex and reclassify control ok 131 e731 - Create valid ife encode action with tcindex and jump control ok 132 b7b8 - Create valid ife encode action with tcindex value at 16-bit maximum ok 133 d0d8 - Create ife encode action with tcindex value exceeding 16-bit maximum ok 134 2a9c - Create valid ife encode action with mac src parameter ok 135 cf5c - Create valid ife encode action with mac dst parameter ok 136 2353 - Create valid ife encode action with mac src and mac dst parameters ok 137 552c - Create valid ife encode action with mark and type parameters ok 138 0421 - Create valid ife encode action with prio and type parameters ok 139 4017 - Create valid ife encode action with tcindex and type parameters ok 140 fac3 - Create valid ife encode action with index at 32-bit maximum ok 141 7c25 - Create valid ife decode action with pass control ok 142 dccb - Create valid ife decode action with pipe control ok 143 7bb9 - Create valid ife decode action with continue control ok 144 d9ad - Create valid ife decode action with drop control ok 145 219f - Create valid ife decode action with reclassify control ok 146 8f44 - Create valid ife decode action with jump control ok 147 56cf - Create ife encode action with index exceeding 32-bit maximum ok 148 ee94 - Create ife encode action with invalid control ok 149 b330 - Create ife encode action with cookie ok 150 bbc0 - Create ife encode action with invalid argument ok 151 d54a - Create ife encode action with invalid type argument ok 152 7ee0 - Create ife encode action with invalid mac src argument ok 153 0a7d - Create ife encode action with invalid mac dst argument ok 154 a0e2 - Replace ife encode action with invalid goto chain control ok 155 a972 - Delete ife encode action with valid index ok 156 1272 - Delete ife encode action with invalid index ok 157 6236 - Add skbedit action with valid mark ok 158 c8cf - Add skbedit action with 32-bit maximum mark ok 159 407b - Add skbedit action with mark exceeding 32-bit maximum ok 160 d4cd - Add skbedit action with valid mark and mask ok 161 baa7 - Add skbedit action with valid mark and 32-bit maximum mask ok 162 62a5 - Add skbedit action with valid mark and mask exceeding 32-bit maximum ok 163 bc15 - Add skbedit action with valid mark and mask with invalid format ok 164 57c2 - Replace skbedit action with new mask ok 165 081d - Add skbedit action with priority ok 166 cc37 - Add skbedit action with invalid priority ok 167 3c95 - Add skbedit action with queue_mapping ok 168 985c - Add skbedit action with queue_mapping exceeding 16-bit maximum ok 169 224f - Add skbedit action with ptype host ok 170 d1a3 - Add skbedit action with ptype otherhost ok 171 b9c6 - Add skbedit action with invalid ptype ok 172 464a - Add skbedit action with control pipe ok 173 212f - Add skbedit action with control reclassify ok 174 0651 - Add skbedit action with control pass ok 175 cc53 - Add skbedit action with control drop ok 176 ec16 - Add skbedit action with control jump ok 177 db54 - Add skbedit action with control continue ok 178 1055 - Add skbedit action with cookie ok 179 5172 - List skbedit actions ok 180 a6d6 - Add skbedit action with index at 32-bit maximum ok 181 f0f4 - Add skbedit action with index exceeding 32-bit maximum ok 182 38f3 - Delete skbedit action ok 183 ce97 - Flush skbedit actions ok 184 1b2b - Replace skbedit action with invalid goto_chain control ok 185 630c - Add batch of 32 skbedit actions with all parameters and cookie ok 186 706d - Delete batch of 32 skbedit actions with all parameters ok 187 e89a - Add valid pass action ok 188 a02c - Add valid pipe action ok 189 feef - Add valid reclassify action ok 190 8a7a - Add valid drop action ok 191 9a52 - Add valid continue action ok 192 d700 - Add invalid action ok 193 9215 - Add action with duplicate index ok 194 798e - Add action with index exceeding 32-bit maximum ok 195 22be - Add action with index at 32-bit maximum ok 196 ac2a - List actions ok 197 3edf - Flush gact actions ok 198 63ec - Delete pass action ok 199 46be - Delete pipe action ok 200 2e08 - Delete reclassify action ok 201 99c4 - Delete drop action ok 202 fb6b - Delete continue action ok 203 0eb3 - Delete non-existent action ok 204 f02c - Replace gact action ok 205 525f - Get gact action by index ok 206 1021 - Add batch of 32 gact pass actions ok 207 da7a - Add batch of 32 gact continue actions with cookie ok 208 8aa3 - Delete batch of 32 gact continue actions ok 209 8e47 - Add gact action with random determ goto chain control action ok 210 ca89 - Replace gact action with invalid goto chain control ok 211 95ad - Add gact pass action with no_percpu flag ok 212 7f52 - Try to flush action which is referenced by filter ok 213 ae1e - Try to flush actions when last one is referenced by filter ok 214 d959 - Add cBPF action with valid bytecode ok 215 f84a - Add cBPF action with invalid bytecode ok 216 e939 - Add eBPF action with valid object-file ok 217 282d - Add eBPF action with invalid object-file ok 218 d819 - Replace cBPF bytecode and action control ok 219 6ae3 - Delete cBPF action ok 220 3e0d - List cBPF actions ok 221 55ce - Flush BPF actions ok 222 ccc3 - Add cBPF action with duplicate index ok 223 89c7 - Add cBPF action with invalid index ok 224 7ab9 - Add cBPF action with cookie ok 225 b8a1 - Replace bpf action with invalid goto_chain control ok 226 2002 - Add valid connmark action with defaults ok 227 56a5 - Add valid connmark action with control pass ok 228 7c66 - Add valid connmark action with control drop ok 229 a913 - Add valid connmark action with control pipe ok 230 bdd8 - Add valid connmark action with control reclassify ok 231 b8be - Add valid connmark action with control continue ok 232 d8a6 - Add valid connmark action with control jump ok 233 aae8 - Add valid connmark action with zone argument ok 234 2f0b - Add valid connmark action with invalid zone argument ok 235 9305 - Add connmark action with unsupported argument ok 236 71ca - Add valid connmark action and replace it ok 237 5f8f - Add valid connmark action with cookie ok 238 c506 - Replace connmark with invalid goto chain control ok 239 6571 - Delete connmark action with valid index ok 240 3426 - Delete connmark action with invalid index ok 241 7d50 - Add skbmod action to set destination mac ok 242 9b29 - Add skbmod action to set source mac ok 243 1724 - Add skbmod action with invalid mac ok 244 3cf1 - Add skbmod action with valid etype ok 245 a749 - Add skbmod action with invalid etype ok 246 bfe6 - Add skbmod action to swap mac ok 247 839b - Add skbmod action with control pipe ok 248 c167 - Add skbmod action with control reclassify ok 249 0c2f - Add skbmod action with control drop ok 250 d113 - Add skbmod action with control continue ok 251 7242 - Add skbmod action with control pass ok 252 6046 - Add skbmod action with control reclassify and cookie ok 253 58cb - List skbmod actions ok 254 9aa8 - Get a single skbmod action from a list ok 255 e93a - Delete an skbmod action ok 256 40c2 - Flush skbmod actions ok 257 b651 - Replace skbmod action with invalid goto_chain control ok 258 fe09 - Add skbmod action to mark ECN bits ok 259 6d84 - Add csum iph action ok 260 1862 - Add csum ip4h action ok 261 15c6 - Add csum ipv4h action ok 262 bf47 - Add csum icmp action ok 263 cc1d - Add csum igmp action ok 264 bccc - Add csum foobar action ok 265 3bb4 - Add csum tcp action ok 266 759c - Add csum udp action ok 267 bdb6 - Add csum udp xor iph action ok 268 c220 - Add csum udplite action ok 269 8993 - Add csum sctp action ok 270 b138 - Add csum ip & icmp action ok 271 eeda - Add csum ip & sctp action ok 272 0017 - Add csum udp or tcp action ok 273 b10b - Add all 7 csum actions ok 274 ce92 - Add csum udp action with cookie ok 275 912f - Add csum icmp action with large cookie ok 276 879b - Add batch of 32 csum tcp actions ok 277 b4e9 - Delete batch of 32 csum actions ok 278 0015 - Add batch of 32 csum tcp actions with large cookies ok 279 989e - Delete batch of 32 csum actions with large cookies ok 280 d128 - Replace csum action with invalid goto chain control ok 281 eaf0 - Add csum iph action with no_percpu flag ok 282 c826 - Add ctinfo action with default setting ok 283 0286 - Add ctinfo action with dscp ok 284 4938 - Add ctinfo action with valid cpmark and zone ok 285 7593 - Add ctinfo action with drop control ok 286 2961 - Replace ctinfo action zone and action control ok 287 e567 - Delete ctinfo action with valid index ok 288 6a91 - Delete ctinfo action with invalid index ok 289 5232 - List ctinfo actions ok 290 7702 - Flush ctinfo actions ok 291 3201 - Add ctinfo action with duplicate index ok 292 8295 - Add ctinfo action with invalid index ok 293 3964 - Replace ctinfo action with invalid goto_chain control ok 294 696a - Add simple ct action ok 295 e38c - Add simple ct action with cookie ok 296 9f20 - Add ct clear action ok 297 0bc1 - Add ct clear action with cookie of max length ok 298 5bea - Try ct with zone ok 299 d5d6 - Try ct with zone, commit ok 300 029f - Try ct with zone, commit, mark ok 301 a58d - Try ct with zone, commit, mark, nat ok 302 901b - Try ct with full nat ipv4 range syntax ok 303 072b - Try ct with full nat ipv6 syntax ok 304 3420 - Try ct with full nat ipv6 range syntax ok 305 4470 - Try ct with full nat ipv6 range syntax + force ok 306 5d88 - Try ct with label ok 307 04d4 - Try ct with label with mask ok 308 9751 - Try ct with mark + mask ok 309 2faa - Try ct with mark + mask and cookie ok 310 3991 - Add simple ct action with no_percpu flag ok 311 3992 - Add ct action triggering DNAT tuple conflict ok 312 6f5a - Add vlan pop action with pipe opcode ok 313 df35 - Add vlan pop action with pass opcode ok 314 b0d4 - Add vlan pop action with drop opcode ok 315 95ee - Add vlan pop action with reclassify opcode ok 316 0283 - Add vlan pop action with continue opcode ok 317 b6b9 - Add vlan pop action with jump opcode ok 318 87c3 - Add vlan pop action with trap opcode ok 319 a178 - Add vlan pop action with invalid opcode ok 320 ee6f - Add vlan pop action with index at 32-bit maximum ok 321 0dfa - Add vlan pop action with index exceeding 32-bit maximum ok 322 2b91 - Add vlan invalid action ok 323 57fc - Add vlan push action with invalid protocol type ok 324 3989 - Add vlan push action with default protocol and priority ok 325 79dc - Add vlan push action with protocol 802.1Q and priority 3 ok 326 4d73 - Add vlan push action with protocol 802.1AD ok 327 1f4b - Add vlan push action with maximum 12-bit vlan ID ok 328 1f7b - Add vlan push action with invalid vlan ID ok 329 fe40 - Add vlan push action with maximum 3-bit IEEE 802.1p priority ok 330 5d02 - Add vlan push action with invalid IEEE 802.1p priority ok 331 ba5b - Add vlan modify action for protocol 802.1Q setting priority 0 ok 332 6812 - Add vlan modify action for protocol 802.1Q ok 333 5a31 - Add vlan modify action for protocol 802.1AD ok 334 3deb - Replace existing vlan push action with new ID ok 335 9e76 - Replace existing vlan push action with new protocol ok 336 ede4 - Replace existing vlan push action with new priority ok 337 d413 - Replace existing vlan pop action with new cookie ok 338 83a4 - Delete vlan pop action ok 339 ed1e - Delete vlan push action for protocol 802.1Q ok 340 a2a3 - Flush vlan actions ok 341 1d78 - Add vlan push action with cookie ok 342 e394 - Replace vlan push action with invalid goto chain control ok 343 294e - Add batch of 32 vlan push actions with cookie ok 344 56f7 - Delete batch of 32 vlan push actions ok 345 759f - Add batch of 32 vlan pop actions with cookie ok 346 c84a - Delete batch of 32 vlan pop actions ok 347 1a3d - Add vlan pop action with no_percpu flag ok 348 7565 - Add nat action on ingress with default control action ok 349 fd79 - Add nat action on ingress with pipe control action ok 350 eab9 - Add nat action on ingress with continue control action ok 351 c53a - Add nat action on ingress with reclassify control action ok 352 76c9 - Add nat action on ingress with jump control action ok 353 24c6 - Add nat action on ingress with drop control action ok 354 2120 - Add nat action on ingress with maximum index value ok 355 3e9d - Add nat action on ingress with invalid index value ok 356 f6c9 - Add nat action on ingress with invalid IP address ok 357 be25 - Add nat action on ingress with invalid argument ok 358 a7bd - Add nat action on ingress with DEFAULT IP address ok 359 ee1e - Add nat action on ingress with ANY IP address ok 360 1de8 - Add nat action on ingress with ALL IP address ok 361 8dba - Add nat action on egress with default control action ok 362 19a7 - Add nat action on egress with pipe control action ok 363 f1d9 - Add nat action on egress with continue control action ok 364 6d4a - Add nat action on egress with reclassify control action ok 365 b313 - Add nat action on egress with jump control action ok 366 d9fc - Add nat action on egress with drop control action ok 367 a895 - Add nat action on egress with DEFAULT IP address ok 368 2572 - Add nat action on egress with ANY IP address ok 369 37f3 - Add nat action on egress with ALL IP address ok 370 6054 - Add nat action on egress with cookie ok 371 79d6 - Add nat action on ingress with cookie ok 372 4b12 - Replace nat action with invalid goto chain control ok 373 b811 - Delete nat action with valid index ok 374 a521 - Delete nat action with invalid index ok 375 9784 - Add valid sample action with mandatory arguments ok 376 5c91 - Add valid sample action with mandatory arguments and continue control action ok 377 334b - Add valid sample action with mandatory arguments and drop control action ok 378 da69 - Add valid sample action with mandatory arguments and reclassify control action ok 379 13ce - Add valid sample action with mandatory arguments and pipe control action ok 380 1886 - Add valid sample action with mandatory arguments and jump control action ok 381 7571 - Add sample action with invalid rate ok 382 b6d4 - Add sample action with mandatory arguments and invalid control action ok 383 a874 - Add invalid sample action without mandatory arguments ok 384 ac01 - Add invalid sample action without mandatory argument rate ok 385 4203 - Add invalid sample action without mandatory argument group ok 386 14a7 - Add invalid sample action without mandatory argument group ok 387 8f2e - Add valid sample action with trunc argument ok 388 45f8 - Add sample action with maximum rate argument ok 389 ad0c - Add sample action with maximum trunc argument ok 390 83a9 - Add sample action with maximum group argument ok 391 ed27 - Add sample action with invalid rate argument ok 392 2eae - Add sample action with invalid group argument ok 393 6ff3 - Add sample action with invalid trunc size ok 394 2b2a - Add sample action with invalid index ok 395 dee2 - Add sample action with maximum allowed index ok 396 560e - Add sample action with cookie ok 397 704a - Replace existing sample action with new rate argument ok 398 60eb - Replace existing sample action with new group argument ok 399 2cce - Replace existing sample action with new trunc argument ok 400 59d1 - Replace existing sample action with new control argument ok 401 0a6e - Replace sample action with invalid goto chain control ok 402 3872 - Delete sample action with valid index ok 403 a394 - Delete sample action with invalid index ok 404 49aa - Add valid basic police action ok 405 3abe - Add police action with duplicate index ok 406 49fa - Add valid police action with mtu ok 407 7943 - Add valid police action with peakrate ok 408 055e - Add police action with peakrate and no mtu ok 409 f057 - Add police action with valid overhead ok 410 7ffb - Add police action with ethernet linklayer type ok 411 3dda - Add police action with atm linklayer type ok 412 551b - Add police actions with conform-exceed control continue/drop ok 413 0c70 - Add police actions with conform-exceed control pass/reclassify ok 414 d946 - Add police actions with conform-exceed control pass/pipe ok 415 ddd6 - Add police action with invalid rate value ok 416 f61c - Add police action with invalid burst value ok 417 6aaf - Add police actions with conform-exceed control pass/pipe [with numeric values] ok 418 29b1 - Add police actions with conform-exceed control <invalid>/drop ok 419 c26f - Add police action with invalid peakrate value ok 420 db04 - Add police action with invalid mtu value ok 421 f3c9 - Add police action with cookie ok 422 d190 - Add police action with maximum index ok 423 336e - Delete police action ok 424 77fa - Get single police action from many actions ok 425 aa43 - Get single police action without specifying index ok 426 858b - List police actions ok 427 1c3a - Flush police actions ok 428 7326 - Add police action with control continue ok 429 34fa - Add police action with control drop ok 430 8dd5 - Add police action with control ok ok 431 b9d1 - Add police action with control reclassify ok 432 c534 - Add police action with control pipe ok 433 b48b - Add police action with exceed goto chain control action ok 434 689e - Replace police action with invalid goto chain control ok 435 cdd7 - Add valid police action with packets per second rate limit ok 436 f5bc - Add invalid police action with both bps and pps ok 437 7d64 - Add police action with skip_hw option ok 438 b078 - Add simple action ok 439 4297 - Add simple action with change command ok 440 6d4c - Add simple action with duplicate index ok 441 2542 - List simple actions ok 442 ea67 - Delete simple action ok 443 8ff1 - Flush simple actions ok 444 b776 - Replace simple action with invalid goto chain control ok 445 8d07 - Verify cleanup of failed actions batch add ok 446 a68a - Verify cleanup of failed actions batch change ok 447 a933 - Add MPLS dec_ttl action with pipe opcode ok 448 08d1 - Add mpls dec_ttl action with pass opcode ok 449 d786 - Add mpls dec_ttl action with drop opcode ok 450 f334 - Add mpls dec_ttl action with reclassify opcode ok 451 29bd - Add mpls dec_ttl action with continue opcode ok 452 48df - Add mpls dec_ttl action with jump opcode ok 453 62eb - Add mpls dec_ttl action with trap opcode ok 454 09d2 - Add mpls dec_ttl action with opcode and cookie ok 455 c170 - Add mpls dec_ttl action with opcode and cookie of max length ok 456 9118 - Add mpls dec_ttl action with invalid opcode ok 457 6ce1 - Add mpls dec_ttl action with label (invalid) ok 458 352f - Add mpls dec_ttl action with tc (invalid) ok 459 fa1c - Add mpls dec_ttl action with ttl (invalid) ok 460 6b79 - Add mpls dec_ttl action with bos (invalid) ok 461 d4c4 - Add mpls pop action with ip proto ok 462 91fb - Add mpls pop action with ip proto and cookie ok 463 92fe - Add mpls pop action with mpls proto ok 464 7e23 - Add mpls pop action with no protocol (invalid) ok 465 6182 - Add mpls pop action with label (invalid) ok 466 6475 - Add mpls pop action with tc (invalid) ok 467 067b - Add mpls pop action with ttl (invalid) ok 468 7316 - Add mpls pop action with bos (invalid) ok 469 38cc - Add mpls push action with label ok 470 c281 - Add mpls push action with mpls_mc protocol ok 471 5db4 - Add mpls push action with label, tc and ttl ok 472 7c34 - Add mpls push action with label, tc ttl and cookie of max length ok 473 16eb - Add mpls push action with label and bos ok 474 d69d - Add mpls push action with no label (invalid) ok 475 e8e4 - Add mpls push action with ipv4 protocol (invalid) ok 476 ecd0 - Add mpls push action with out of range label (invalid) ok 477 d303 - Add mpls push action with out of range tc (invalid) ok 478 fd6e - Add mpls push action with ttl of 0 (invalid) ok 479 19e9 - Add mpls mod action with mpls label ok 480 1fde - Add mpls mod action with max mpls label ok 481 0c50 - Add mpls mod action with mpls label exceeding max (invalid) ok 482 10b6 - Add mpls mod action with mpls label of MPLS_LABEL_IMPLNULL (invalid) ok 483 57c9 - Add mpls mod action with mpls min tc ok 484 6872 - Add mpls mod action with mpls max tc ok 485 a70a - Add mpls mod action with mpls tc exceeding max (invalid) ok 486 6ed5 - Add mpls mod action with mpls ttl ok 487 77c1 - Add mpls mod action with mpls ttl and cookie ok 488 b80f - Add mpls mod action with mpls max ttl ok 489 8864 - Add mpls mod action with mpls min ttl ok 490 6c06 - Add mpls mod action with mpls ttl of 0 (invalid) ok 491 b5d8 - Add mpls mod action with mpls ttl exceeding max (invalid) ok 492 451f - Add mpls mod action with mpls max bos ok 493 a1ed - Add mpls mod action with mpls min bos ok 494 3dcf - Add mpls mod action with mpls bos exceeding max (invalid) ok 495 db7c - Add mpls mod action with protocol (invalid) ok 496 b070 - Replace existing mpls push action with new ID ok 497 95a9 - Replace existing mpls push action with new label, tc, ttl and cookie ok 498 6cce - Delete mpls pop action ok 499 d138 - Flush mpls actions ok 500 5153 - Add gate action with priority and sched-entry ok 501 7189 - Add gate action with base-time ok 502 a721 - Add gate action with cycle-time ok 503 c029 - Add gate action with cycle-time-ext ok 504 3719 - Replace gate base-time action ok 505 d821 - Delete gate action with valid index ok 506 3128 - Delete gate action with invalid index ok 507 7837 - List gate actions ok 508 9273 - Flush gate actions ok 509 c829 - Add gate action with duplicate index ok 510 3043 - Add gate action with invalid index ok 511 2930 - Add gate action with cookie ok 512 5124 - Add mirred mirror to egress action ok 513 6fb4 - Add mirred redirect to egress action ok 514 ba38 - Get mirred actions ok 515 d7c0 - Add invalid mirred direction ok 516 e213 - Add invalid mirred action ok 517 2d89 - Add mirred action with invalid device ok 518 300b - Add mirred action with duplicate index ok 519 8917 - Add mirred mirror action with control pass ok 520 1054 - Add mirred mirror action with control pipe ok 521 9887 - Add mirred mirror action with control continue ok 522 e4aa - Add mirred mirror action with control reclassify ok 523 ece9 - Add mirred mirror action with control drop ok 524 0031 - Add mirred mirror action with control jump ok 525 407c - Add mirred mirror action with cookie ok 526 8b69 - Add mirred mirror action with index at 32-bit maximum ok 527 3f66 - Add mirred mirror action with index exceeding 32-bit maximum ok 528 a70e - Delete mirred mirror action ok 529 3fb3 - Delete mirred redirect action ok 530 2a9a - Replace mirred action with invalid goto chain control ok 531 4749 - Add batch of 32 mirred redirect egress actions with cookie ok 532 5c69 - Delete batch of 32 mirred redirect egress actions ok 533 d3c0 - Add batch of 32 mirred mirror ingress actions with cookie ok 534 e684 - Delete batch of 32 mirred mirror ingress actions ok 535 31e3 - Add mirred mirror to egress action with no_percpu flag ok 536 456d - Add mirred mirror to egress block action # skipped - probe command: test skipped. ok 537 2358 - Add mirred mirror to ingress block action # skipped - probe command: test skipped. ok 538 fdb1 - Add mirred redirect to egress block action # skipped - probe command: test skipped. ok 539 20cc - Add mirred redirect to ingress block action # skipped - probe command: test skipped. ok 540 e739 - Try to add mirred action with both dev and block # skipped - probe command: test skipped. ok 541 2f47 - Try to add mirred action without specifying neither dev nor block ok 542 3188 - Replace mirred redirect to dev action with redirect to block # skipped - probe command: test skipped. ok 543 83cc - Replace mirred redirect to block action with mirror to dev # skipped - probe command: test skipped. ok 544 c2b4 - Soft lockup alarm will be not generated after delete the prio 0 filter of the chain ok 545 abdc - Reference pedit action object in filter ok 546 7a70 - Reference mpls action object in filter ok 547 d241 - Reference bpf action object in filter ok 548 383a - Reference connmark action object in filter ok 549 c619 - Reference csum action object in filter ok 550 a93d - Reference ct action object in filter ok 551 8bb5 - Reference ctinfo action object in filter ok 552 2241 - Reference gact action object in filter ok 553 35e9 - Reference gate action object in filter ok 554 b22e - Reference ife action object in filter ok 555 ef74 - Reference mirred action object in filter ok 556 2c81 - Reference nat action object in filter ok 557 ac9d - Reference police action object in filter ok 558 68be - Reference sample action object in filter ok 559 cf01 - Reference skbedit action object in filter ok 560 c109 - Reference skbmod action object in filter ok 561 4abc - Reference tunnel_key action object in filter ok 562 dadd - Reference vlan action object in filter ok 563 0582 - Create QFQ with default setting ok 564 c9a3 - Create QFQ with class weight setting ok 565 d364 - Test QFQ with max class weight setting ok 566 8452 - Create QFQ with class maxpkt setting ok 567 22df - Test QFQ class maxpkt setting lower bound ok 568 92ee - Test QFQ class maxpkt setting upper bound ok 569 d920 - Create QFQ with multiple class setting ok 570 0548 - Delete QFQ with handle ok 571 5901 - Show QFQ class ok 572 85ee - QFQ with big MTU ok 573 ddfa - QFQ with small MTU ok 574 5993 - QFQ with stab overhead greater than max packet len ok 575 0385 - Create DRR with default setting ok 576 2375 - Delete DRR with handle ok 577 3092 - Show DRR class ok 578 9903 - Add mqprio Qdisc to multi-queue device (8 queues) ok 579 453a - Delete nonexistent mqprio Qdisc ok 580 5292 - Delete mqprio Qdisc twice ok 581 45a9 - Add mqprio Qdisc to single-queue device ok 582 2ba9 - Show mqprio class ok 583 4812 - Create HHF with default setting ok 584 8a92 - Create HHF with limit setting ok 585 3491 - Create HHF with quantum setting ok 586 ba04 - Create HHF with reset_timeout setting ok 587 4238 - Create HHF with admit_bytes setting ok 588 839f - Create HHF with evict_timeout setting ok 589 a044 - Create HHF with non_hh_weight setting ok 590 32f9 - Change HHF with limit setting ok 591 385e - Show HHF class ok 592 7482 - Create SFQ with default setting ok 593 c186 - Create SFQ with limit setting ok 594 ae23 - Create SFQ with perturb setting ok 595 a430 - Create SFQ with quantum setting ok 596 4539 - Create SFQ with divisor setting ok 597 b089 - Create SFQ with flows setting ok 598 99a0 - Create SFQ with depth setting ok 599 7389 - Create SFQ with headdrop setting ok 600 6472 - Create SFQ with redflowlimit setting ok 601 8929 - Show SFQ class ok 602 0904 - Create HTB with default setting ok 603 3906 - Create HTB with default-N setting ok 604 8492 - Create HTB with r2q setting ok 605 9502 - Create HTB with direct_qlen setting ok 606 b924 - Create HTB with class rate and burst setting ok 607 4359 - Create HTB with class mpu setting ok 608 9048 - Create HTB with class prio setting ok 609 4994 - Create HTB with class ceil setting ok 610 9523 - Create HTB with class cburst setting ok 611 5353 - Create HTB with class mtu setting ok 612 346a - Create HTB with class quantum setting ok 613 303a - Delete HTB with handle ok 614 e90e - Add ETS qdisc using bands ok 615 b059 - Add ETS qdisc using quanta ok 616 e8e7 - Add ETS qdisc using strict ok 617 233c - Add ETS qdisc using bands + quanta ok 618 3d35 - Add ETS qdisc using bands + strict ok 619 7f3b - Add ETS qdisc using strict + quanta ok 620 4593 - Add ETS qdisc using strict 0 + quanta ok 621 8938 - Add ETS qdisc using bands + strict + quanta ok 622 0782 - Add ETS qdisc with more bands than quanta ok 623 501b - Add ETS qdisc with more bands than strict ok 624 671a - Add ETS qdisc with more bands than strict + quanta ok 625 2a23 - Add ETS qdisc with 16 bands ok 626 8daf - Add ETS qdisc with 17 bands ok 627 7f95 - Add ETS qdisc with 17 strict ok 628 837a - Add ETS qdisc with 16 quanta ok 629 65b6 - Add ETS qdisc with 17 quanta ok 630 b9e9 - Add ETS qdisc with 16 strict + quanta ok 631 9877 - Add ETS qdisc with 17 strict + quanta ok 632 c696 - Add ETS qdisc with priomap ok 633 30c4 - Add ETS qdisc with quanta + priomap ok 634 e8ac - Add ETS qdisc with strict + priomap ok 635 5a7e - Add ETS qdisc with quanta + strict + priomap ok 636 cb8b - Show ETS class :1 ok 637 1b4e - Show ETS class :2 ok 638 f642 - Show ETS class :3 ok 639 0a5f - Show ETS strict class ok 640 f7c8 - Add ETS qdisc with too many quanta ok 641 2389 - Add ETS qdisc with too many strict ok 642 fe3c - Add ETS qdisc with too many strict + quanta ok 643 cb04 - Add ETS qdisc with excess priomap elements ok 644 c32e - Add ETS qdisc with priomap above bands ok 645 744c - Add ETS qdisc with priomap above quanta ok 646 7b33 - Add ETS qdisc with priomap above strict ok 647 dbe6 - Add ETS qdisc with priomap above strict + quanta ok 648 bdb2 - Add ETS qdisc with priomap within bands with strict + quanta ok 649 39a3 - Add ETS qdisc with priomap above bands with strict + quanta ok 650 557c - Unset priorities default to the last band ok 651 a347 - Unset priorities default to the last band -- no priomap ok 652 39c4 - Add ETS qdisc with too few bands ok 653 930b - Add ETS qdisc with too many bands ok 654 406a - Add ETS qdisc without parameters ok 655 e51a - Zero element in quanta ok 656 e7f2 - Sole zero element in quanta ok 657 d6e6 - No values after the quanta keyword ok 658 28c6 - Change ETS band quantum ok 659 4714 - Change ETS band without quantum ok 660 6979 - Change quantum of a strict ETS band ok 661 9a7d - Change ETS strict band without quantum ok 662 34ba - Create ETF with default setting ok 663 438f - Create ETF with delta nanos setting ok 664 9041 - Create ETF with deadline_mode setting ok 665 9a0c - Create ETF with skip_sock_check setting ok 666 2093 - Delete ETF with valid handle ok 667 84a0 - Create TEQL with default setting ok 668 7734 - Create TEQL with multiple device ok 669 34a9 - Delete TEQL with valid handle ok 670 6289 - Show TEQL stats ok 671 6430 - Create TBF with default setting ok 672 0518 - Create TBF with mtu setting ok 673 320a - Create TBF with peakrate setting ok 674 239b - Create TBF with latency setting ok 675 c975 - Create TBF with overhead setting ok 676 948c - Create TBF with linklayer setting ok 677 3549 - Replace TBF with mtu ok 678 f948 - Change TBF with latency time ok 679 2348 - Show TBF class ok 680 8b6e - Create RED with no flags ok 681 342e - Create RED with adaptive flag ok 682 2d4b - Create RED with ECN flag ok 683 650f - Create RED with flags ECN, adaptive ok 684 5f15 - Create RED with flags ECN, harddrop ok 685 53e8 - Create RED with flags ECN, nodrop ok 686 d091 - Fail to create RED with only nodrop flag ok 687 af8e - Create RED with flags ECN, nodrop, harddrop ok 688 290a - Show RED class ok 689 1212 - Create CAKE with default setting ok 690 3281 - Create CAKE with bandwidth limit ok 691 c940 - Create CAKE with autorate-ingress flag ok 692 2310 - Create CAKE with rtt time ok 693 2385 - Create CAKE with besteffort flag ok 694 a032 - Create CAKE with diffserv8 flag ok 695 2349 - Create CAKE with diffserv4 flag ok 696 8472 - Create CAKE with flowblind flag ok 697 2341 - Create CAKE with dsthost and nat flag ok 698 5134 - Create CAKE with wash flag ok 699 2302 - Create CAKE with flowblind and no-split-gso flag ok 700 0768 - Create CAKE with dual-srchost and ack-filter flag ok 701 0238 - Create CAKE with dual-dsthost and ack-filter-aggressive flag ok 702 6572 - Create CAKE with memlimit and ptm flag ok 703 2436 - Create CAKE with fwmark and atm flag ok 704 3984 - Create CAKE with overhead and mpu ok 705 5421 - Create CAKE with conservative and ingress flag ok 706 6854 - Delete CAKE with conservative and ingress flag ok 707 2342 - Replace CAKE with mpu ok 708 2313 - Change CAKE with mpu ok 709 4365 - Show CAKE class ok 710 ddd9 - Add prio qdisc on egress ok 711 aa71 - Add prio qdisc on egress with handle of maximum value ok 712 db37 - Add prio qdisc on egress with invalid handle exceeding maximum value ok 713 39d8 - Add prio qdisc on egress with unsupported argument ok 714 5769 - Add prio qdisc on egress with 4 bands and new priomap ok 715 fe0f - Add prio qdisc on egress with 4 bands and priomap exceeding TC_PRIO_MAX entries ok 716 1f91 - Add prio qdisc on egress with 4 bands and priomap's values exceeding bands number ok 717 d248 - Add prio qdisc on egress with invalid bands value (< 2) ok 718 1d0e - Add prio qdisc on egress with invalid bands value exceeding TCQ_PRIO_BANDS ok 719 1971 - Replace default prio qdisc on egress with 8 bands and new priomap ok 720 d88a - Add duplicate prio qdisc on egress ok 721 5948 - Delete nonexistent prio qdisc ok 722 6c0a - Add prio qdisc on egress with invalid format for handles ok 723 0175 - Delete prio qdisc twice ok 724 2410 - Show prio class ok 725 8942 - Create GRED with default setting ok 726 5783 - Create GRED with grio setting ok 727 8a09 - Create GRED with limit setting ok 728 48ca - Create GRED with ecn setting ok 729 48cb - Create GRED with harddrop setting ok 730 763a - Change GRED setting ok 731 8309 - Show GRED class ok 732 3254 - Create HFSC with default setting ok 733 0289 - Create HFSC with class sc and ul rate setting ok 734 846a - Create HFSC with class sc umax and dmax setting ok 735 5413 - Create HFSC with class rt and ls rate setting ok 736 9312 - Create HFSC with class rt umax and dmax setting ok 737 6931 - Delete HFSC with handle ok 738 8436 - Show HFSC class ok 739 bef4 - HFSC rt inner class upgrade to sc ok 740 983a - Create CODEL with default setting ok 741 38aa - Create CODEL with limit packet setting ok 742 9178 - Create CODEL with target setting ok 743 78d1 - Create CODEL with interval setting ok 744 238a - Create CODEL with ecn setting ok 745 939c - Create CODEL with ce_threshold setting ok 746 8380 - Delete CODEL with valid handle ok 747 289c - Replace CODEL with limit setting ok 748 0648 - Change CODEL with limit setting ok 749 83be - Create FQ-PIE with invalid number of flows ok 750 3289 - Create PLUG with default setting ok 751 0917 - Create PLUG with block setting ok 752 483b - Create PLUG with release setting ok 753 4995 - Create PLUG with release_indefinite setting ok 754 389c - Create PLUG with limit setting ok 755 384a - Delete PLUG with valid handle ok 756 439a - Replace PLUG with limit setting ok 757 9831 - Change PLUG with limit setting ok 758 8937 - Create CHOKE with default setting ok 759 48c0 - Create CHOKE with min packet setting ok 760 38c1 - Create CHOKE with max packet setting ok 761 234a - Create CHOKE with ecn setting ok 762 4380 - Create CHOKE with burst setting ok 763 48c7 - Delete CHOKE with valid handle ok 764 4398 - Replace CHOKE with min setting ok 765 0301 - Change CHOKE with limit setting ok 766 3294 - Create SFB with default setting ok 767 430a - Create SFB with rehash setting ok 768 3410 - Create SFB with db setting ok 769 49a0 - Create SFB with limit setting ok 770 1241 - Create SFB with max setting ok 771 3249 - Create SFB with target setting ok 772 30a9 - Create SFB with increment setting ok 773 239a - Create SFB with decrement setting ok 774 9301 - Create SFB with penalty_rate setting ok 775 2a01 - Create SFB with penalty_burst setting ok 776 3209 - Change SFB with rehash setting ok 777 5447 - Show SFB class ok 778 900c - Create pfifo_fast with default setting ok 779 7470 - Dump pfifo_fast stats ok 780 b974 - Replace pfifo_fast with different handle ok 781 3240 - Delete pfifo_fast with valid handle ok 782 4385 - Delete pfifo_fast with invalid handle ok 783 ba39 - Add taprio Qdisc to multi-queue device (8 queues) ok 784 9462 - Add taprio Qdisc with multiple sched-entry ok 785 8d92 - Add taprio Qdisc with txtime-delay ok 786 d092 - Delete taprio Qdisc with valid handle ok 787 8471 - Show taprio class ok 788 0a85 - Add taprio Qdisc to single-queue device ok 789 6f62 - Add taprio Qdisc with too short interval ok 790 831f - Add taprio Qdisc with too short cycle-time ok 791 3e1e - Add taprio Qdisc with an invalid cycle-time ok 792 39b4 - Reject grafting taprio as child qdisc of software taprio ok 793 e8a1 - Reject grafting taprio as child qdisc of offloaded taprio ok 794 a7bf - Graft cbs as child of software taprio ok 795 6a83 - Graft cbs as child of offloaded taprio ok 796 ce7d - Add mq Qdisc to multi-queue device (4 queues) ok 797 2f82 - Add mq Qdisc to multi-queue device (256 queues) ok 798 c525 - Add duplicate mq Qdisc ok 799 128a - Delete nonexistent mq Qdisc ok 800 03a9 - Delete mq Qdisc twice ok 801 be0f - Add mq Qdisc to single-queue device ok 802 1023 - Show mq class ok 803 0531 - Replace mq with invalid parent ID ok 804 20ba - Add multiq Qdisc to multi-queue device (8 queues) ok 805 4301 - List multiq Class ok 806 7832 - Delete nonexistent multiq Qdisc ok 807 2891 - Delete multiq Qdisc twice ok 808 1329 - Add multiq Qdisc to single-queue device ok 809 1820 - Create CBS with default setting ok 810 1532 - Create CBS with hicredit setting ok 811 2078 - Create CBS with locredit setting ok 812 9271 - Create CBS with sendslope setting ok 813 0482 - Create CBS with idleslope setting ok 814 e8f3 - Create CBS with multiple setting ok 815 23c9 - Replace CBS with sendslope setting ok 816 a07a - Change CBS with idleslope setting ok 817 43b3 - Delete CBS with handle ok 818 9472 - Show CBS class ok 819 a519 - Add bfifo qdisc with system default parameters on egress ok 820 585c - Add pfifo qdisc with system default parameters on egress ok 821 a86e - Add bfifo qdisc with system default parameters on egress with handle of maximum value ok 822 9ac8 - Add bfifo qdisc on egress with queue size of 3000 bytes ok 823 f4e6 - Add pfifo qdisc on egress with queue size of 3000 packets ok 824 b1b1 - Add bfifo qdisc with system default parameters on egress with invalid handle exceeding maximum value ok 825 8d5e - Add bfifo qdisc on egress with unsupported argument ok 826 7787 - Add pfifo qdisc on egress with unsupported argument ok 827 c4b6 - Replace bfifo qdisc on egress with new queue size ok 828 3df6 - Replace pfifo qdisc on egress with new queue size ok 829 7a67 - Add bfifo qdisc on egress with queue size in invalid format ok 830 1298 - Add duplicate bfifo qdisc on egress ok 831 45a0 - Delete nonexistent bfifo qdisc ok 832 972b - Add prio qdisc on egress with invalid format for handles ok 833 4d39 - Delete bfifo qdisc twice ok 834 cb28 - Create NETEM with default setting ok 835 a089 - Create NETEM with limit flag ok 836 3449 - Create NETEM with delay time ok 837 3782 - Create NETEM with distribution and corrupt flag ok 838 2b82 - Create NETEM with distribution and duplicate flag ok 839 a932 - Create NETEM with distribution and loss flag ok 840 e01a - Create NETEM with distribution and loss state flag ok 841 ba29 - Create NETEM with loss gemodel flag ok 842 0492 - Create NETEM with reorder flag ok 843 7862 - Create NETEM with rate limit ok 844 7235 - Create NETEM with multiple slot rate ok 845 5439 - Create NETEM with multiple slot setting ok 846 5029 - Change NETEM with loss state ok 847 3785 - Replace NETEM with delay time ok 848 4502 - Delete NETEM with handle ok 849 0785 - Show NETEM class ok 850 983b - Create FQ with default setting ok 851 38a1 - Create FQ with limit packet setting ok 852 0a18 - Create FQ with flow_limit setting ok 853 2390 - Create FQ with quantum setting ok 854 845b - Create FQ with initial_quantum setting ok 855 10f7 - Create FQ with invalid initial_quantum setting ok 856 9398 - Create FQ with maxrate setting ok 857 342c - Create FQ with nopacing setting ok 858 6391 - Create FQ with refill_delay setting ok 859 238b - Create FQ with low_rate_threshold setting ok 860 7582 - Create FQ with orphan_mask setting ok 861 4894 - Create FQ with timer_slack setting ok 862 324c - Create FQ with ce_threshold setting ok 863 424a - Create FQ with horizon time setting ok 864 89e1 - Create FQ with horizon_cap setting ok 865 32e1 - Delete FQ with valid handle ok 866 49b0 - Replace FQ with limit setting ok 867 9478 - Change FQ with limit setting ok 868 4957 - Create FQ_CODEL with default setting ok 869 7621 - Create FQ_CODEL with limit setting ok 870 6871 - Create FQ_CODEL with memory_limit setting ok 871 5636 - Create FQ_CODEL with target setting ok 872 630a - Create FQ_CODEL with interval setting ok 873 4324 - Create FQ_CODEL with quantum setting ok 874 b190 - Create FQ_CODEL with noecn flag ok 875 5381 - Create FQ_CODEL with ce_threshold setting ok 876 c9d2 - Create FQ_CODEL with drop_batch setting ok 877 523b - Create FQ_CODEL with multiple setting ok 878 9283 - Replace FQ_CODEL with noecn setting ok 879 3459 - Change FQ_CODEL with limit setting ok 880 0128 - Delete FQ_CODEL with handle ok 881 0435 - Show FQ_CODEL class ok 882 283e - Create skbprio with default setting ok 883 c086 - Create skbprio with limit setting ok 884 6733 - Change skbprio with limit setting ok 885 2958 - Show skbprio class ok 886 9872 - Add ingress qdisc ok 887 5c5e - Add ingress qdisc with unsupported argument ok 888 74f6 - Add duplicate ingress qdisc ok 889 f769 - Delete nonexistent ingress qdisc ok 890 3b88 - Delete ingress qdisc twice ok 891 0521 - Show ingress class ok 892 afa9 - Add u32 with source match ok 893 6aa7 - Add/Replace u32 with source match and invalid indev ok 894 bc4d - Replace valid u32 with source match and invalid indev ok 895 648b - Add u32 with custom hash table ok 896 6658 - Add/Replace u32 with custom hash table and invalid handle ok 897 9d0a - Replace valid u32 with custom hash table and invalid handle ok 898 1644 - Add u32 filter that links to a custom hash table ok 899 74c2 - Add/Replace u32 filter with invalid hash table id ok 900 1fe6 - Replace valid u32 filter with invalid hash table id ok 901 0692 - Test u32 sample option, divisor 256 ok 902 2478 - Test u32 sample option, divisor 16 ok 903 0c37 - Try to delete class referenced by u32 after a replace ok 904 bd32 - Try to delete hashtable referenced by another u32 filter ok 905 4585 - Delete small tree of u32 hashtables and filters ok 906 7a92 - Add basic filter with cmp ematch u8/link layer and default action ok 907 2e8a - Add basic filter with cmp ematch u8/link layer with trans flag and default action ok 908 4d9f - Add basic filter with cmp ematch u16/link layer and a single action ok 909 4943 - Add basic filter with cmp ematch u32/link layer and miltiple actions ok 910 7559 - Add basic filter with cmp ematch u8/network layer and default action ok 911 aff4 - Add basic filter with cmp ematch u8/network layer with trans flag and default action ok 912 c732 - Add basic filter with cmp ematch u16/network layer and a single action ok 913 32d8 - Add basic filter with cmp ematch u32/network layer and miltiple actions ok 914 b99c - Add basic filter with cmp ematch u8/transport layer and default action ok 915 0752 - Add basic filter with cmp ematch u8/transport layer with trans flag and default action ok 916 7e07 - Add basic filter with cmp ematch u16/transport layer and a single action ok 917 62d7 - Add basic filter with cmp ematch u32/transport layer and miltiple actions ok 918 304b - Add basic filter with NOT cmp ematch rule and default action ok 919 8ecb - Add basic filter with two ANDed cmp ematch rules and single action ok 920 b1ad - Add basic filter with two ORed cmp ematch rules and single action ok 921 4600 - Add basic filter with two ANDed cmp ematch rules and one ORed ematch rule and single action ok 922 bc59 - Add basic filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action ok 923 bae4 - Add basic filter with u32 ematch u8/zero offset and default action ok 924 e6cb - Add basic filter with u32 ematch u8/zero offset and invalid value >0xFF ok 925 7727 - Add basic filter with u32 ematch u8/positive offset and default action ok 926 a429 - Add basic filter with u32 ematch u8/invalid mask >0xFF ok 927 8373 - Add basic filter with u32 ematch u8/missing offset ok 928 ab8e - Add basic filter with u32 ematch u8/missing AT keyword ok 929 712d - Add basic filter with u32 ematch u8/missing value ok 930 350f - Add basic filter with u32 ematch u8/non-numeric value ok 931 e28f - Add basic filter with u32 ematch u8/non-numeric mask ok 932 6d5f - Add basic filter with u32 ematch u8/negative offset and default action ok 933 12dc - Add basic filter with u32 ematch u8/nexthdr+ offset and default action ok 934 1d85 - Add basic filter with u32 ematch u16/zero offset and default action ok 935 3672 - Add basic filter with u32 ematch u16/zero offset and invalid value >0xFFFF ok 936 7fb0 - Add basic filter with u32 ematch u16/positive offset and default action ok 937 19af - Add basic filter with u32 ematch u16/invalid mask >0xFFFF ok 938 446d - Add basic filter with u32 ematch u16/missing offset ok 939 151b - Add basic filter with u32 ematch u16/missing AT keyword ok 940 bb23 - Add basic filter with u32 ematch u16/missing value ok 941 decc - Add basic filter with u32 ematch u16/non-numeric value ok 942 e988 - Add basic filter with u32 ematch u16/non-numeric mask ok 943 07d8 - Add basic filter with u32 ematch u16/negative offset and default action ok 944 f474 - Add basic filter with u32 ematch u16/nexthdr+ offset and default action ok 945 47a0 - Add basic filter with u32 ematch u32/zero offset and default action ok 946 849f - Add basic filter with u32 ematch u32/positive offset and default action ok 947 d288 - Add basic filter with u32 ematch u32/missing offset ok 948 4998 - Add basic filter with u32 ematch u32/missing AT keyword ok 949 1f0a - Add basic filter with u32 ematch u32/missing value ok 950 848e - Add basic filter with u32 ematch u32/non-numeric value ok 951 f748 - Add basic filter with u32 ematch u32/non-numeric mask ok 952 55a6 - Add basic filter with u32 ematch u32/negative offset and default action ok 953 7282 - Add basic filter with u32 ematch u32/nexthdr+ offset and default action ok 954 b2b6 - Add basic filter with canid ematch and single SFF ok 955 f67f - Add basic filter with canid ematch and single SFF with mask ok 956 bd5c - Add basic filter with canid ematch and multiple SFF ok 957 83c7 - Add basic filter with canid ematch and multiple SFF with masks ok 958 a8f5 - Add basic filter with canid ematch and single EFF ok 959 98ae - Add basic filter with canid ematch and single EFF with mask ok 960 6056 - Add basic filter with canid ematch and multiple EFF ok 961 d188 - Add basic filter with canid ematch and multiple EFF with masks ok 962 25d1 - Add basic filter with canid ematch and a combination of SFF/EFF ok 963 b438 - Add basic filter with canid ematch and a combination of SFF/EFF with masks ok 964 0811 - Add multiple basic filter with cmp ematch u8/link layer and default action and dump them ok 965 5129 - List basic filters ok 966 901f - Add fw filter with prio at 32-bit maxixum ok 967 51e2 - Add fw filter with prio exceeding 32-bit maxixum ok 968 d987 - Add fw filter with action ok ok 969 c591 - Add fw filter with action ok by reference ok 970 affe - Add fw filter with action continue ok 971 38b3 - Add fw filter with action continue by reference ok 972 28bc - Add fw filter with action pipe ok 973 6753 - Add fw filter with action pipe by reference ok 974 8da2 - Add fw filter with action drop ok 975 6dc6 - Add fw filter with action drop by reference ok 976 9436 - Add fw filter with action reclassify ok 977 3bc2 - Add fw filter with action reclassify by reference ok 978 95bb - Add fw filter with action jump 10 ok 979 36f7 - Add fw filter with action jump 10 by reference ok 980 3d74 - Add fw filter with action goto chain 5 ok 981 eb8f - Add fw filter with invalid action ok 982 6a79 - Add fw filter with missing mandatory action ok 983 8298 - Add fw filter with cookie ok 984 a88c - Add fw filter with invalid cookie ok 985 10f6 - Add fw filter with handle in hex ok 986 9d51 - Add fw filter with handle at 32-bit maximum ok 987 d939 - Add fw filter with handle exceeding 32-bit maximum ok 988 658c - Add fw filter with mask in hex ok 989 86be - Add fw filter with mask at 32-bit maximum ok 990 e635 - Add fw filter with mask exceeding 32-bit maximum ok 991 6cab - Add fw filter with handle/mask in hex ok 992 8700 - Add fw filter with handle/mask at 32-bit maximum ok 993 7d62 - Add fw filter with handle/mask exceeding 32-bit maximum ok 994 7b69 - Add fw filter with missing mandatory handle ok 995 d68b - Add fw filter with invalid parent ok 996 66e0 - Add fw filter with missing mandatory parent id ok 997 0ff3 - Add fw filter with classid ok 998 9849 - Add fw filter with classid at root ok 999 b7ff - Add fw filter with classid - keeps last 8 (hex) digits ok 1000 2b18 - Add fw filter with invalid classid ok 1001 fade - Add fw filter with flowid ok 1002 33af - Add fw filter with flowid then classid (same arg, takes second) ok 1003 8a8c - Add fw filter with classid then flowid (same arg, takes second) ok 1004 b50d - Add fw filter with handle val/mask and flowid 10:1000 ok 1005 7207 - Add fw filter with protocol ip ok 1006 306d - Add fw filter with protocol ipv6 ok 1007 9a78 - Add fw filter with protocol arp ok 1008 1821 - Add fw filter with protocol 802_3 ok 1009 2260 - Add fw filter with invalid protocol ok 1010 09d7 - Add fw filters protocol 802_3 and ip with conflicting priorities ok 1011 6973 - Add fw filters with same index, same action ok 1012 fc06 - Add fw filters with action police ok 1013 aac7 - Add fw filters with action police linklayer atm ok 1014 5339 - Del entire fw filter ok 1015 0e99 - Del single fw filter x1 ok 1016 f54c - Del single fw filter x2 ok 1017 ba94 - Del fw filter by prio ok 1018 4acb - Del fw filter by chain ok 1019 3424 - Del fw filter by action (invalid) ok 1020 da89 - Del fw filter by handle (invalid) ok 1021 4d95 - Del fw filter by protocol (invalid) ok 1022 4736 - Del fw filter by flowid (invalid) ok 1023 3dcb - Replace fw filter action ok 1024 eb4d - Replace fw filter classid ok 1025 67ec - Replace fw filter index ok 1026 e470 - Try to delete class referenced by fw after a replace ok 1027 ec1a - Replace fw classid with nil ok 1028 5294 - Add flow filter with map key and ops ok 1029 3514 - Add flow filter with map key or ops ok 1030 7534 - Add flow filter with map key xor ops ok 1031 4524 - Add flow filter with map key rshift ops ok 1032 0230 - Add flow filter with map key addend ops ok 1033 2344 - Add flow filter with src map key ok 1034 9304 - Add flow filter with proto map key ok 1035 9038 - Add flow filter with proto-src map key ok 1036 2a03 - Add flow filter with proto-dst map key ok 1037 a073 - Add flow filter with iif map key ok 1038 3b20 - Add flow filter with priority map key ok 1039 8945 - Add flow filter with mark map key ok 1040 c034 - Add flow filter with nfct map key ok 1041 0205 - Add flow filter with nfct-src map key ok 1042 5315 - Add flow filter with nfct-src map key ok 1043 7849 - Add flow filter with nfct-proto-src map key ok 1044 9902 - Add flow filter with nfct-proto-dst map key ok 1045 6742 - Add flow filter with rt-classid map key ok 1046 5432 - Add flow filter with sk-uid map key ok 1047 4134 - Add flow filter with sk-gid map key ok 1048 4522 - Add flow filter with vlan-tag map key ok 1049 4253 - Add flow filter with rxhash map key ok 1050 4452 - Add flow filter with hash key list ok 1051 4341 - Add flow filter with muliple ops ok 1052 4392 - List flow filters ok 1053 4322 - Change flow filter with map key num ok 1054 2320 - Replace flow filter with map key num ok 1055 3213 - Delete flow filter with map key num ok 1056 23c3 - Add cBPF filter with valid bytecode ok 1057 1563 - Add cBPF filter with invalid bytecode ok 1058 2334 - Add eBPF filter with valid object-file ok 1059 2373 - Add eBPF filter with invalid object-file ok 1060 4423 - Replace cBPF bytecode ok 1061 5122 - Delete cBPF filter ok 1062 e0a9 - List cBPF filters ok 1063 e122 - Add route filter with from and to tag ok 1064 6573 - Add route filter with fromif and to tag ok 1065 1362 - Add route filter with to flag and reclassify action ok 1066 4720 - Add route filter with from flag and continue actions ok 1067 2812 - Add route filter with form tag and pipe action ok 1068 7994 - Add route filter with miltiple actions ok 1069 4312 - List route filters ok 1070 2634 - Delete route filter with pipe action ok 1071 b042 - Try to delete class referenced by route after a replace ok 1072 f62b - Add ingress matchall filter for protocol ipv4 and action PASS ok 1073 7f09 - Add egress matchall filter for protocol ipv4 and action PASS ok 1074 0596 - Add ingress matchall filter for protocol ipv6 and action DROP ok 1075 41df - Add egress matchall filter for protocol ipv6 and action DROP ok 1076 e1da - Add ingress matchall filter for protocol ipv4 and action PASS with priority at 16-bit maximum ok 1077 3de5 - Add egress matchall filter for protocol ipv4 and action PASS with priority at 16-bit maximum ok 1078 72d7 - Add ingress matchall filter for protocol ipv4 and action PASS with priority exceeding 16-bit maximum ok 1079 41d3 - Add egress matchall filter for protocol ipv4 and action PASS with priority exceeding 16-bit maximum ok 1080 f755 - Add ingress matchall filter for all protocols and action CONTINUE with handle at 32-bit maximum ok 1081 2c33 - Add egress matchall filter for all protocols and action CONTINUE with handle at 32-bit maximum ok 1082 0e4a - Add ingress matchall filter for all protocols and action RECLASSIFY with skip_hw flag ok 1083 7f60 - Add egress matchall filter for all protocols and action RECLASSIFY with skip_hw flag ok 1084 8bd2 - Add ingress matchall filter for protocol ipv6 and action PASS with classid ok 1085 2a4a - Add ingress matchall filter for protocol ipv6 and action PASS with invalid classid ok 1086 eaf8 - Delete single ingress matchall filter ok 1087 76ad - Delete all ingress matchall filters ok 1088 1eb9 - Delete single ingress matchall filter out of multiple ok 1089 6d63 - Delete ingress matchall filter by chain ID ok 1090 3329 - Validate flags of the matchall filter with skip_sw and police action with skip_hw ok 1091 0eeb - Validate flags of the matchall filter with skip_hw and police action ok 1092 eee4 - Validate flags of the matchall filter with skip_sw and police action ok 1093 2638 - Add matchall and try to get it ok 1094 6273 - Add cgroup filter with cmp ematch u8/link layer and drop action ok 1095 4721 - Add cgroup filter with cmp ematch u8/link layer with trans flag and pass action ok 1096 d392 - Add cgroup filter with cmp ematch u16/link layer and pipe action ok 1097 0234 - Add cgroup filter with cmp ematch u32/link layer and miltiple actions ok 1098 8499 - Add cgroup filter with cmp ematch u8/network layer and pass action ok 1099 b273 - Add cgroup filter with cmp ematch u8/network layer with trans flag and drop action ok 1100 1934 - Add cgroup filter with cmp ematch u16/network layer and pipe action ok 1101 2733 - Add cgroup filter with cmp ematch u32/network layer and miltiple actions ok 1102 3271 - Add cgroup filter with NOT cmp ematch rule and pass action ok 1103 2362 - Add cgroup filter with two ANDed cmp ematch rules and single action ok 1104 9993 - Add cgroup filter with two ORed cmp ematch rules and single action ok 1105 2331 - Add cgroup filter with two ANDed cmp ematch rules and one ORed ematch rule and single action ok 1106 3645 - Add cgroup filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action ok 1107 b124 - Add cgroup filter with u32 ematch u8/zero offset and drop action ok 1108 7381 - Add cgroup filter with u32 ematch u8/zero offset and invalid value >0xFF ok 1109 2231 - Add cgroup filter with u32 ematch u8/positive offset and drop action ok 1110 1882 - Add cgroup filter with u32 ematch u8/invalid mask >0xFF ok 1111 1237 - Add cgroup filter with u32 ematch u8/missing offset ok 1112 3812 - Add cgroup filter with u32 ematch u8/missing AT keyword ok 1113 1112 - Add cgroup filter with u32 ematch u8/missing value ok 1114 3241 - Add cgroup filter with u32 ematch u8/non-numeric value ok 1115 e231 - Add cgroup filter with u32 ematch u8/non-numeric mask ok 1116 4652 - Add cgroup filter with u32 ematch u8/negative offset and pass action ok 1117 7566 - Add cgroup filter with u32 ematch u8/nexthdr+ offset and drop action ok 1118 1331 - Add cgroup filter with u32 ematch u16/zero offset and pipe action ok 1119 e354 - Add cgroup filter with u32 ematch u16/zero offset and invalid value >0xFFFF ok 1120 3538 - Add cgroup filter with u32 ematch u16/positive offset and drop action ok 1121 4576 - Add cgroup filter with u32 ematch u16/invalid mask >0xFFFF ok 1122 b842 - Add cgroup filter with u32 ematch u16/missing offset ok 1123 c924 - Add cgroup filter with u32 ematch u16/missing AT keyword ok 1124 cc93 - Add cgroup filter with u32 ematch u16/missing value ok 1125 123c - Add cgroup filter with u32 ematch u16/non-numeric value ok 1126 3675 - Add cgroup filter with u32 ematch u16/non-numeric mask ok 1127 1123 - Add cgroup filter with u32 ematch u16/negative offset and drop action ok 1128 4234 - Add cgroup filter with u32 ematch u16/nexthdr+ offset and pass action ok 1129 e912 - Add cgroup filter with u32 ematch u32/zero offset and pipe action ok 1130 1435 - Add cgroup filter with u32 ematch u32/positive offset and drop action ok 1131 1282 - Add cgroup filter with u32 ematch u32/missing offset ok 1132 6456 - Add cgroup filter with u32 ematch u32/missing AT keyword ok 1133 4231 - Add cgroup filter with u32 ematch u32/missing value ok 1134 2131 - Add cgroup filter with u32 ematch u32/non-numeric value ok 1135 f125 - Add cgroup filter with u32 ematch u32/non-numeric mask ok 1136 4316 - Add cgroup filter with u32 ematch u32/negative offset and drop action ok 1137 23ae - Add cgroup filter with u32 ematch u32/nexthdr+ offset and pipe action ok 1138 23a1 - Add cgroup filter with canid ematch and single SFF ok 1139 324f - Add cgroup filter with canid ematch and single SFF with mask ok 1140 2576 - Add cgroup filter with canid ematch and multiple SFF ok 1141 4839 - Add cgroup filter with canid ematch and multiple SFF with masks ok 1142 6713 - Add cgroup filter with canid ematch and single EFF ok 1143 4572 - Add cgroup filter with canid ematch and single EFF with mask ok 1144 8031 - Add cgroup filter with canid ematch and multiple EFF ok 1145 ab9d - Add cgroup filter with canid ematch and multiple EFF with masks ok 1146 5349 - Add cgroup filter with canid ematch and a combination of SFF/EFF ok 1147 c934 - Add cgroup filter with canid ematch and a combination of SFF/EFF with masks ok 1148 4319 - Replace cgroup filter with diffferent match ok 1149 4636 - Delete cgroup filter ok 1150 e41d - Add 1M flower filters with 10 parallel tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1151 6f52 - Delete 1M flower filters with 10 parallel tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1152 c9da - Replace 1M flower filters with 10 parallel tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1153 14be - Concurrently replace same range of 100k flower filters from 10 tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1154 0c44 - Concurrently delete same range of 100k flower filters from 10 tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option w hen running tdc. Test has been skipped. ok 1155 ab62 - Add and delete from same tp with 10 tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1156 6e8f - Replace and delete from same tp with 10 tc instances # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1157 2ff3 - Add flower with max handle and then dump it # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1158 d052 - Add 1M filters with the same action # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1159 4cbd - Try to add filter with duplicate key # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1160 7c65 - Add flower filter and then terse dump it # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped. ok 1161 d45e - Add flower filter and verify that terse dump doesn't output filter key # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. Test has been skipped.
On Fri, Oct 25, 2024 at 8:40 AM Vladimir Oltean <vladimir.oltean@nxp.com> wrote: > > On Thu, Oct 24, 2024 at 11:39:51AM -0400, Jamal Hadi Salim wrote: > > On Wed, Oct 23, 2024 at 6:05 AM Vladimir Oltean <vladimir.oltean@nxp.com> wrote: > > > > > > This command: > > > > > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > > > Error: block dev insert failed: -EBUSY. > > > > > > fails because user space requests the same block index to be set for > > > both ingress and egress. > > > > > > [ side note, I don't think it even failed prior to commit 913b47d3424e > > > ("net/sched: Introduce tc block netdev tracking infra"), because this > > > is a command from an old set of notes of mine which used to work, but > > > alas, I did not scientifically bisect this ] > > > > > > > What would be the use case for having both share the same index? > > Mirror action for example could be used to target a group of ports > > grouped by blockid in which case a unique blockid simplifies. > > > > > The problem is not that it fails > > As mentioned, I don't have a use case for sharing block indices between > ingress and egress. I did have old commands which used to not fail > (incorrectly, one might say), but they stopped working without notice, > and the kernel was not being very obvious about it. Had the kernel > behavior in this case been more clear/consistent, and not failed any > subsequent command I would type in, even if valid, it would have taken > me less time to find out. Hence this patch, and also another one I have > prepared for net-next which improves the error message. > > > Fix makes sense. > > Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> > > Thanks. > > > I am also hoping you did run the tdc tests (despite this not looking > > like it breaks any existing feature) > > To be honest, I had not, because I had doubts that this error path would > be exercised in any of the tests (and I still don't think it is). > > But I did run them now, they seem to pass, except for the last 11 of > them which seem to be skipped, and I really do not have the patience > right now to debug and see why. > You did fine, more below... > ~/selftests/tc-testing# ./tdc.py > -- scapy/SubPlugin.__init__ > -- ns/SubPlugin.__init__ [..] > > ok 1159 4cbd - Try to add filter with duplicate key # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. > Test has been skipped. > > ok 1160 7c65 - Add flower filter and then terse dump it # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when running tdc. > Test has been skipped. > > ok 1161 d45e - Add flower filter and verify that terse dump doesn't output filter key # skipped - Tests using the DEV2 variable must define the name of a physical NIC with the -d option when > running tdc. > Test has been skipped. These were skipped because it would require real hardware (typically also for testing offload). cheers, jamal
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Wed, 23 Oct 2024 13:05:41 +0300 you wrote: > This command: > > $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact > Error: block dev insert failed: -EBUSY. > > fails because user space requests the same block index to be set for > both ingress and egress. > > [...] Here is the summary with links: - [net] net/sched: sch_api: fix xa_insert() error path in tcf_block_get_ext() https://git.kernel.org/netdev/net/c/a13e690191ea You are awesome, thank you!
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 7637f979d689..2a7d856cc334 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -1518,6 +1518,7 @@ int tcf_block_get_ext(struct tcf_block **p_block, struct Qdisc *q, return 0; err_dev_insert: + tcf_block_offload_unbind(block, q, ei); err_block_offload_bind: tcf_chain0_head_change_cb_del(block, ei); err_chain0_head_change_cb_add:
This command: $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact Error: block dev insert failed: -EBUSY. fails because user space requests the same block index to be set for both ingress and egress. [ side note, I don't think it even failed prior to commit 913b47d3424e ("net/sched: Introduce tc block netdev tracking infra"), because this is a command from an old set of notes of mine which used to work, but alas, I did not scientifically bisect this ] The problem is not that it fails, but rather, that the second time around, it fails differently (and irrecoverably): $ tc qdisc replace dev eth0 ingress_block 1 egress_block 1 clsact Error: dsa_core: Flow block cb is busy. [ another note: the extack is added by me for illustration purposes. the context of the problem is that clsact_init() obtains the same &q->ingress_block pointer as &q->egress_block, and since we call tcf_block_get_ext() on both of them, "dev" will be added to the block->ports xarray twice, thus failing the operation: once through the ingress block pointer, and once again through the egress block pointer. the problem itself is that when xa_insert() fails, we have emitted a FLOW_BLOCK_BIND command through ndo_setup_tc(), but the offload never sees a corresponding FLOW_BLOCK_UNBIND. ] Even correcting the bad user input, we still cannot recover: $ tc qdisc replace dev swp3 ingress_block 1 egress_block 2 clsact Error: dsa_core: Flow block cb is busy. Basically the only way to recover is to reboot the system, or unbind and rebind the net device driver. To fix the bug, we need to fill the correct error teardown path which was missed during code movement, and call tcf_block_offload_unbind() when xa_insert() fails. [ last note, fundamentally I blame the label naming convention in tcf_block_get_ext() for the bug. The labels should be named after what they do, not after the error path that jumps to them. This way, it is obviously wrong that two labels pointing to the same code mean something is wrong, and checking the code correctness at the goto site is also easier ] Fixes: 94e2557d086a ("net: sched: move block device tracking into tcf_block_get/put_ext()") Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- net/sched/cls_api.c | 1 + 1 file changed, 1 insertion(+)