mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
Merge branch 'net-sched-act_ct-preserve-tc_skb_cb-across-defragmentation'
Zihan Xi says: ==================== net/sched: act_ct: preserve tc_skb_cb across defragmentation ==================== Link: https://patch.msgid.link/cover.1781358691.git.xizh2024@lzu.edu.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
86590e2a22
|
|
@ -844,11 +844,11 @@ static int tcf_ct_handle_fragments(struct net *net, struct sk_buff *skb,
|
|||
u8 family, u16 zone, bool *defrag)
|
||||
{
|
||||
enum ip_conntrack_info ctinfo;
|
||||
struct tc_skb_cb cb;
|
||||
struct nf_conn *ct;
|
||||
int err = 0;
|
||||
bool frag;
|
||||
u8 proto;
|
||||
u16 mru;
|
||||
|
||||
/* Previously seen (loopback)? Ignore. */
|
||||
ct = nf_ct_get(skb, &ctinfo);
|
||||
|
|
@ -862,12 +862,13 @@ static int tcf_ct_handle_fragments(struct net *net, struct sk_buff *skb,
|
|||
if (err || !frag)
|
||||
return err;
|
||||
|
||||
err = nf_ct_handle_fragments(net, skb, zone, family, &proto, &mru);
|
||||
cb = *tc_skb_cb(skb);
|
||||
err = nf_ct_handle_fragments(net, skb, zone, family, &proto, &cb.mru);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
*defrag = true;
|
||||
tc_skb_cb(skb)->mru = mru;
|
||||
*tc_skb_cb(skb) = cb;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -664,5 +664,43 @@
|
|||
"teardown": [
|
||||
"$TC qdisc del dev $DEV1 ingress_block 21 clsact"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "9c2a",
|
||||
"name": "Act_ct preserves skb cb across defrag before prio dequeue",
|
||||
"category": [
|
||||
"actions",
|
||||
"ct",
|
||||
"scapy"
|
||||
],
|
||||
"plugins": {
|
||||
"requires": [
|
||||
"nsPlugin",
|
||||
"scapyPlugin"
|
||||
]
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle 1: prio",
|
||||
"$TC qdisc add dev $DUMMY clsact",
|
||||
"$TC qdisc add dev $DEV1 clsact",
|
||||
"$TC filter add dev $DEV1 ingress protocol ip prio 1 matchall action mirred egress redirect dev $DUMMY"
|
||||
],
|
||||
"cmdUnderTest": "$TC filter add dev $DUMMY egress protocol ip prio 1 matchall action ct zone 1 pipe",
|
||||
"scapy": [
|
||||
{
|
||||
"iface": "$DEV0",
|
||||
"count": 1,
|
||||
"packet": "[Ether()/frag for frag in fragment(IP(src='10.0.0.10', dst='10.0.0.1', id=1)/UDP(sport=12345, dport=9)/Raw(b'A' * 4000), fragsize=1400)]"
|
||||
}
|
||||
],
|
||||
"expExitCode": "0",
|
||||
"verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 1 '^qdisc prio 1:'",
|
||||
"matchPattern": "Sent [1-9][0-9]* bytes [1-9][0-9]* pkt",
|
||||
"matchCount": "1",
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DEV1 clsact",
|
||||
"$TC qdisc del dev $DUMMY clsact",
|
||||
"$TC qdisc del dev $DUMMY root handle 1:"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user