xref: /openbmc/linux/include/net/seg6_local.h (revision c8ec3743)
1 /*
2  *  SR-IPv6 implementation
3  *
4  *  Authors:
5  *  David Lebrun <david.lebrun@uclouvain.be>
6  *  eBPF support: Mathieu Xhonneux <m.xhonneux@gmail.com>
7  *
8  *
9  *  This program is free software; you can redistribute it and/or
10  *      modify it under the terms of the GNU General Public License
11  *      as published by the Free Software Foundation; either version
12  *      2 of the License, or (at your option) any later version.
13  */
14 
15 #ifndef _NET_SEG6_LOCAL_H
16 #define _NET_SEG6_LOCAL_H
17 
18 #include <linux/percpu.h>
19 #include <linux/net.h>
20 #include <linux/ipv6.h>
21 
22 extern int seg6_lookup_nexthop(struct sk_buff *skb, struct in6_addr *nhaddr,
23 			       u32 tbl_id);
24 extern bool seg6_bpf_has_valid_srh(struct sk_buff *skb);
25 
26 struct seg6_bpf_srh_state {
27 	struct ipv6_sr_hdr *srh;
28 	u16 hdrlen;
29 	bool valid;
30 };
31 
32 DECLARE_PER_CPU(struct seg6_bpf_srh_state, seg6_bpf_srh_states);
33 
34 #endif
35