/* * SR-IPv6 implementation * * Author: * David Lebrun * * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _NET_SEG6_H #define _NET_SEG6_H #include #include #include #include #include static inline void update_csum_diff4(struct sk_buff *skb, __be32 from, __be32 to) { __be32 diff[] = { ~from, to }; skb->csum = ~csum_partial((char *)diff, sizeof(diff), ~skb->csum); } static inline void update_csum_diff16(struct sk_buff *skb, __be32 *from, __be32 *to) { __be32 diff[] = { ~from[0], ~from[1], ~from[2], ~from[3], to[0], to[1], to[2], to[3], }; skb->csum = ~csum_partial((char *)diff, sizeof(diff), ~skb->csum); } struct seg6_pernet_data { struct mutex lock; struct in6_addr __rcu *tun_src; #ifdef CONFIG_IPV6_SEG6_HMAC struct rhashtable hmac_infos; #endif }; static inline struct seg6_pernet_data *seg6_pernet(struct net *net) { return net->ipv6.seg6_data; } extern int seg6_init(void); extern void seg6_exit(void); extern int seg6_iptunnel_init(void); extern void seg6_iptunnel_exit(void); extern bool seg6_validate_srh(struct ipv6_sr_hdr *srh, int len); #endif e class='tabs'> summaryrefslogtreecommitdiff
path: root/net/ipv4
AgeCommit message (Expand)AuthorFilesLines
2017-02-07udp: properly cope with csum errorsEric Dumazet1-1/+1
2017-02-06tcp: avoid infinite loop in tcp_splice_read()Eric Dumazet1-0/+6
2017-02-04netlabel: out of bound access in cipso_v4_validate()Eric Dumazet1-0/+4
2017-02-04ipv4: keep skb->dst around in presence of IP optionsEric Dumazet1-1/+8
2017-02-01tcp: fix 0 divide in __tcp_select_window()Eric Dumazet1-2/+4