seg6_local.c (1bdd3e05a0a3b4a97ea88bc46fef8fb265c8b94c) seg6_local.c (62ebaeaedee7591c257543d040677a60e35c7aec)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * SR-IPv6 implementation
4 *
5 * Authors:
6 * David Lebrun <david.lebrun@uclouvain.be>
7 * eBPF support: Mathieu Xhonneux <m.xhonneux@gmail.com>
8 */

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

18#include <net/ip6_fib.h>
19#include <net/route.h>
20#include <net/seg6.h>
21#include <linux/seg6.h>
22#include <linux/seg6_local.h>
23#include <net/addrconf.h>
24#include <net/ip6_route.h>
25#include <net/dst_cache.h>
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * SR-IPv6 implementation
4 *
5 * Authors:
6 * David Lebrun <david.lebrun@uclouvain.be>
7 * eBPF support: Mathieu Xhonneux <m.xhonneux@gmail.com>
8 */

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

18#include <net/ip6_fib.h>
19#include <net/route.h>
20#include <net/seg6.h>
21#include <linux/seg6.h>
22#include <linux/seg6_local.h>
23#include <net/addrconf.h>
24#include <net/ip6_route.h>
25#include <net/dst_cache.h>
26#include <net/ip_tunnels.h>
26#ifdef CONFIG_IPV6_SEG6_HMAC
27#include <net/seg6_hmac.h>
28#endif
29#include <net/seg6_local.h>
30#include <linux/etherdevice.h>
31#include <linux/bpf.h>
32
33struct seg6_local_lwt;

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

130
131 if (!pskb_pull(skb, off))
132 return false;
133
134 skb_postpull_rcsum(skb, skb_network_header(skb), off);
135
136 skb_reset_network_header(skb);
137 skb_reset_transport_header(skb);
27#ifdef CONFIG_IPV6_SEG6_HMAC
28#include <net/seg6_hmac.h>
29#endif
30#include <net/seg6_local.h>
31#include <linux/etherdevice.h>
32#include <linux/bpf.h>
33
34struct seg6_local_lwt;

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

131
132 if (!pskb_pull(skb, off))
133 return false;
134
135 skb_postpull_rcsum(skb, skb_network_header(skb), off);
136
137 skb_reset_network_header(skb);
138 skb_reset_transport_header(skb);
138 skb->encapsulation = 0;
139 if (iptunnel_pull_offloads(skb))
140 return false;
139
140 return true;
141}
142
143static void advance_nextseg(struct ipv6_sr_hdr *srh, struct in6_addr *daddr)
144{
145 struct in6_addr *addr;
146

--- 989 unchanged lines hidden ---
141
142 return true;
143}
144
145static void advance_nextseg(struct ipv6_sr_hdr *srh, struct in6_addr *daddr)
146{
147 struct in6_addr *addr;
148

--- 989 unchanged lines hidden ---