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 10 #ifndef _NET_SEG6_LOCAL_H 11 #define _NET_SEG6_LOCAL_H 12 13 #include <linux/percpu.h> 14 #include <linux/net.h> 15 #include <linux/ipv6.h> 16 17 extern int seg6_lookup_nexthop(struct sk_buff *skb, struct in6_addr *nhaddr, 18 u32 tbl_id); 19 extern bool seg6_bpf_has_valid_srh(struct sk_buff *skb); 20 21 struct seg6_bpf_srh_state { 22 local_lock_t bh_lock; 23 struct ipv6_sr_hdr *srh; 24 u16 hdrlen; 25 bool valid; 26 }; 27 28 DECLARE_PER_CPU(struct seg6_bpf_srh_state, seg6_bpf_srh_states); 29 30 #endif 31