diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/keys/rxrpc-type.h | 107 | ||||
| -rw-r--r-- | include/linux/igmp.h | 2 | ||||
| -rw-r--r-- | include/linux/net.h | 5 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 3 | ||||
| -rw-r--r-- | include/linux/netlink.h | 4 | ||||
| -rw-r--r-- | include/linux/notifier.h | 2 | ||||
| -rw-r--r-- | include/linux/rxrpc.h | 7 | ||||
| -rw-r--r-- | include/net/addrconf.h | 2 | ||||
| -rw-r--r-- | include/net/protocol.h | 13 | ||||
| -rw-r--r-- | include/net/sch_generic.h | 2 | ||||
| -rw-r--r-- | include/net/tcp.h | 7 |
11 files changed, 145 insertions, 9 deletions
diff --git a/include/keys/rxrpc-type.h b/include/keys/rxrpc-type.h index 7609365577f1..5cb86c307f5d 100644 --- a/include/keys/rxrpc-type.h +++ b/include/keys/rxrpc-type.h | |||
| @@ -21,4 +21,111 @@ extern struct key_type key_type_rxrpc; | |||
| 21 | 21 | ||
| 22 | extern struct key *rxrpc_get_null_key(const char *); | 22 | extern struct key *rxrpc_get_null_key(const char *); |
| 23 | 23 | ||
| 24 | /* | ||
| 25 | * RxRPC key for Kerberos IV (type-2 security) | ||
| 26 | */ | ||
| 27 | struct rxkad_key { | ||
| 28 | u32 vice_id; | ||
| 29 | u32 start; /* time at which ticket starts */ | ||
| 30 | u32 expiry; /* time at which ticket expires */ | ||
| 31 | u32 kvno; /* key version number */ | ||
| 32 | u8 primary_flag; /* T if key for primary cell for this user */ | ||
| 33 | u16 ticket_len; /* length of ticket[] */ | ||
| 34 | u8 session_key[8]; /* DES session key */ | ||
| 35 | u8 ticket[0]; /* the encrypted ticket */ | ||
| 36 | }; | ||
| 37 | |||
| 38 | /* | ||
| 39 | * Kerberos 5 principal | ||
| 40 | * name/name/name@realm | ||
| 41 | */ | ||
| 42 | struct krb5_principal { | ||
| 43 | u8 n_name_parts; /* N of parts of the name part of the principal */ | ||
| 44 | char **name_parts; /* parts of the name part of the principal */ | ||
| 45 | char *realm; /* parts of the realm part of the principal */ | ||
| 46 | }; | ||
| 47 | |||
| 48 | /* | ||
| 49 | * Kerberos 5 tagged data | ||
| 50 | */ | ||
| 51 | struct krb5_tagged_data { | ||
| 52 | /* for tag value, see /usr/include/krb5/krb5.h | ||
| 53 | * - KRB5_AUTHDATA_* for auth data | ||
| 54 | * - | ||
| 55 | */ | ||
| 56 | s32 tag; | ||
| 57 | u32 data_len; | ||
| 58 | u8 *data; | ||
| 59 | }; | ||
| 60 | |||
| 61 | /* | ||
| 62 | * RxRPC key for Kerberos V (type-5 security) | ||
| 63 | */ | ||
| 64 | struct rxk5_key { | ||
| 65 | u64 authtime; /* time at which auth token generated */ | ||
| 66 | u64 starttime; /* time at which auth token starts */ | ||
| 67 | u64 endtime; /* time at which auth token expired */ | ||
| 68 | u64 renew_till; /* time to which auth token can be renewed */ | ||
| 69 | s32 is_skey; /* T if ticket is encrypted in another ticket's | ||
| 70 | * skey */ | ||
| 71 | s32 flags; /* mask of TKT_FLG_* bits (krb5/krb5.h) */ | ||
| 72 | struct krb5_principal client; /* client principal name */ | ||
| 73 | struct krb5_principal server; /* server principal name */ | ||
| 74 | u16 ticket_len; /* length of ticket */ | ||
| 75 | u16 ticket2_len; /* length of second ticket */ | ||
| 76 | u8 n_authdata; /* number of authorisation data elements */ | ||
| 77 | u8 n_addresses; /* number of addresses */ | ||
| 78 | struct krb5_tagged_data session; /* session data; tag is enctype */ | ||
| 79 | struct krb5_tagged_data *addresses; /* addresses */ | ||
| 80 | u8 *ticket; /* krb5 ticket */ | ||
| 81 | u8 *ticket2; /* second krb5 ticket, if related to ticket (via | ||
| 82 | * DUPLICATE-SKEY or ENC-TKT-IN-SKEY) */ | ||
| 83 | struct krb5_tagged_data *authdata; /* authorisation data */ | ||
| 84 | }; | ||
| 85 | |||
| 86 | /* | ||
| 87 | * list of tokens attached to an rxrpc key | ||
| 88 | */ | ||
| 89 | struct rxrpc_key_token { | ||
| 90 | u16 security_index; /* RxRPC header security index */ | ||
| 91 | struct rxrpc_key_token *next; /* the next token in the list */ | ||
| 92 | union { | ||
| 93 | struct rxkad_key *kad; | ||
| 94 | struct rxk5_key *k5; | ||
| 95 | }; | ||
| 96 | }; | ||
| 97 | |||
| 98 | /* | ||
| 99 | * structure of raw payloads passed to add_key() or instantiate key | ||
| 100 | */ | ||
| 101 | struct rxrpc_key_data_v1 { | ||
| 102 | u32 kif_version; /* 1 */ | ||
| 103 | u16 security_index; | ||
| 104 | u16 ticket_length; | ||
| 105 | u32 expiry; /* time_t */ | ||
| 106 | u32 kvno; | ||
| 107 | u8 session_key[8]; | ||
| 108 | u8 ticket[0]; | ||
| 109 | }; | ||
| 110 | |||
| 111 | /* | ||
| 112 | * AF_RXRPC key payload derived from XDR format | ||
| 113 | * - based on openafs-1.4.10/src/auth/afs_token.xg | ||
| 114 | */ | ||
| 115 | #define AFSTOKEN_LENGTH_MAX 16384 /* max payload size */ | ||
| 116 | #define AFSTOKEN_STRING_MAX 256 /* max small string length */ | ||
| 117 | #define AFSTOKEN_DATA_MAX 64 /* max small data length */ | ||
| 118 | #define AFSTOKEN_CELL_MAX 64 /* max cellname length */ | ||
| 119 | #define AFSTOKEN_MAX 8 /* max tokens per payload */ | ||
| 120 | #define AFSTOKEN_BDATALN_MAX 16384 /* max big data length */ | ||
| 121 | #define AFSTOKEN_RK_TIX_MAX 12000 /* max RxKAD ticket size */ | ||
| 122 | #define AFSTOKEN_GK_KEY_MAX 64 /* max GSSAPI key size */ | ||
| 123 | #define AFSTOKEN_GK_TOKEN_MAX 16384 /* max GSSAPI token size */ | ||
| 124 | #define AFSTOKEN_K5_COMPONENTS_MAX 16 /* max K5 components */ | ||
| 125 | #define AFSTOKEN_K5_NAME_MAX 128 /* max K5 name length */ | ||
| 126 | #define AFSTOKEN_K5_REALM_MAX 64 /* max K5 realm name length */ | ||
| 127 | #define AFSTOKEN_K5_TIX_MAX 16384 /* max K5 ticket size */ | ||
| 128 | #define AFSTOKEN_K5_ADDRESSES_MAX 16 /* max K5 addresses */ | ||
| 129 | #define AFSTOKEN_K5_AUTHDATA_MAX 16 /* max K5 pieces of auth data */ | ||
| 130 | |||
| 24 | #endif /* _KEYS_RXRPC_TYPE_H */ | 131 | #endif /* _KEYS_RXRPC_TYPE_H */ |
diff --git a/include/linux/igmp.h b/include/linux/igmp.h index 92fbd8cbd68f..fe158e0e20e6 100644 --- a/include/linux/igmp.h +++ b/include/linux/igmp.h | |||
| @@ -233,6 +233,8 @@ extern void ip_mc_init_dev(struct in_device *); | |||
| 233 | extern void ip_mc_destroy_dev(struct in_device *); | 233 | extern void ip_mc_destroy_dev(struct in_device *); |
| 234 | extern void ip_mc_up(struct in_device *); | 234 | extern void ip_mc_up(struct in_device *); |
| 235 | extern void ip_mc_down(struct in_device *); | 235 | extern void ip_mc_down(struct in_device *); |
| 236 | extern void ip_mc_unmap(struct in_device *); | ||
| 237 | extern void ip_mc_remap(struct in_device *); | ||
| 236 | extern void ip_mc_dec_group(struct in_device *in_dev, __be32 addr); | 238 | extern void ip_mc_dec_group(struct in_device *in_dev, __be32 addr); |
| 237 | extern void ip_mc_inc_group(struct in_device *in_dev, __be32 addr); | 239 | extern void ip_mc_inc_group(struct in_device *in_dev, __be32 addr); |
| 238 | extern void ip_mc_rejoin_group(struct ip_mc_list *im); | 240 | extern void ip_mc_rejoin_group(struct ip_mc_list *im); |
diff --git a/include/linux/net.h b/include/linux/net.h index 4fc2ffd527f9..9040a10584f7 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
| @@ -57,6 +57,7 @@ typedef enum { | |||
| 57 | #include <linux/random.h> | 57 | #include <linux/random.h> |
| 58 | #include <linux/wait.h> | 58 | #include <linux/wait.h> |
| 59 | #include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */ | 59 | #include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */ |
| 60 | #include <linux/kmemcheck.h> | ||
| 60 | 61 | ||
| 61 | struct poll_table_struct; | 62 | struct poll_table_struct; |
| 62 | struct pipe_inode_info; | 63 | struct pipe_inode_info; |
| @@ -127,7 +128,11 @@ enum sock_shutdown_cmd { | |||
| 127 | */ | 128 | */ |
| 128 | struct socket { | 129 | struct socket { |
| 129 | socket_state state; | 130 | socket_state state; |
| 131 | |||
| 132 | kmemcheck_bitfield_begin(type); | ||
| 130 | short type; | 133 | short type; |
| 134 | kmemcheck_bitfield_end(type); | ||
| 135 | |||
| 131 | unsigned long flags; | 136 | unsigned long flags; |
| 132 | /* | 137 | /* |
| 133 | * Please keep fasync_list & wait fields in the same cache line | 138 | * Please keep fasync_list & wait fields in the same cache line |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index a9aa4b5917d7..94958c109761 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -1873,7 +1873,8 @@ extern void __dev_addr_unsync(struct dev_addr_list **to, int *to_count, struct | |||
| 1873 | extern int dev_set_promiscuity(struct net_device *dev, int inc); | 1873 | extern int dev_set_promiscuity(struct net_device *dev, int inc); |
| 1874 | extern int dev_set_allmulti(struct net_device *dev, int inc); | 1874 | extern int dev_set_allmulti(struct net_device *dev, int inc); |
| 1875 | extern void netdev_state_change(struct net_device *dev); | 1875 | extern void netdev_state_change(struct net_device *dev); |
| 1876 | extern void netdev_bonding_change(struct net_device *dev); | 1876 | extern void netdev_bonding_change(struct net_device *dev, |
| 1877 | unsigned long event); | ||
| 1877 | extern void netdev_features_change(struct net_device *dev); | 1878 | extern void netdev_features_change(struct net_device *dev); |
| 1878 | /* Load a device via the kmod */ | 1879 | /* Load a device via the kmod */ |
| 1879 | extern void dev_load(struct net *net, const char *name); | 1880 | extern void dev_load(struct net *net, const char *name); |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 0fbecbbe8e9e..080f6ba9e73a 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -176,12 +176,16 @@ struct netlink_skb_parms | |||
| 176 | #define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds) | 176 | #define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds) |
| 177 | 177 | ||
| 178 | 178 | ||
| 179 | extern void netlink_table_grab(void); | ||
| 180 | extern void netlink_table_ungrab(void); | ||
| 181 | |||
| 179 | extern struct sock *netlink_kernel_create(struct net *net, | 182 | extern struct sock *netlink_kernel_create(struct net *net, |
| 180 | int unit,unsigned int groups, | 183 | int unit,unsigned int groups, |
| 181 | void (*input)(struct sk_buff *skb), | 184 | void (*input)(struct sk_buff *skb), |
| 182 | struct mutex *cb_mutex, | 185 | struct mutex *cb_mutex, |
| 183 | struct module *module); | 186 | struct module *module); |
| 184 | extern void netlink_kernel_release(struct sock *sk); | 187 | extern void netlink_kernel_release(struct sock *sk); |
| 188 | extern int __netlink_change_ngroups(struct sock *sk, unsigned int groups); | ||
| 185 | extern int netlink_change_ngroups(struct sock *sk, unsigned int groups); | 189 | extern int netlink_change_ngroups(struct sock *sk, unsigned int groups); |
| 186 | extern void netlink_clear_multicast_users(struct sock *sk, unsigned int group); | 190 | extern void netlink_clear_multicast_users(struct sock *sk, unsigned int group); |
| 187 | extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); | 191 | extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); |
diff --git a/include/linux/notifier.h b/include/linux/notifier.h index 81bc252dc8ac..44428d247dbe 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h | |||
| @@ -199,6 +199,8 @@ static inline int notifier_to_errno(int ret) | |||
| 199 | #define NETDEV_FEAT_CHANGE 0x000B | 199 | #define NETDEV_FEAT_CHANGE 0x000B |
| 200 | #define NETDEV_BONDING_FAILOVER 0x000C | 200 | #define NETDEV_BONDING_FAILOVER 0x000C |
| 201 | #define NETDEV_PRE_UP 0x000D | 201 | #define NETDEV_PRE_UP 0x000D |
| 202 | #define NETDEV_BONDING_OLDTYPE 0x000E | ||
| 203 | #define NETDEV_BONDING_NEWTYPE 0x000F | ||
| 202 | 204 | ||
| 203 | #define SYS_DOWN 0x0001 /* Notify of system down */ | 205 | #define SYS_DOWN 0x0001 /* Notify of system down */ |
| 204 | #define SYS_RESTART SYS_DOWN | 206 | #define SYS_RESTART SYS_DOWN |
diff --git a/include/linux/rxrpc.h b/include/linux/rxrpc.h index f7b826b565c7..a53915cd5581 100644 --- a/include/linux/rxrpc.h +++ b/include/linux/rxrpc.h | |||
| @@ -58,5 +58,12 @@ struct sockaddr_rxrpc { | |||
| 58 | #define RXRPC_SECURITY_AUTH 1 /* authenticated packets */ | 58 | #define RXRPC_SECURITY_AUTH 1 /* authenticated packets */ |
| 59 | #define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */ | 59 | #define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */ |
| 60 | 60 | ||
| 61 | /* | ||
| 62 | * RxRPC security indices | ||
| 63 | */ | ||
| 64 | #define RXRPC_SECURITY_NONE 0 /* no security protocol */ | ||
| 65 | #define RXRPC_SECURITY_RXKAD 2 /* kaserver or kerberos 4 */ | ||
| 66 | #define RXRPC_SECURITY_RXGK 4 /* gssapi-based */ | ||
| 67 | #define RXRPC_SECURITY_RXK5 5 /* kerberos 5 */ | ||
| 61 | 68 | ||
| 62 | #endif /* _LINUX_RXRPC_H */ | 69 | #endif /* _LINUX_RXRPC_H */ |
diff --git a/include/net/addrconf.h b/include/net/addrconf.h index 7b55ab215a64..0f7c37825fc1 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h | |||
| @@ -143,6 +143,8 @@ extern int __ipv6_dev_mc_dec(struct inet6_dev *idev, const struct in6_addr *addr | |||
| 143 | extern int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr); | 143 | extern int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr); |
| 144 | extern void ipv6_mc_up(struct inet6_dev *idev); | 144 | extern void ipv6_mc_up(struct inet6_dev *idev); |
| 145 | extern void ipv6_mc_down(struct inet6_dev *idev); | 145 | extern void ipv6_mc_down(struct inet6_dev *idev); |
| 146 | extern void ipv6_mc_unmap(struct inet6_dev *idev); | ||
| 147 | extern void ipv6_mc_remap(struct inet6_dev *idev); | ||
| 146 | extern void ipv6_mc_init_dev(struct inet6_dev *idev); | 148 | extern void ipv6_mc_init_dev(struct inet6_dev *idev); |
| 147 | extern void ipv6_mc_destroy_dev(struct inet6_dev *idev); | 149 | extern void ipv6_mc_destroy_dev(struct inet6_dev *idev); |
| 148 | extern void addrconf_dad_failure(struct inet6_ifaddr *ifp); | 150 | extern void addrconf_dad_failure(struct inet6_ifaddr *ifp); |
diff --git a/include/net/protocol.h b/include/net/protocol.h index 1089d5aabd49..60249e51b669 100644 --- a/include/net/protocol.h +++ b/include/net/protocol.h | |||
| @@ -94,21 +94,20 @@ struct inet_protosw { | |||
| 94 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ | 94 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ |
| 95 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ | 95 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ |
| 96 | 96 | ||
| 97 | extern struct net_protocol *inet_protocol_base; | 97 | extern const struct net_protocol *inet_protos[MAX_INET_PROTOS]; |
| 98 | extern struct net_protocol *inet_protos[MAX_INET_PROTOS]; | ||
| 99 | 98 | ||
| 100 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) | 99 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) |
| 101 | extern struct inet6_protocol *inet6_protos[MAX_INET_PROTOS]; | 100 | extern const struct inet6_protocol *inet6_protos[MAX_INET_PROTOS]; |
| 102 | #endif | 101 | #endif |
| 103 | 102 | ||
| 104 | extern int inet_add_protocol(struct net_protocol *prot, unsigned char num); | 103 | extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num); |
| 105 | extern int inet_del_protocol(struct net_protocol *prot, unsigned char num); | 104 | extern int inet_del_protocol(const struct net_protocol *prot, unsigned char num); |
| 106 | extern void inet_register_protosw(struct inet_protosw *p); | 105 | extern void inet_register_protosw(struct inet_protosw *p); |
| 107 | extern void inet_unregister_protosw(struct inet_protosw *p); | 106 | extern void inet_unregister_protosw(struct inet_protosw *p); |
| 108 | 107 | ||
| 109 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) | 108 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) |
| 110 | extern int inet6_add_protocol(struct inet6_protocol *prot, unsigned char num); | 109 | extern int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char num); |
| 111 | extern int inet6_del_protocol(struct inet6_protocol *prot, unsigned char num); | 110 | extern int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num); |
| 112 | extern int inet6_register_protosw(struct inet_protosw *p); | 111 | extern int inet6_register_protosw(struct inet_protosw *p); |
| 113 | extern void inet6_unregister_protosw(struct inet_protosw *p); | 112 | extern void inet6_unregister_protosw(struct inet_protosw *p); |
| 114 | #endif | 113 | #endif |
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 88eb9de095de..c33180dd42b4 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
| @@ -81,7 +81,7 @@ struct Qdisc | |||
| 81 | struct Qdisc_class_ops | 81 | struct Qdisc_class_ops |
| 82 | { | 82 | { |
| 83 | /* Child qdisc manipulation */ | 83 | /* Child qdisc manipulation */ |
| 84 | unsigned int (*select_queue)(struct Qdisc *, struct tcmsg *); | 84 | struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); |
| 85 | int (*graft)(struct Qdisc *, unsigned long cl, | 85 | int (*graft)(struct Qdisc *, unsigned long cl, |
| 86 | struct Qdisc *, struct Qdisc **); | 86 | struct Qdisc *, struct Qdisc **); |
| 87 | struct Qdisc * (*leaf)(struct Qdisc *, unsigned long cl); | 87 | struct Qdisc * (*leaf)(struct Qdisc *, unsigned long cl); |
diff --git a/include/net/tcp.h b/include/net/tcp.h index b71a446d58f6..56b76027b85e 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -793,6 +793,13 @@ static inline unsigned int tcp_packets_in_flight(const struct tcp_sock *tp) | |||
| 793 | return tp->packets_out - tcp_left_out(tp) + tp->retrans_out; | 793 | return tp->packets_out - tcp_left_out(tp) + tp->retrans_out; |
| 794 | } | 794 | } |
| 795 | 795 | ||
| 796 | #define TCP_INFINITE_SSTHRESH 0x7fffffff | ||
| 797 | |||
| 798 | static inline bool tcp_in_initial_slowstart(const struct tcp_sock *tp) | ||
| 799 | { | ||
| 800 | return tp->snd_ssthresh >= TCP_INFINITE_SSTHRESH; | ||
| 801 | } | ||
| 802 | |||
| 796 | /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. | 803 | /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. |
| 797 | * The exception is rate halving phase, when cwnd is decreasing towards | 804 | * The exception is rate halving phase, when cwnd is decreasing towards |
| 798 | * ssthresh. | 805 | * ssthresh. |
