blob: 08359e2d8b357683bd8fd6a3ea82290b5c24a26b [file] [log] [blame]
Mathieu Xhonneux1c1e7612018-05-20 14:58:13 +01001/*
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
Mathieu Xhonneuxfe94cc22018-05-20 14:58:14 +010018#include <linux/percpu.h>
Mathieu Xhonneux1c1e7612018-05-20 14:58:13 +010019#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);
Mathieu Xhonneux486cdf22018-07-26 02:10:40 +000024extern bool seg6_bpf_has_valid_srh(struct sk_buff *skb);
Mathieu Xhonneux1c1e7612018-05-20 14:58:13 +010025
Mathieu Xhonneuxfe94cc22018-05-20 14:58:14 +010026struct seg6_bpf_srh_state {
Mathieu Xhonneux486cdf22018-07-26 02:10:40 +000027 struct ipv6_sr_hdr *srh;
Mathieu Xhonneuxfe94cc22018-05-20 14:58:14 +010028 u16 hdrlen;
Mathieu Xhonneux486cdf22018-07-26 02:10:40 +000029 bool valid;
Mathieu Xhonneuxfe94cc22018-05-20 14:58:14 +010030};
31
32DECLARE_PER_CPU(struct seg6_bpf_srh_state, seg6_bpf_srh_states);
33
Mathieu Xhonneux1c1e7612018-05-20 14:58:13 +010034#endif