#include "conntrack.h"
#include "flow.h"
#include "flow_netlink.h"
+#include "gso.h"
struct ovs_ct_len_tbl {
size_t maxlen;
static int handle_fragments(struct net *net, struct sw_flow_key *key,
u16 zone, struct sk_buff *skb)
{
- struct ovs_skb_cb ovs_cb = *OVS_CB(skb);
+ struct ovs_gso_cb ovs_cb = *OVS_GSO_CB(skb);
if (!skb->dev) {
OVS_NLERR(true, "%s: skb has no dev; dropping", __func__);
if (err)
return err;
- ovs_cb.mru = IPCB(skb)->frag_max_size;
+ ovs_cb.dp_cb.mru = IPCB(skb)->frag_max_size;
#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
} else if (key->eth.type == htons(ETH_P_IPV6)) {
enum ip6_defrag_users user = IP6_DEFRAG_CONNTRACK_IN + zone;
skb_morph(skb, reasm);
skb->next = reasm->next;
consume_skb(reasm);
- ovs_cb.mru = IP6CB(skb)->frag_max_size;
+ ovs_cb.dp_cb.mru = IP6CB(skb)->frag_max_size;
#endif /* IP frag support */
} else {
kfree_skb(skb);
key->ip.frag = OVS_FRAG_TYPE_NONE;
skb_clear_hash(skb);
skb->ignore_df = 1;
- *OVS_CB(skb) = ovs_cb;
+ *OVS_GSO_CB(skb) = ovs_cb;
return 0;
}