public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation
@ 2016-11-16 22:45 Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 2/9] man: ip-l2tp.8: remove non-existent tunnel parameter name Asbjørn Sloth Tønnesen
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 man/man8/ip-l2tp.8 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/man/man8/ip-l2tp.8 b/man/man8/ip-l2tp.8
index 5b7041f..4a3bb20 100644
--- a/man/man8/ip-l2tp.8
+++ b/man/man8/ip-l2tp.8
@@ -239,7 +239,7 @@ find in received L2TP packets. Default is to use no cookie.
 set the layer2specific header type of the session.
 .br
 Valid values are:
-.BR none ", " udp "."
+.BR none ", " default "."
 .TP
 .BI offset " OFFSET"
 sets the byte offset from the L2TP header where user data starts in
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 2/9] man: ip-l2tp.8: remove non-existent tunnel parameter name
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 3/9] l2tp: fix integers with too few significant bits Asbjørn Sloth Tønnesen
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

The name parameter is only valid for sessions, not tunnels.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 man/man8/ip-l2tp.8 | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/man/man8/ip-l2tp.8 b/man/man8/ip-l2tp.8
index 4a3bb20..991d097 100644
--- a/man/man8/ip-l2tp.8
+++ b/man/man8/ip-l2tp.8
@@ -154,9 +154,6 @@ tunnels and sessions to be established and provides for detecting and
 acting upon network failures.
 .SS ip l2tp add tunnel - add a new tunnel
 .TP
-.BI name " NAME "
-sets the session network interface name. Default is l2tpethN.
-.TP
 .BI tunnel_id " ID"
 set the tunnel id, which is a 32-bit integer value. Uniquely
 identifies the tunnel. The value used must match the peer_tunnel_id
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 3/9] l2tp: fix integers with too few significant bits
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 2/9] man: ip-l2tp.8: remove non-existent tunnel parameter name Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 4/9] l2tp: fix L2TP_ATTR_{RECV,SEND}_SEQ handling Asbjørn Sloth Tønnesen
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

udp6_csum_{tx,rx}, tunnel and session are the only ones
currently used.

recv_seq, send_seq, lns_mode and data_seq are partially
implemented in a useless way.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 ip/ipl2tp.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c
index d3338ac..2e0e9c7 100644
--- a/ip/ipl2tp.c
+++ b/ip/ipl2tp.c
@@ -56,15 +56,15 @@ struct l2tp_parm {
 
 	uint16_t pw_type;
 	uint16_t mtu;
-	int udp6_csum_tx:1;
-	int udp6_csum_rx:1;
-	int udp_csum:1;
-	int recv_seq:1;
-	int send_seq:1;
-	int lns_mode:1;
-	int data_seq:2;
-	int tunnel:1;
-	int session:1;
+	unsigned int udp6_csum_tx:1;
+	unsigned int udp6_csum_rx:1;
+	unsigned int udp_csum:1;
+	unsigned int recv_seq:1;
+	unsigned int send_seq:1;
+	unsigned int lns_mode:1;
+	unsigned int data_seq:2;
+	unsigned int tunnel:1;
+	unsigned int session:1;
 	int reorder_timeout;
 	const char *ifname;
 	uint8_t l2spec_type;
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 4/9] l2tp: fix L2TP_ATTR_{RECV,SEND}_SEQ handling
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 2/9] man: ip-l2tp.8: remove non-existent tunnel parameter name Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 3/9] l2tp: fix integers with too few significant bits Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 5/9] l2tp: fix L2TP_ATTR_UDP_CSUM handling Asbjørn Sloth Tønnesen
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

L2TP_ATTR_RECV_SEQ and L2TP_ATTR_SEND_SEQ are declared as NLA_U8
attributes in the kernel, so let's threat them accordingly.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 ip/ipl2tp.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c
index 2e0e9c7..a7cbd66 100644
--- a/ip/ipl2tp.c
+++ b/ip/ipl2tp.c
@@ -160,8 +160,8 @@ static int create_session(struct l2tp_parm *p)
 	addattr8(&req.n, 1024, L2TP_ATTR_L2SPEC_LEN, p->l2spec_len);
 
 	if (p->mtu)		addattr16(&req.n, 1024, L2TP_ATTR_MTU, p->mtu);
-	if (p->recv_seq)	addattr(&req.n, 1024, L2TP_ATTR_RECV_SEQ);
-	if (p->send_seq)	addattr(&req.n, 1024, L2TP_ATTR_SEND_SEQ);
+	if (p->recv_seq)	addattr8(&req.n, 1024, L2TP_ATTR_RECV_SEQ, 1);
+	if (p->send_seq)	addattr8(&req.n, 1024, L2TP_ATTR_SEND_SEQ, 1);
 	if (p->lns_mode)	addattr(&req.n, 1024, L2TP_ATTR_LNS_MODE);
 	if (p->data_seq)	addattr8(&req.n, 1024, L2TP_ATTR_DATA_SEQ, p->data_seq);
 	if (p->reorder_timeout) addattr64(&req.n, 1024, L2TP_ATTR_RECV_TIMEOUT,
@@ -304,8 +304,10 @@ static int get_response(struct nlmsghdr *n, void *arg)
 		memcpy(p->peer_cookie, RTA_DATA(attrs[L2TP_ATTR_PEER_COOKIE]),
 		       p->peer_cookie_len = RTA_PAYLOAD(attrs[L2TP_ATTR_PEER_COOKIE]));
 
-	p->recv_seq = !!attrs[L2TP_ATTR_RECV_SEQ];
-	p->send_seq = !!attrs[L2TP_ATTR_SEND_SEQ];
+	if (attrs[L2TP_ATTR_RECV_SEQ])
+		p->recv_seq = !!rta_getattr_u8(attrs[L2TP_ATTR_RECV_SEQ]);
+	if (attrs[L2TP_ATTR_SEND_SEQ])
+		p->send_seq = !!rta_getattr_u8(attrs[L2TP_ATTR_SEND_SEQ]);
 
 	if (attrs[L2TP_ATTR_RECV_TIMEOUT])
 		p->reorder_timeout = rta_getattr_u64(attrs[L2TP_ATTR_RECV_TIMEOUT]);
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 5/9] l2tp: fix L2TP_ATTR_UDP_CSUM handling
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
                   ` (2 preceding siblings ...)
  2016-11-16 22:45 ` [PATCH iproute2 v2 4/9] l2tp: fix L2TP_ATTR_{RECV,SEND}_SEQ handling Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 6/9] l2tp: read IPv6 UDP checksum attributes from kernel Asbjørn Sloth Tønnesen
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

L2TP_ATTR_UDP_CSUM is read by the kernel as a NLA_FLAG value,
but is validated as a NLA_U8, so we will write it as an u8,
but the value isn't actually being read by the kernel.

It is written by the kernel as a NLA_U8, so we will read as
such.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 ip/ipl2tp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c
index a7cbd66..03ca0cc 100644
--- a/ip/ipl2tp.c
+++ b/ip/ipl2tp.c
@@ -120,7 +120,7 @@ static int create_tunnel(struct l2tp_parm *p)
 		addattr16(&req.n, 1024, L2TP_ATTR_UDP_SPORT, p->local_udp_port);
 		addattr16(&req.n, 1024, L2TP_ATTR_UDP_DPORT, p->peer_udp_port);
 		if (p->udp_csum)
-			addattr(&req.n, 1024, L2TP_ATTR_UDP_CSUM);
+			addattr8(&req.n, 1024, L2TP_ATTR_UDP_CSUM, 1);
 		if (!p->udp6_csum_tx)
 			addattr(&req.n, 1024, L2TP_ATTR_UDP_ZERO_CSUM6_TX);
 		if (!p->udp6_csum_rx)
@@ -289,7 +289,9 @@ static int get_response(struct nlmsghdr *n, void *arg)
 	if (attrs[L2TP_ATTR_L2SPEC_LEN])
 		p->l2spec_len = rta_getattr_u8(attrs[L2TP_ATTR_L2SPEC_LEN]);
 
-	p->udp_csum = !!attrs[L2TP_ATTR_UDP_CSUM];
+	if (attrs[L2TP_ATTR_UDP_CSUM])
+		p->udp_csum = !!rta_getattr_u8(attrs[L2TP_ATTR_UDP_CSUM]);
+
 	/*
 	 * Not fetching from L2TP_ATTR_UDP_ZERO_CSUM6_{T,R}X because the
 	 * kernel doesn't send it so just leave it as default value.
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 6/9] l2tp: read IPv6 UDP checksum attributes from kernel
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
                   ` (3 preceding siblings ...)
  2016-11-16 22:45 ` [PATCH iproute2 v2 5/9] l2tp: fix L2TP_ATTR_UDP_CSUM handling Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 7/9] l2tp: support sequence numbering Asbjørn Sloth Tønnesen
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

In case of an older kernel that doesn't set L2TP_ATTR_UDP_ZERO_CSUM6_{RX,TX}
the old hard-coded value is being preserved, since the attribute flag will be
missing.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 ip/ipl2tp.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c
index 03ca0cc..f5d4113 100644
--- a/ip/ipl2tp.c
+++ b/ip/ipl2tp.c
@@ -292,12 +292,9 @@ static int get_response(struct nlmsghdr *n, void *arg)
 	if (attrs[L2TP_ATTR_UDP_CSUM])
 		p->udp_csum = !!rta_getattr_u8(attrs[L2TP_ATTR_UDP_CSUM]);
 
-	/*
-	 * Not fetching from L2TP_ATTR_UDP_ZERO_CSUM6_{T,R}X because the
-	 * kernel doesn't send it so just leave it as default value.
-	 */
-	p->udp6_csum_tx = 1;
-	p->udp6_csum_rx = 1;
+	p->udp6_csum_tx = !attrs[L2TP_ATTR_UDP_ZERO_CSUM6_TX];
+	p->udp6_csum_rx = !attrs[L2TP_ATTR_UDP_ZERO_CSUM6_RX];
+
 	if (attrs[L2TP_ATTR_COOKIE])
 		memcpy(p->cookie, RTA_DATA(attrs[L2TP_ATTR_COOKIE]),
 		       p->cookie_len = RTA_PAYLOAD(attrs[L2TP_ATTR_COOKIE]));
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 7/9] l2tp: support sequence numbering
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
                   ` (4 preceding siblings ...)
  2016-11-16 22:45 ` [PATCH iproute2 v2 6/9] l2tp: read IPv6 UDP checksum attributes from kernel Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 8/9] l2tp: show tunnel: expose UDP checksum state Asbjørn Sloth Tønnesen
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

This patch implement and documents the user interface for
sequence numbering.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 ip/ipl2tp.c        | 23 +++++++++++++++++++++++
 man/man8/ip-l2tp.8 | 15 +++++++++++++++
 2 files changed, 38 insertions(+)

diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c
index f5d4113..ab35023 100644
--- a/ip/ipl2tp.c
+++ b/ip/ipl2tp.c
@@ -246,6 +246,12 @@ static void print_session(struct l2tp_data *data)
 		printf("  reorder timeout: %u\n", p->reorder_timeout);
 	else
 		printf("\n");
+	if (p->send_seq || p->recv_seq) {
+		printf("  sequence numbering:");
+		if (p->send_seq) printf(" send");
+		if (p->recv_seq) printf(" recv");
+		printf("\n");
+	}
 }
 
 static int get_response(struct nlmsghdr *n, void *arg)
@@ -482,6 +488,7 @@ static void usage(void)
 	fprintf(stderr, "          session_id ID peer_session_id ID\n");
 	fprintf(stderr, "          [ cookie HEXSTR ] [ peer_cookie HEXSTR ]\n");
 	fprintf(stderr, "          [ offset OFFSET ] [ peer_offset OFFSET ]\n");
+	fprintf(stderr, "          [ seq { none | send | recv | both } ]\n");
 	fprintf(stderr, "          [ l2spec_type L2SPEC ]\n");
 	fprintf(stderr, "       ip l2tp del tunnel tunnel_id ID\n");
 	fprintf(stderr, "       ip l2tp del session tunnel_id ID session_id ID\n");
@@ -652,6 +659,22 @@ static int parse_args(int argc, char **argv, int cmd, struct l2tp_parm *p)
 				fprintf(stderr, "Unknown layer2specific header type \"%s\"\n", *argv);
 				exit(-1);
 			}
+		} else if (strcmp(*argv, "seq") == 0) {
+			NEXT_ARG();
+			if (strcasecmp(*argv, "both") == 0) {
+				p->recv_seq = 1;
+				p->send_seq = 1;
+			} else if (strcasecmp(*argv, "recv") == 0) {
+				p->recv_seq = 1;
+			} else if (strcasecmp(*argv, "send") == 0) {
+				p->send_seq = 1;
+			} else if (strcasecmp(*argv, "none") == 0) {
+				p->recv_seq = 0;
+				p->send_seq = 0;
+			} else {
+				fprintf(stderr, "Unknown seq value \"%s\"\n", *argv);
+				exit(-1);
+			}
 		} else if (strcmp(*argv, "tunnel") == 0) {
 			p->tunnel = 1;
 		} else if (strcmp(*argv, "session") == 0) {
diff --git a/man/man8/ip-l2tp.8 b/man/man8/ip-l2tp.8
index 991d097..d4e7270 100644
--- a/man/man8/ip-l2tp.8
+++ b/man/man8/ip-l2tp.8
@@ -51,6 +51,8 @@ ip-l2tp - L2TPv3 static unmanaged tunnel configuration
 .br
 .RB "[ " l2spec_type " { " none " | " default " } ]"
 .br
+.RB "[ " seq " { " none " | " send " | " recv " | " both " } ]"
+.br
 .RB "[ " offset
 .IR OFFSET
 .RB " ] [ " peer_offset
@@ -238,6 +240,19 @@ set the layer2specific header type of the session.
 Valid values are:
 .BR none ", " default "."
 .TP
+.BI seq " SEQ"
+controls sequence numbering to prevent or detect out of order packets.
+.B send
+puts a sequence number in the default layer2specific header of each
+outgoing packet.
+.B recv
+reorder packets if they are received out of order.
+Default is
+.BR none "."
+.br
+Valid values are:
+.BR none ", " send ", " recv ", " both "."
+.TP
 .BI offset " OFFSET"
 sets the byte offset from the L2TP header where user data starts in
 transmitted L2TP data packets. This is hardly ever used. If set, the
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 8/9] l2tp: show tunnel: expose UDP checksum state
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
                   ` (5 preceding siblings ...)
  2016-11-16 22:45 ` [PATCH iproute2 v2 7/9] l2tp: support sequence numbering Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-16 22:45 ` [PATCH iproute2 v2 9/9] man: ip-l2tp.8: document UDP checksum options Asbjørn Sloth Tønnesen
  2016-11-29 21:43 ` [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Stephen Hemminger
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 ip/ipl2tp.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c
index ab35023..f2bbc0c 100644
--- a/ip/ipl2tp.c
+++ b/ip/ipl2tp.c
@@ -218,9 +218,24 @@ static void print_tunnel(const struct l2tp_data *data)
 	printf("  Peer tunnel %u\n",
 	       p->peer_tunnel_id);
 
-	if (p->encap == L2TP_ENCAPTYPE_UDP)
+	if (p->encap == L2TP_ENCAPTYPE_UDP) {
 		printf("  UDP source / dest ports: %hu/%hu\n",
 		       p->local_udp_port, p->peer_udp_port);
+
+		switch (p->local_ip.family) {
+		case AF_INET:
+			printf("  UDP checksum: %s\n",
+			       p->udp_csum ? "enabled" : "disabled");
+			break;
+		case AF_INET6:
+			printf("  UDP checksum: %s%s%s%s\n",
+			       p->udp6_csum_tx && p->udp6_csum_rx ? "enabled" : "",
+			       p->udp6_csum_tx && !p->udp6_csum_rx ? "tx" : "",
+			       !p->udp6_csum_tx && p->udp6_csum_rx ? "rx" : "",
+			       !p->udp6_csum_tx && !p->udp6_csum_rx ? "disabled" : "");
+			break;
+		}
+	}
 }
 
 static void print_session(struct l2tp_data *data)
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH iproute2 v2 9/9] man: ip-l2tp.8: document UDP checksum options
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
                   ` (6 preceding siblings ...)
  2016-11-16 22:45 ` [PATCH iproute2 v2 8/9] l2tp: show tunnel: expose UDP checksum state Asbjørn Sloth Tønnesen
@ 2016-11-16 22:45 ` Asbjørn Sloth Tønnesen
  2016-11-29 21:43 ` [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Stephen Hemminger
  8 siblings, 0 replies; 10+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-11-16 22:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: James Chapman, netdev

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
---
 man/man8/ip-l2tp.8 | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/man/man8/ip-l2tp.8 b/man/man8/ip-l2tp.8
index d4e7270..8ce630a 100644
--- a/man/man8/ip-l2tp.8
+++ b/man/man8/ip-l2tp.8
@@ -30,6 +30,12 @@ ip-l2tp - L2TPv3 static unmanaged tunnel configuration
 .IR PORT
 .RB " ]"
 .br
+.RB "[ " udp_csum " { " on " | " off " } ]"
+.br
+.RB "[ " udp6_csum_tx " { " on " | " off " } ]"
+.br
+.RB "[ " udp6_csum_rx " { " on " | " off " } ]"
+.br
 .ti -8
 .BR "ip l2tp add session"
 .RB "[ " name
@@ -190,6 +196,33 @@ selected.
 set the UDP destination port to be used for the tunnel. Must be
 present when udp encapsulation is selected. Ignored when ip
 encapsulation is selected.
+.TP
+.BI udp_csum " STATE"
+(IPv4 only) control if IPv4 UDP checksums should be calculated and checked for the
+encapsulating UDP packets, when UDP encapsulating is selected.
+Default is
+.BR off "."
+.br
+Valid values are:
+.BR on ", " off "."
+.TP
+.BI udp6_csum_tx " STATE"
+(IPv6 only) control if IPv6 UDP checksums should be calculated for encapsulating
+UDP packets, when UDP encapsulating is selected.
+Default is
+.BR on "."
+.br
+Valid values are:
+.BR on ", " off "."
+.TP
+.BI udp6_csum_rx " STATE"
+(IPv6 only) control if IPv6 UDP checksums should be checked for the encapsulating
+UDP packets, when UDP encapsulating is selected.
+Default is
+.BR on "."
+.br
+Valid values are:
+.BR on ", " off "."
 .SS ip l2tp del tunnel - destroy a tunnel
 .TP
 .BI tunnel_id " ID"
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation
  2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
                   ` (7 preceding siblings ...)
  2016-11-16 22:45 ` [PATCH iproute2 v2 9/9] man: ip-l2tp.8: document UDP checksum options Asbjørn Sloth Tønnesen
@ 2016-11-29 21:43 ` Stephen Hemminger
  8 siblings, 0 replies; 10+ messages in thread
From: Stephen Hemminger @ 2016-11-29 21:43 UTC (permalink / raw)
  To: Asbjørn Sloth Tønnesen; +Cc: James Chapman, netdev

On Wed, 16 Nov 2016 22:45:18 +0000
Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st> wrote:

> Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>

Applied this set, and queued for next push

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-11-29 21:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-16 22:45 [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 2/9] man: ip-l2tp.8: remove non-existent tunnel parameter name Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 3/9] l2tp: fix integers with too few significant bits Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 4/9] l2tp: fix L2TP_ATTR_{RECV,SEND}_SEQ handling Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 5/9] l2tp: fix L2TP_ATTR_UDP_CSUM handling Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 6/9] l2tp: read IPv6 UDP checksum attributes from kernel Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 7/9] l2tp: support sequence numbering Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 8/9] l2tp: show tunnel: expose UDP checksum state Asbjørn Sloth Tønnesen
2016-11-16 22:45 ` [PATCH iproute2 v2 9/9] man: ip-l2tp.8: document UDP checksum options Asbjørn Sloth Tønnesen
2016-11-29 21:43 ` [PATCH iproute2 v2 1/9] man: ip-l2tp.8: fix l2spec_type documentation Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox