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
22extern int seg6_lookup_nexthop(struct sk_buff *skb, struct in6_addr *nhaddr,
23 u32 tbl_id);
24extern bool seg6_bpf_has_valid_srh(struct sk_buff *skb);
25
26struct seg6_bpf_srh_state {
27 struct ipv6_sr_hdr *srh;
28 u16 hdrlen;
29 bool valid;
30};
31
32DECLARE_PER_CPU(struct seg6_bpf_srh_state, seg6_bpf_srh_states);
33
34#endif
35