sch_frag.c (8b3f91332291fa280a56215f5189baca185998f5) sch_frag.c (b6459415b384cb829f0b2a4268f211c789f6cf0b)
1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
2#include <linux/if_vlan.h>
2#include <net/netlink.h>
3#include <net/sch_generic.h>
3#include <net/netlink.h>
4#include <net/sch_generic.h>
4#include <net/pkt_sched.h>
5#include <net/dst.h>
6#include <net/ip.h>
7#include <net/ip6_fib.h>
8
9struct sch_frag_data {
10 unsigned long dst;
11 struct qdisc_skb_cb cb;
12 __be16 inner_protocol;

--- 120 unchanged lines hidden (view full) ---

133 return ret;
134err:
135 kfree_skb(skb);
136 return ret;
137}
138
139int sch_frag_xmit_hook(struct sk_buff *skb, int (*xmit)(struct sk_buff *skb))
140{
5#include <net/dst.h>
6#include <net/ip.h>
7#include <net/ip6_fib.h>
8
9struct sch_frag_data {
10 unsigned long dst;
11 struct qdisc_skb_cb cb;
12 __be16 inner_protocol;

--- 120 unchanged lines hidden (view full) ---

133 return ret;
134err:
135 kfree_skb(skb);
136 return ret;
137}
138
139int sch_frag_xmit_hook(struct sk_buff *skb, int (*xmit)(struct sk_buff *skb))
140{
141 u16 mru = tc_skb_cb(skb)->mru;
141 u16 mru = qdisc_skb_cb(skb)->mru;
142 int err;
143
144 if (mru && skb->len > mru + skb->dev->hard_header_len)
145 err = sch_fragment(dev_net(skb->dev), skb, mru, xmit);
146 else
147 err = xmit(skb);
148
149 return err;
150}
151EXPORT_SYMBOL_GPL(sch_frag_xmit_hook);
142 int err;
143
144 if (mru && skb->len > mru + skb->dev->hard_header_len)
145 err = sch_fragment(dev_net(skb->dev), skb, mru, xmit);
146 else
147 err = xmit(skb);
148
149 return err;
150}
151EXPORT_SYMBOL_GPL(sch_frag_xmit_hook);