mirror of https://gitee.com/openkylin/linux.git
l2tp: cleanup comments
Modify some l2tp comments to better adhere to kernel coding style, as reported by checkpatch.pl. Add descriptive comments for the l2tp per-net spinlocks to document their use. Fix an incorrect comment in l2tp_recv_common: RFC2661 section 5.4 states that: "The LNS controls enabling and disabling of sequence numbers by sending a data message with or without sequence numbers present at any time during the life of a session." l2tp handles this correctly in l2tp_recv_common, but the comment around the code was incorrect and confusing. Fix up the comment accordingly. Signed-off-by: Tom Parkin <tparkin@katalix.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b71a61ccfe
commit
20dcb1107a
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* L2TP core.
|
||||
/* L2TP core.
|
||||
*
|
||||
* Copyright (c) 2008,2009,2010 Katalix Systems Ltd
|
||||
*
|
||||
|
@ -102,8 +101,10 @@ static struct workqueue_struct *l2tp_wq;
|
|||
static unsigned int l2tp_net_id;
|
||||
struct l2tp_net {
|
||||
struct list_head l2tp_tunnel_list;
|
||||
/* Lock for write access to l2tp_tunnel_list */
|
||||
spinlock_t l2tp_tunnel_list_lock;
|
||||
struct hlist_head l2tp_session_hlist[L2TP_HASH_SIZE_2];
|
||||
/* Lock for write access to l2tp_session_hlist */
|
||||
spinlock_t l2tp_session_hlist_lock;
|
||||
};
|
||||
|
||||
|
@ -678,7 +679,7 @@ void l2tp_recv_common(struct l2tp_session *session, struct sk_buff *skb,
|
|||
}
|
||||
|
||||
if (L2TP_SKB_CB(skb)->has_seq) {
|
||||
/* Received a packet with sequence numbers. If we're the LNS,
|
||||
/* Received a packet with sequence numbers. If we're the LAC,
|
||||
* check if we sre sending sequence numbers and if not,
|
||||
* configure it so.
|
||||
*/
|
||||
|
@ -1604,7 +1605,7 @@ void __l2tp_session_unhash(struct l2tp_session *session)
|
|||
EXPORT_SYMBOL_GPL(__l2tp_session_unhash);
|
||||
|
||||
/* This function is used by the netlink SESSION_DELETE command and by
|
||||
pseudowire modules.
|
||||
* pseudowire modules.
|
||||
*/
|
||||
int l2tp_session_delete(struct l2tp_session *session)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* L2TP internal definitions.
|
||||
/* L2TP internal definitions.
|
||||
*
|
||||
* Copyright (c) 2008,2009 Katalix Systems Ltd
|
||||
*/
|
||||
|
@ -49,32 +48,26 @@ struct l2tp_tunnel;
|
|||
*/
|
||||
struct l2tp_session_cfg {
|
||||
enum l2tp_pwtype pw_type;
|
||||
unsigned int recv_seq:1; /* expect receive packets with
|
||||
* sequence numbers? */
|
||||
unsigned int send_seq:1; /* send packets with sequence
|
||||
* numbers? */
|
||||
unsigned int lns_mode:1; /* behave as LNS? LAC enables
|
||||
* sequence numbers under
|
||||
* control of LNS. */
|
||||
int debug; /* bitmask of debug message
|
||||
* categories */
|
||||
unsigned int recv_seq:1; /* expect receive packets with sequence numbers? */
|
||||
unsigned int send_seq:1; /* send packets with sequence numbers? */
|
||||
unsigned int lns_mode:1; /* behave as LNS?
|
||||
* LAC enables sequence numbers under LNS control.
|
||||
*/
|
||||
int debug; /* bitmask of debug message categories */
|
||||
u16 l2specific_type; /* Layer 2 specific type */
|
||||
u8 cookie[8]; /* optional cookie */
|
||||
int cookie_len; /* 0, 4 or 8 bytes */
|
||||
u8 peer_cookie[8]; /* peer's cookie */
|
||||
int peer_cookie_len; /* 0, 4 or 8 bytes */
|
||||
int reorder_timeout; /* configured reorder timeout
|
||||
* (in jiffies) */
|
||||
int reorder_timeout; /* configured reorder timeout (in jiffies) */
|
||||
char *ifname;
|
||||
};
|
||||
|
||||
struct l2tp_session {
|
||||
int magic; /* should be
|
||||
* L2TP_SESSION_MAGIC */
|
||||
int magic; /* should be L2TP_SESSION_MAGIC */
|
||||
long dead;
|
||||
|
||||
struct l2tp_tunnel *tunnel; /* back pointer to tunnel
|
||||
* context */
|
||||
struct l2tp_tunnel *tunnel; /* back pointer to tunnel context */
|
||||
u32 session_id;
|
||||
u32 peer_session_id;
|
||||
u8 cookie[8];
|
||||
|
@ -89,42 +82,37 @@ struct l2tp_session {
|
|||
u32 nr_max; /* max NR. Depends on tunnel */
|
||||
u32 nr_window_size; /* NR window size */
|
||||
u32 nr_oos; /* NR of last OOS packet */
|
||||
int nr_oos_count; /* For OOS recovery */
|
||||
int nr_oos_count; /* for OOS recovery */
|
||||
int nr_oos_count_max;
|
||||
struct hlist_node hlist; /* Hash list node */
|
||||
struct hlist_node hlist; /* hash list node */
|
||||
refcount_t ref_count;
|
||||
|
||||
char name[32]; /* for logging */
|
||||
char ifname[IFNAMSIZ];
|
||||
unsigned int recv_seq:1; /* expect receive packets with
|
||||
* sequence numbers? */
|
||||
unsigned int send_seq:1; /* send packets with sequence
|
||||
* numbers? */
|
||||
unsigned int lns_mode:1; /* behave as LNS? LAC enables
|
||||
* sequence numbers under
|
||||
* control of LNS. */
|
||||
int debug; /* bitmask of debug message
|
||||
* categories */
|
||||
int reorder_timeout; /* configured reorder timeout
|
||||
* (in jiffies) */
|
||||
unsigned int recv_seq:1; /* expect receive packets with sequence numbers? */
|
||||
unsigned int send_seq:1; /* send packets with sequence numbers? */
|
||||
unsigned int lns_mode:1; /* behave as LNS?
|
||||
* LAC enables sequence numbers under LNS control.
|
||||
*/
|
||||
int debug; /* bitmask of debug message categories */
|
||||
int reorder_timeout; /* configured reorder timeout (in jiffies) */
|
||||
int reorder_skip; /* set if skip to next nr */
|
||||
enum l2tp_pwtype pwtype;
|
||||
struct l2tp_stats stats;
|
||||
struct hlist_node global_hlist; /* Global hash list node */
|
||||
struct hlist_node global_hlist; /* global hash list node */
|
||||
|
||||
int (*build_header)(struct l2tp_session *session, void *buf);
|
||||
void (*recv_skb)(struct l2tp_session *session, struct sk_buff *skb, int data_len);
|
||||
void (*session_close)(struct l2tp_session *session);
|
||||
void (*show)(struct seq_file *m, void *priv);
|
||||
u8 priv[]; /* private data */
|
||||
u8 priv[]; /* private data */
|
||||
};
|
||||
|
||||
/* Describes the tunnel. It contains info to track all the associated
|
||||
* sessions so incoming packets can be sorted out
|
||||
*/
|
||||
struct l2tp_tunnel_cfg {
|
||||
int debug; /* bitmask of debug message
|
||||
* categories */
|
||||
int debug; /* bitmask of debug message categories */
|
||||
enum l2tp_encap_type encap;
|
||||
|
||||
/* Used only for kernel-created sockets */
|
||||
|
@ -148,31 +136,29 @@ struct l2tp_tunnel {
|
|||
|
||||
struct rcu_head rcu;
|
||||
rwlock_t hlist_lock; /* protect session_hlist */
|
||||
bool acpt_newsess; /* Indicates whether this
|
||||
* tunnel accepts new sessions.
|
||||
* Protected by hlist_lock.
|
||||
bool acpt_newsess; /* indicates whether this tunnel accepts
|
||||
* new sessions. Protected by hlist_lock.
|
||||
*/
|
||||
struct hlist_head session_hlist[L2TP_HASH_SIZE];
|
||||
/* hashed list of sessions,
|
||||
* hashed by id */
|
||||
/* hashed list of sessions, hashed by id */
|
||||
u32 tunnel_id;
|
||||
u32 peer_tunnel_id;
|
||||
int version; /* 2=>L2TPv2, 3=>L2TPv3 */
|
||||
|
||||
char name[20]; /* for logging */
|
||||
int debug; /* bitmask of debug message
|
||||
* categories */
|
||||
int debug; /* bitmask of debug message categories */
|
||||
enum l2tp_encap_type encap;
|
||||
struct l2tp_stats stats;
|
||||
|
||||
struct list_head list; /* Keep a list of all tunnels */
|
||||
struct list_head list; /* list node on per-namespace list of tunnels */
|
||||
struct net *l2tp_net; /* the net we belong to */
|
||||
|
||||
refcount_t ref_count;
|
||||
void (*old_sk_destruct)(struct sock *);
|
||||
struct sock *sock; /* Parent socket */
|
||||
int fd; /* Parent fd, if tunnel socket
|
||||
* was created by userspace */
|
||||
struct sock *sock; /* parent socket */
|
||||
int fd; /* parent fd, if tunnel socket was created
|
||||
* by userspace
|
||||
*/
|
||||
|
||||
struct work_struct del_work;
|
||||
};
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* L2TP subsystem debugfs
|
||||
/* L2TP subsystem debugfs
|
||||
*
|
||||
* Copyright (c) 2010 Katalix Systems Ltd
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* L2TPv3 ethernet pseudowire driver
|
||||
/* L2TPv3 ethernet pseudowire driver
|
||||
*
|
||||
* Copyright (c) 2008,2009,2010 Katalix Systems Ltd
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* L2TPv3 IP encapsulation support
|
||||
/* L2TPv3 IP encapsulation support
|
||||
*
|
||||
* Copyright (c) 2008,2009,2010 Katalix Systems Ltd
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* L2TPv3 IP encapsulation support for IPv6
|
||||
/* L2TPv3 IP encapsulation support for IPv6
|
||||
*
|
||||
* Copyright (c) 2012 Katalix Systems Ltd
|
||||
*/
|
||||
|
@ -38,7 +37,8 @@ struct l2tp_ip6_sock {
|
|||
u32 peer_conn_id;
|
||||
|
||||
/* ipv6_pinfo has to be the last member of l2tp_ip6_sock, see
|
||||
inet6_sk_generic */
|
||||
* inet6_sk_generic
|
||||
*/
|
||||
struct ipv6_pinfo inet6;
|
||||
};
|
||||
|
||||
|
@ -519,7 +519,7 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
|||
int err;
|
||||
|
||||
/* Rough check on arithmetic overflow,
|
||||
better check is made in ip6_append_data().
|
||||
* better check is made in ip6_append_data().
|
||||
*/
|
||||
if (len > INT_MAX)
|
||||
return -EMSGSIZE;
|
||||
|
@ -528,9 +528,7 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
|||
if (msg->msg_flags & MSG_OOB)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
/*
|
||||
* Get and verify the address.
|
||||
*/
|
||||
/* Get and verify the address */
|
||||
memset(&fl6, 0, sizeof(fl6));
|
||||
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
|
@ -555,8 +553,7 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Otherwise it will be difficult to maintain
|
||||
/* Otherwise it will be difficult to maintain
|
||||
* sk->sk_dst_cache.
|
||||
*/
|
||||
if (sk->sk_state == TCP_ESTABLISHED &&
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* L2TP netlink layer, for management
|
||||
/* L2TP netlink layer, for management
|
||||
*
|
||||
* Copyright (c) 2008,2009,2010 Katalix Systems Ltd
|
||||
*
|
||||
|
|
|
@ -117,8 +117,7 @@ struct pppol2tp_session {
|
|||
int owner; /* pid that opened the socket */
|
||||
|
||||
struct mutex sk_lock; /* Protects .sk */
|
||||
struct sock __rcu *sk; /* Pointer to the session
|
||||
* PPPoX socket */
|
||||
struct sock __rcu *sk; /* Pointer to the session PPPoX socket */
|
||||
struct sock *__sk; /* Copy of .sk, for cleanup */
|
||||
struct rcu_head rcu; /* For asynchronous release */
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue