seg6_local.h 870 B

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