l2tp: fix manual sequencing (de)activation in L2TPv2
authorGuillaume Nault <g.nault@alphalink.fr>
Thu, 6 Mar 2014 10:14:30 +0000 (11:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 6 Mar 2014 19:25:39 +0000 (14:25 -0500)
commitbb5016eac1656506df1a9d6057ce5bec342afbef
treec83f3e91c9e71915164e4212722f2415b5998f6a
parent1b07da516ee25250f458c76c012ebe4cd677a84f
l2tp: fix manual sequencing (de)activation in L2TPv2

Commit e0d4435f "l2tp: Update PPP-over-L2TP driver to work over L2TPv3"
broke the PPPOL2TP_SO_SENDSEQ setsockopt. The L2TP header length was
previously computed by pppol2tp_l2t_header_len() before each call to
l2tp_xmit_skb(). Now that header length is retrieved from the hdr_len
session field, this field must be updated every time the L2TP header
format is modified, or l2tp_xmit_skb() won't push the right amount of
data for the L2TP header.

This patch uses l2tp_session_set_header_len() to adjust hdr_len every
time sequencing is (de)activated from userspace (either by the
PPPOL2TP_SO_SENDSEQ setsockopt or the L2TP_ATTR_SEND_SEQ netlink
attribute).

Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/l2tp/l2tp_core.c
net/l2tp/l2tp_core.h
net/l2tp/l2tp_netlink.c
net/l2tp/l2tp_ppp.c