diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/filter.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_proto_gre.h | 1 | ||||
| -rw-r--r-- | include/linux/reboot.h | 14 | ||||
| -rw-r--r-- | include/net/dst.h | 14 | ||||
| -rw-r--r-- | include/net/inet6_connection_sock.h | 2 | ||||
| -rw-r--r-- | include/net/inet_connection_sock.h | 2 | ||||
| -rw-r--r-- | include/net/ip.h | 13 | ||||
| -rw-r--r-- | include/net/ip6_route.h | 5 | ||||
| -rw-r--r-- | include/net/ip_tunnels.h | 2 | ||||
| -rw-r--r-- | include/net/ipv6.h | 2 | ||||
| -rw-r--r-- | include/net/netfilter/nf_tables_core.h | 10 | ||||
| -rw-r--r-- | include/net/sctp/structs.h | 14 | ||||
| -rw-r--r-- | include/net/xfrm.h | 6 |
13 files changed, 62 insertions, 24 deletions
diff --git a/include/linux/filter.h b/include/linux/filter.h index 262dcbb75ffe..024fd03e5d18 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h | |||
| @@ -220,7 +220,6 @@ enum { | |||
| 220 | BPF_S_ANC_RXHASH, | 220 | BPF_S_ANC_RXHASH, |
| 221 | BPF_S_ANC_CPU, | 221 | BPF_S_ANC_CPU, |
| 222 | BPF_S_ANC_ALU_XOR_X, | 222 | BPF_S_ANC_ALU_XOR_X, |
| 223 | BPF_S_ANC_SECCOMP_LD_W, | ||
| 224 | BPF_S_ANC_VLAN_TAG, | 223 | BPF_S_ANC_VLAN_TAG, |
| 225 | BPF_S_ANC_VLAN_TAG_PRESENT, | 224 | BPF_S_ANC_VLAN_TAG_PRESENT, |
| 226 | BPF_S_ANC_PAY_OFFSET, | 225 | BPF_S_ANC_PAY_OFFSET, |
diff --git a/include/linux/netfilter/nf_conntrack_proto_gre.h b/include/linux/netfilter/nf_conntrack_proto_gre.h index ec2ffaf418c8..df78dc2b5524 100644 --- a/include/linux/netfilter/nf_conntrack_proto_gre.h +++ b/include/linux/netfilter/nf_conntrack_proto_gre.h | |||
| @@ -87,7 +87,6 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir, | |||
| 87 | /* delete keymap entries */ | 87 | /* delete keymap entries */ |
| 88 | void nf_ct_gre_keymap_destroy(struct nf_conn *ct); | 88 | void nf_ct_gre_keymap_destroy(struct nf_conn *ct); |
| 89 | 89 | ||
| 90 | void nf_ct_gre_keymap_flush(struct net *net); | ||
| 91 | void nf_nat_need_gre(void); | 90 | void nf_nat_need_gre(void); |
| 92 | 91 | ||
| 93 | #endif /* __KERNEL__ */ | 92 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/reboot.h b/include/linux/reboot.h index 9e7db9e73cc1..48bf152761c7 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h | |||
| @@ -20,13 +20,13 @@ enum reboot_mode { | |||
| 20 | extern enum reboot_mode reboot_mode; | 20 | extern enum reboot_mode reboot_mode; |
| 21 | 21 | ||
| 22 | enum reboot_type { | 22 | enum reboot_type { |
| 23 | BOOT_TRIPLE = 't', | 23 | BOOT_TRIPLE = 't', |
| 24 | BOOT_KBD = 'k', | 24 | BOOT_KBD = 'k', |
| 25 | BOOT_BIOS = 'b', | 25 | BOOT_BIOS = 'b', |
| 26 | BOOT_ACPI = 'a', | 26 | BOOT_ACPI = 'a', |
| 27 | BOOT_EFI = 'e', | 27 | BOOT_EFI = 'e', |
| 28 | BOOT_CF9 = 'p', | 28 | BOOT_CF9_FORCE = 'p', |
| 29 | BOOT_CF9_COND = 'q', | 29 | BOOT_CF9_SAFE = 'q', |
| 30 | }; | 30 | }; |
| 31 | extern enum reboot_type reboot_type; | 31 | extern enum reboot_type reboot_type; |
| 32 | 32 | ||
diff --git a/include/net/dst.h b/include/net/dst.h index 46ed958e0c6e..71c60f42be48 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
| @@ -45,7 +45,7 @@ struct dst_entry { | |||
| 45 | void *__pad1; | 45 | void *__pad1; |
| 46 | #endif | 46 | #endif |
| 47 | int (*input)(struct sk_buff *); | 47 | int (*input)(struct sk_buff *); |
| 48 | int (*output)(struct sk_buff *); | 48 | int (*output)(struct sock *sk, struct sk_buff *skb); |
| 49 | 49 | ||
| 50 | unsigned short flags; | 50 | unsigned short flags; |
| 51 | #define DST_HOST 0x0001 | 51 | #define DST_HOST 0x0001 |
| @@ -367,7 +367,11 @@ static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb) | |||
| 367 | return child; | 367 | return child; |
| 368 | } | 368 | } |
| 369 | 369 | ||
| 370 | int dst_discard(struct sk_buff *skb); | 370 | int dst_discard_sk(struct sock *sk, struct sk_buff *skb); |
| 371 | static inline int dst_discard(struct sk_buff *skb) | ||
| 372 | { | ||
| 373 | return dst_discard_sk(skb->sk, skb); | ||
| 374 | } | ||
| 371 | void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref, | 375 | void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref, |
| 372 | int initial_obsolete, unsigned short flags); | 376 | int initial_obsolete, unsigned short flags); |
| 373 | void __dst_free(struct dst_entry *dst); | 377 | void __dst_free(struct dst_entry *dst); |
| @@ -449,9 +453,13 @@ static inline void dst_set_expires(struct dst_entry *dst, int timeout) | |||
| 449 | } | 453 | } |
| 450 | 454 | ||
| 451 | /* Output packet to network from transport. */ | 455 | /* Output packet to network from transport. */ |
| 456 | static inline int dst_output_sk(struct sock *sk, struct sk_buff *skb) | ||
| 457 | { | ||
| 458 | return skb_dst(skb)->output(sk, skb); | ||
| 459 | } | ||
| 452 | static inline int dst_output(struct sk_buff *skb) | 460 | static inline int dst_output(struct sk_buff *skb) |
| 453 | { | 461 | { |
| 454 | return skb_dst(skb)->output(skb); | 462 | return dst_output_sk(skb->sk, skb); |
| 455 | } | 463 | } |
| 456 | 464 | ||
| 457 | /* Input packet from network to transport. */ | 465 | /* Input packet from network to transport. */ |
diff --git a/include/net/inet6_connection_sock.h b/include/net/inet6_connection_sock.h index f981ba7adeed..74af137304be 100644 --- a/include/net/inet6_connection_sock.h +++ b/include/net/inet6_connection_sock.h | |||
| @@ -40,7 +40,7 @@ void inet6_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, | |||
| 40 | 40 | ||
| 41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); | 41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); |
| 42 | 42 | ||
| 43 | int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl); | 43 | int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
| 44 | 44 | ||
| 45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); | 45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); |
| 46 | #endif /* _INET6_CONNECTION_SOCK_H */ | 46 | #endif /* _INET6_CONNECTION_SOCK_H */ |
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index c55aeed41ace..7a4313887568 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
| @@ -36,7 +36,7 @@ struct tcp_congestion_ops; | |||
| 36 | * (i.e. things that depend on the address family) | 36 | * (i.e. things that depend on the address family) |
| 37 | */ | 37 | */ |
| 38 | struct inet_connection_sock_af_ops { | 38 | struct inet_connection_sock_af_ops { |
| 39 | int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); | 39 | int (*queue_xmit)(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
| 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); | 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); |
| 41 | int (*rebuild_header)(struct sock *sk); | 41 | int (*rebuild_header)(struct sock *sk); |
| 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); | 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); |
diff --git a/include/net/ip.h b/include/net/ip.h index 25064c28e059..3ec2b0fb9d83 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
| @@ -104,14 +104,19 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, | |||
| 104 | struct net_device *orig_dev); | 104 | struct net_device *orig_dev); |
| 105 | int ip_local_deliver(struct sk_buff *skb); | 105 | int ip_local_deliver(struct sk_buff *skb); |
| 106 | int ip_mr_input(struct sk_buff *skb); | 106 | int ip_mr_input(struct sk_buff *skb); |
| 107 | int ip_output(struct sk_buff *skb); | 107 | int ip_output(struct sock *sk, struct sk_buff *skb); |
| 108 | int ip_mc_output(struct sk_buff *skb); | 108 | int ip_mc_output(struct sock *sk, struct sk_buff *skb); |
| 109 | int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)); | 109 | int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)); |
| 110 | int ip_do_nat(struct sk_buff *skb); | 110 | int ip_do_nat(struct sk_buff *skb); |
| 111 | void ip_send_check(struct iphdr *ip); | 111 | void ip_send_check(struct iphdr *ip); |
| 112 | int __ip_local_out(struct sk_buff *skb); | 112 | int __ip_local_out(struct sk_buff *skb); |
| 113 | int ip_local_out(struct sk_buff *skb); | 113 | int ip_local_out_sk(struct sock *sk, struct sk_buff *skb); |
| 114 | int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl); | 114 | static inline int ip_local_out(struct sk_buff *skb) |
| 115 | { | ||
| 116 | return ip_local_out_sk(skb->sk, skb); | ||
| 117 | } | ||
| 118 | |||
| 119 | int ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); | ||
| 115 | void ip_init(void); | 120 | void ip_init(void); |
| 116 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, | 121 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, |
| 117 | int getfrag(void *from, char *to, int offset, int len, | 122 | int getfrag(void *from, char *to, int offset, int len, |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 3c3bb184eb8f..6c4f5eac98e7 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
| @@ -32,6 +32,11 @@ struct route_info { | |||
| 32 | #define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 | 32 | #define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 |
| 33 | #define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 | 33 | #define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 |
| 34 | 34 | ||
| 35 | /* We do not (yet ?) support IPv6 jumbograms (RFC 2675) | ||
| 36 | * Unlike IPv4, hdr->seg_len doesn't include the IPv6 header | ||
| 37 | */ | ||
| 38 | #define IP6_MAX_MTU (0xFFFF + sizeof(struct ipv6hdr)) | ||
| 39 | |||
| 35 | /* | 40 | /* |
| 36 | * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate | 41 | * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate |
| 37 | * between IPV6_ADDR_PREFERENCES socket option values | 42 | * between IPV6_ADDR_PREFERENCES socket option values |
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index e77c10405d51..a4daf9eb8562 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h | |||
| @@ -153,7 +153,7 @@ static inline u8 ip_tunnel_ecn_encap(u8 tos, const struct iphdr *iph, | |||
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); | 155 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); |
| 156 | int iptunnel_xmit(struct rtable *rt, struct sk_buff *skb, | 156 | int iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb, |
| 157 | __be32 src, __be32 dst, __u8 proto, | 157 | __be32 src, __be32 dst, __u8 proto, |
| 158 | __u8 tos, __u8 ttl, __be16 df, bool xnet); | 158 | __u8 tos, __u8 ttl, __be16 df, bool xnet); |
| 159 | 159 | ||
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 4f541f11ce63..d640925bc454 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
| @@ -731,7 +731,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, | |||
| 731 | * skb processing functions | 731 | * skb processing functions |
| 732 | */ | 732 | */ |
| 733 | 733 | ||
| 734 | int ip6_output(struct sk_buff *skb); | 734 | int ip6_output(struct sock *sk, struct sk_buff *skb); |
| 735 | int ip6_forward(struct sk_buff *skb); | 735 | int ip6_forward(struct sk_buff *skb); |
| 736 | int ip6_input(struct sk_buff *skb); | 736 | int ip6_input(struct sk_buff *skb); |
| 737 | int ip6_mc_input(struct sk_buff *skb); | 737 | int ip6_mc_input(struct sk_buff *skb); |
diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h index cf2b7ae2b9d8..a75fc8e27cd6 100644 --- a/include/net/netfilter/nf_tables_core.h +++ b/include/net/netfilter/nf_tables_core.h | |||
| @@ -13,6 +13,16 @@ struct nft_cmp_fast_expr { | |||
| 13 | u8 len; | 13 | u8 len; |
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | /* Calculate the mask for the nft_cmp_fast expression. On big endian the | ||
| 17 | * mask needs to include the *upper* bytes when interpreting that data as | ||
| 18 | * something smaller than the full u32, therefore a cpu_to_le32 is done. | ||
| 19 | */ | ||
| 20 | static inline u32 nft_cmp_fast_mask(unsigned int len) | ||
| 21 | { | ||
| 22 | return cpu_to_le32(~0U >> (FIELD_SIZEOF(struct nft_cmp_fast_expr, | ||
| 23 | data) * BITS_PER_BYTE - len)); | ||
| 24 | } | ||
| 25 | |||
| 16 | extern const struct nft_expr_ops nft_cmp_fast_ops; | 26 | extern const struct nft_expr_ops nft_cmp_fast_ops; |
| 17 | 27 | ||
| 18 | int nft_cmp_module_init(void); | 28 | int nft_cmp_module_init(void); |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 6ee76c804893..d992ca3145fe 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
| @@ -1653,6 +1653,17 @@ struct sctp_association { | |||
| 1653 | /* This is the last advertised value of rwnd over a SACK chunk. */ | 1653 | /* This is the last advertised value of rwnd over a SACK chunk. */ |
| 1654 | __u32 a_rwnd; | 1654 | __u32 a_rwnd; |
| 1655 | 1655 | ||
| 1656 | /* Number of bytes by which the rwnd has slopped. The rwnd is allowed | ||
| 1657 | * to slop over a maximum of the association's frag_point. | ||
| 1658 | */ | ||
| 1659 | __u32 rwnd_over; | ||
| 1660 | |||
| 1661 | /* Keeps treack of rwnd pressure. This happens when we have | ||
| 1662 | * a window, but not recevie buffer (i.e small packets). This one | ||
| 1663 | * is releases slowly (1 PMTU at a time ). | ||
| 1664 | */ | ||
| 1665 | __u32 rwnd_press; | ||
| 1666 | |||
| 1656 | /* This is the sndbuf size in use for the association. | 1667 | /* This is the sndbuf size in use for the association. |
| 1657 | * This corresponds to the sndbuf size for the association, | 1668 | * This corresponds to the sndbuf size for the association, |
| 1658 | * as specified in the sk->sndbuf. | 1669 | * as specified in the sk->sndbuf. |
| @@ -1881,7 +1892,8 @@ void sctp_assoc_update(struct sctp_association *old, | |||
| 1881 | __u32 sctp_association_get_next_tsn(struct sctp_association *); | 1892 | __u32 sctp_association_get_next_tsn(struct sctp_association *); |
| 1882 | 1893 | ||
| 1883 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); | 1894 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); |
| 1884 | void sctp_assoc_rwnd_update(struct sctp_association *, bool); | 1895 | void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned int); |
| 1896 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned int); | ||
| 1885 | void sctp_assoc_set_primary(struct sctp_association *, | 1897 | void sctp_assoc_set_primary(struct sctp_association *, |
| 1886 | struct sctp_transport *); | 1898 | struct sctp_transport *); |
| 1887 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, | 1899 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 32682ae47b3f..116e9c7e19cb 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
| @@ -333,7 +333,7 @@ struct xfrm_state_afinfo { | |||
| 333 | const xfrm_address_t *saddr); | 333 | const xfrm_address_t *saddr); |
| 334 | int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n); | 334 | int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n); |
| 335 | int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n); | 335 | int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n); |
| 336 | int (*output)(struct sk_buff *skb); | 336 | int (*output)(struct sock *sk, struct sk_buff *skb); |
| 337 | int (*output_finish)(struct sk_buff *skb); | 337 | int (*output_finish)(struct sk_buff *skb); |
| 338 | int (*extract_input)(struct xfrm_state *x, | 338 | int (*extract_input)(struct xfrm_state *x, |
| 339 | struct sk_buff *skb); | 339 | struct sk_buff *skb); |
| @@ -1540,7 +1540,7 @@ static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi) | |||
| 1540 | 1540 | ||
| 1541 | int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb); | 1541 | int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb); |
| 1542 | int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb); | 1542 | int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb); |
| 1543 | int xfrm4_output(struct sk_buff *skb); | 1543 | int xfrm4_output(struct sock *sk, struct sk_buff *skb); |
| 1544 | int xfrm4_output_finish(struct sk_buff *skb); | 1544 | int xfrm4_output_finish(struct sk_buff *skb); |
| 1545 | int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err); | 1545 | int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err); |
| 1546 | int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol); | 1546 | int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol); |
| @@ -1565,7 +1565,7 @@ __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr); | |||
| 1565 | __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr); | 1565 | __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr); |
| 1566 | int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); | 1566 | int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); |
| 1567 | int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); | 1567 | int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); |
| 1568 | int xfrm6_output(struct sk_buff *skb); | 1568 | int xfrm6_output(struct sock *sk, struct sk_buff *skb); |
| 1569 | int xfrm6_output_finish(struct sk_buff *skb); | 1569 | int xfrm6_output_finish(struct sk_buff *skb); |
| 1570 | int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, | 1570 | int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, |
| 1571 | u8 **prevhdr); | 1571 | u8 **prevhdr); |
