ip/l2tp: remove offset and peer-offset options

Ignore options "peer-offset" and "offset" when creating sessions. Keep
them when dumping sessions in order to avoid breaking external scripts.

"peer-offset" has always been a noop in iproute2. "offset" is now
ignored in Linux 4.16 (and was broken before that).

Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Guillaume Nault 2018-04-03 17:39:54 +02:00 committed by Stephen Hemminger
parent fda0a61dde
commit 2f75c5cf1a
2 changed files with 4 additions and 35 deletions

View File

@ -42,8 +42,6 @@ struct l2tp_parm {
uint32_t peer_tunnel_id;
uint32_t session_id;
uint32_t peer_session_id;
uint32_t offset;
uint32_t peer_offset;
enum l2tp_encap_type encap;
uint16_t local_udp_port;
uint16_t peer_udp_port;
@ -174,8 +172,6 @@ static int create_session(struct l2tp_parm *p)
if (p->reorder_timeout)
addattr64(&req.n, 1024, L2TP_ATTR_RECV_TIMEOUT,
p->reorder_timeout);
if (p->offset)
addattr16(&req.n, 1024, L2TP_ATTR_OFFSET, p->offset);
if (p->cookie_len)
addattr_l(&req.n, 1024, L2TP_ATTR_COOKIE,
p->cookie, p->cookie_len);
@ -310,8 +306,8 @@ static void print_session(struct l2tp_data *data)
print_string(PRINT_FP, NULL, "%s", _SL_);
}
print_uint(PRINT_ANY, "offset", " offset %u,", p->offset);
print_uint(PRINT_ANY, "peer_offset", " peer offset %u\n", p->peer_offset);
print_uint(PRINT_ANY, "offset", " offset %u,", 0);
print_uint(PRINT_ANY, "peer_offset", " peer offset %u\n", 0);
if (p->cookie_len > 0)
print_cookie("cookie", "cookie",
@ -362,8 +358,6 @@ static int get_response(struct nlmsghdr *n, void *arg)
p->pw_type = rta_getattr_u16(attrs[L2TP_ATTR_PW_TYPE]);
if (attrs[L2TP_ATTR_ENCAP_TYPE])
p->encap = rta_getattr_u16(attrs[L2TP_ATTR_ENCAP_TYPE]);
if (attrs[L2TP_ATTR_OFFSET])
p->offset = rta_getattr_u16(attrs[L2TP_ATTR_OFFSET]);
if (attrs[L2TP_ATTR_DATA_SEQ])
p->data_seq = rta_getattr_u16(attrs[L2TP_ATTR_DATA_SEQ]);
if (attrs[L2TP_ATTR_CONN_ID])
@ -550,7 +544,6 @@ static void usage(void)
" tunnel_id ID\n"
" session_id ID peer_session_id ID\n"
" [ cookie HEXSTR ] [ peer_cookie HEXSTR ]\n"
" [ offset OFFSET ] [ peer_offset OFFSET ]\n"
" [ seq { none | send | recv | both } ]\n"
" [ l2spec_type L2SPEC ]\n"
" ip l2tp del tunnel tunnel_id ID\n"
@ -678,19 +671,11 @@ static int parse_args(int argc, char **argv, int cmd, struct l2tp_parm *p)
invarg("invalid option for udp6_csum_tx\n"
, *argv);
} else if (strcmp(*argv, "offset") == 0) {
__u8 uval;
fprintf(stderr, "Ignoring option \"offset\"\n");
NEXT_ARG();
if (get_u8(&uval, *argv, 0))
invarg("invalid offset\n", *argv);
p->offset = uval;
} else if (strcmp(*argv, "peer_offset") == 0) {
__u8 uval;
fprintf(stderr, "Ignoring option \"peer_offset\"\n");
NEXT_ARG();
if (get_u8(&uval, *argv, 0))
invarg("invalid offset\n", *argv);
p->peer_offset = uval;
} else if (strcmp(*argv, "cookie") == 0) {
int slen;

View File

@ -59,12 +59,6 @@ ip-l2tp - L2TPv3 static unmanaged tunnel configuration
.br
.RB "[ " seq " { " none " | " send " | " recv " | " both " } ]"
.br
.RB "[ " offset
.IR OFFSET
.RB " ] [ " peer_offset
.IR OFFSET
.RB " ]"
.br
.ti -8
.BR "ip l2tp del tunnel"
.B tunnel_id
@ -285,16 +279,6 @@ Default is
.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
value must match the peer_offset value used at the peer. Default is 0.
.TP
.BI peer_offset " OFFSET"
sets the byte offset from the L2TP header where user data starts in
received L2TP data packets. This is hardly ever used. If set, the
value must match the offset value used at the peer. Default is 0.
.SS ip l2tp del session - destroy a session
.TP
.BI tunnel_id " ID"