linux/net/l2tp/l2tp_core.c
<<
.5.5.53/spaval.53spav class="lxr_search">.5.5 hidden" nam> navtarget" > ">.5 text" nam> search" id search">.5 submit">Search.5.53/spaval.53input typ> hidden" nam> ajax_lookup" id ajax_lookup" > ">.l 3div id file_contents"a
 L1">v v13/a>3spav class="comment">/*3/spaval
 L2">v v23/a>3spav class="comment"> * L2TP core.3/spaval
 L3">v v33/a>3spav class="comment"> *3/spaval
 L4">v v43/a>3spav class="comment"> * Copyright (c) 2008,2009,2010 Katalix Systems Ltd3/spaval
 L5">v v53/a>3spav class="comment"> *3/spaval
 L6">v v63/a>3spav class="comment"> * This file contains some code of the original L2TPv2 pppol2tp3/spaval
 L7">v v73/a>3spav class="comment"> * driver, which has the following copyright:3/spaval
 L8">v v83/a>3spav class="comment"> *3/spaval
 L9">v v93/a>3spav class="comment"> * Authors:/"v vMartij2"
	n Oosterhout <kleptog@s
	na.org>3/spaval
 L10">v 
  3spav class="comment"> *              Jam>s Chapmav (jchapmav@katalix.com)3/spaval
 L11">v 113/a>3spav class="comment"> * Contributors:3/spaval
 L12">v 123/a>3spav class="comment"> *              Michal Ostrowski <mostrows@speakeasy.net>3/spaval
 L13">v 133/a>3spav class="comment"> *              Arnaldo Car
	 ho de Melo <acme@xconectiva.com.br>3/spaval
 L14">v 143/a>3spav class="comment"> *              David S. Miller (davem@redhat.com)3/spaval
 L15">v 153/a>3spav class="comment"> *3/spaval
 L16">v 163/a>3spav class="comment"> * This program is free software; you cav redistribute it and/or modify3/spaval
 L17">v 173/a>3spav class="comment"> * it under the terms of the GNU General Public License vers.12"2 as3/spaval
 L18">v 183/a>3spav class="comment"> * published by the Free Software Foundaon v.3/spaval
 L19">v 193/a>3spav class="comment"> */3/spaval
 L20">v 2  l
 L21">v 213/a>#definev3a href="+code=pr_fmt" class="sref">pr_fmt3/a>(3a href="+code=fmt" class="sref">fmt3/a>)v3a href="+code=KBUILD_MODNAME" class="sref">KBUILD_MODNAME3/a> 3spav class="string">": "3/spavav3a href="+code=fmt" class="sref">fmt3/a>l
 L22">v 223/a>l
 L23">v 233/a>#include <linux/module.h3/a>>l
 L24">v 243/a>#include <linux/string.h3/a>>l
 L25">v 253/a>#include <linux/list.h3/a>>l
 L26">v 263/a>#include <linux/rculist.h3/a>>l
 L27">v 273/a>#include <linux/uaccess.h3/a>>l
 L28">v 283/a>l
 L29">v 293/a>#include <linux/kernel.h3/a>>l
 L30">v 303/a>#include <linux/spinlock.h3/a>>l
 L31">v 313/a>#include <linux/kthread.h3/a>>l
 L32">v 323/a>#include <linux/sched.h3/a>>l
 L33">v 333/a>#include <linux/slab.h3/a>>l
 L34">v 343/a>#include <linux/errno.h3/a>>l
 L35">v 353/a>#include <linux/jiffies.h3/a>>l
 L36">v 363/a>l
 L37">v 373/a>#include <linux/netdevice.h3/a>>l
 L38">v 383/a>#include <linux/net.h3/a>>l
 L39">v 393/a>#include <linux/inetdevice.h3/a>>l
 L40">v 403/a>#include <linux/skbuff.h3/a>>l
 L41">v 413/a>#include <linux/init.h3/a>>l
 L42">v 423/a>#include <linux/in.h3/a>>l
 L43">v 433/a>#include <linux/ip.h3/a>>l
 L44">v 443/a>#include <linux/udp.h3/a>>l
 L45">v 453/a>#include <linux/l2tp.h3/a>>l
 L46">v 463/a>#include <linux/hash.h3/a>>l
 L47">v 473/a>#include <linux/sort.h3/a>>l
 L48">v 483/a>#include <linux/file.h3/a>>l
 L49">v 493/a>#include <linux/nsproxy.h3/a>>l
 L50">v 503/a>#include <net/net_nam>space.h3/a>>l
 L51">v 513/a>#include <net/netns/generic.h3/a>>l
 L52">v 523/a>#include <net/dst.h3/a>>l
 L53">v 533/a>#include <net/ip.h3/a>>l
 L54">v 543/a>#include <net/udp.h3/a>>l
 L55">v 553/a>#include <net/inet_common.h3/a>>l
 L56">v 563/a>#include <net/xfrm.h3/a>>l
 L57">v 573/a>#include <net/protocol.h3/a>>l
 L58">v 583/a>#include <net/inet6_connection_sock.h3/a>>l
 L59">v 593/a>#include <net/inet_ecn.h3/a>>l
 L60">v 603/a>#include <net/ip6_route.h3/a>>l
 L61">v 613/a>#include <net/ip6_checksum.h3/a>>l
 L62">v 623/a>l
 L63">v 633/a>#include <asm/byteorder.h3/a>>l
 L64">v 643/a>#include <linux/atomic.h3/a>>l
 L65">v 653/a>l
 L66">v 663/a>#include "3a href="net/l2tp/l2tp_core.h" class="fref">l2tp_core.h3/a>"l
 L67">v 673/a>l
 L68">v 683/a>#definev3a href="+code=L2TP_DRV_VERSION" class="sref">L2TP_DRV_VERSION3/a>        3spav class="string">"V2.0"3/spaval
 L69">v 693/a>l
 L70">v 7  3spav class="comment">/* L2TP header constants */3/spaval
 L71">v 713/a>#definev3a href="+code=L2TP_HDRFLAG_T" class="sref">L2TP_HDRFLAG_T3/a>     0x8000l
 L72">v 723/a>#definev3a href="+code=L2TP_HDRFLAG_L" class="sref">L2TP_HDRFLAG_L3/a>     0x4000l
 L73">v 733/a>#definev3a href="+code=L2TP_HDRFLAG_S" class="sref">L2TP_HDRFLAG_S3/a>     0x0800l
 L74">v 743/a>#definev3a href="+code=L2TP_HDRFLAG_O" class="sref">L2TP_HDRFLAG_O3/a>     0x0200l
 L75">v 753/a>#definev3a href="+code=L2TP_HDRFLAG_P" class="sref">L2TP_HDRFLAG_P3/a>     0x0100l
 L76">v 763/a>l
 L77">v 773/a>#definev3a href="+code=L2TP_HDR_VER_MASK" class="sref">L2TP_HDR_VER_MASK3/a>  0x000Fl
 L78">v 783/a>#definev3a href="+code=L2TP_HDR_VER_2" class="sref">L2TP_HDR_VER_23/a>     0x0002l
 L79">v 793/a>#definev3a href="+code=L2TP_HDR_VER_3" class="sref">L2TP_HDR_VER_33/a>     0x0003l
 L80">v 8  l
 L81">v 813/a>3spav class="comment">/* L2TPv3 default L2-specific sublayer */3/spaval
 L82">v 823/a>#definev3a href="+code=L2TP_SLFLAG_S" class="sref">L2TP_SLFLAG_S3/a>      0x40000000l
 L83">v 833/a>#definev3a href="+code=L2TP_SL_SEQ_MASK" class="sref">L2TP_SL_SEQ_MASK3/a>   0x00ffffffl
 L84">v 84 l
 L85">v 853/a>#definev3a href="+code=L2TP_HDR_SIZE_SEQ" class="sref">L2TP_HDR_SIZE_SEQ3/a>               10l
 L86">v 863/a>#definev3a href="+code=L2TP_HDR_SIZE_NOSEQ" class="sref">L2TP_HDR_SIZE_NOSEQ3/a>             6l
 L87">v 873/a>l
 L88">v 883/a>3spav class="comment">/* Default trace flags */3/spaval
 L89">v 893/a>#definev3a href="+code=L2TP_DEFAULT_DEBUG_FLAGS" class="sref">L2TP_DEFAULT_DEBUG_FLAGS3/a>        0l
 L90">v 9  l
 L91">v 913/a>3spav class="comment">/* Private data stored for received packets in the skb.3/spaval
 L92">v 923/a>3spav class="comment"> */3/spaval
 L93">v 933/a>structv3a href="+code=l2tp_skb_cb" class="sref">l2tp_skb_cb3/a> {l
 L94">v 943/a>        3a href="+code=u32" class="sref">u323/a>                     3a href="+code=ns" class="sref">ns3/a>;l
 L95">v 953/a>        3a href="+code=u16" class="sref">u163/a>                     3a href="+code=has_seq" class="sref">has_seq3/a>;l
 L96">v 963/a>        3a href="+code=u16" class="sref">u163/a>                     3a href="+code=length" class="sref">length3/a>;l
 L97">v 973/a>        unsigned long           3a href="+code=expires" class="sref">expires3/a>;l
 L98">v 983/a>};l
 L99">v 993/a>l
 L100">v1003/a>#definev3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)        ((structv3a href="+code=l2tp_skb_cb" class="sref">l2tp_skb_cb3/a> *) &3a href="+code=skb" class="sref">skb3/a>->3a href="+code=cb" class="sref">cb3/a>[sizeof(structv3a href="+code=inet_skb_parm" class="sref">inet_skb_parm3/a>)])l
 L101">v1013/a>l
 L102">v1023/a>staticv3a href="+code=atomic_t" class="sref">atomic_t3/a> 3a href="+code=l2tp_tunnel_count" class="sref">l2tp_tunnel_count3/a>;l
 L103">v1033/a>staticv3a href="+code=atomic_t" class="sref">atomic_t3/a> 3a href="+code=l2tp_sess.12_count" class="sref">l2tp_sess.12_count3/a>;l
 L104">v104 l
 L105">v1053/a>3spav class="comment">/* per-net private data for this module */3/spaval
 L106">v1063/a>staticvunsigned intv3a href="+code=l2tp_net_id" class="sref">l2tp_net_id3/a>;l
 L107">v1073/a>structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> {l
 L108">v1083/a>        structv3a href="+code=list_head" class="sref">list_head3/a> 3a href="+code=l2tp_tunnel_list" class="sref">l2tp_tunnel_list3/a>;l
 L109">v1093/a>        3a href="+code=spinlock_t" class="sref">spinlock_t3/a> 3a href="+code=l2tp_tunnel_list_lock" class="sref">l2tp_tunnel_list_lock3/a>;l
 L110">v1
          structv3a href="+code=hlist_head" class="sref">hlist_head3/a> 3a href="+code=l2tp_sess.12_hlist" class="sref">l2tp_sess.12_hlist3/a>[3a href="+code=L2TP_HASH_SIZE_2" class="sref">L2TP_HASH_SIZE_23/a>];l
 L111">v1113/a>        3a href="+code=spinlock_t" class="sref">spinlock_t3/a> 3a href="+code=l2tp_sess.12_hlist_lock" class="sref">l2tp_sess.12_hlist_lock3/a>;l
 L112">v1123/a>};l
 L113">v1133/a>l
 L114">v1143/a>staticvvoid 3a href="+code=l2tp_sess.12_set_header_len" class="sref">l2tp_sess.12_set_header_len3/a>(structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>, intv3a href="+code=vers.12" class="sref">vers.123/a>);l
 L115">v1153/a>staticvvoid 3a href="+code=l2tp_tunnel_free" class="sref">l2tp_tunnel_free3/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>);l
 L116">v1163/a>staticvvoid 3a href="+code=l2tp_tunnel_closeall" class="sref">l2tp_tunnel_closeall3/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>);l
 L117">v1173/a>l
 L118">v1183/a>staticv3a href="+code=inline" class="sref">inline3/a> structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> *3a href="+code=l2tp_pernet" class="sref">l2tp_pernet3/a>(structv3a href="+code=net" class="sref">net3/a> *3a href="+code=net" class="sref">net3/a>)l
 L119">v1193/a>{l
 L120">v1203/a>        3a href="+code=BUG_ON" class="sref">BUG_ON3/a>(!3a href="+code=net" class="sref">net3/a>);l
 L121">v1213/a>l
 L122">v1223/a>        return 3a href="+code=net_generic" class="sref">net_generic3/a>(3a href="+code=net" class="sref">net3/a>,v3a href="+code=l2tp_net_id" class="sref">l2tp_net_id3/a>);l
 L123">v1233/a>}l
 L124">v124 l
 L125">v1253/a>l
 L126">v1263/a>3spav class="comment">/* Tunnel reference counts. Incremented per sess.12 that is added to3/spaval
 L127">v1273/a>3spav class="comment"> * the tunnel.3/spaval
 L128">v1283/a>3spav class="comment"> */3/spaval
 L129">v1293/a>staticv3a href="+code=inline" class="sref">inline3/a> void 3a href="+code=l2tp_tunnel_inc_refcount_1" class="sref">l2tp_tunnel_inc_refcount_13/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>)l
 L130">v1303/a>{l
 L131">v1313/a>        3a href="+code=atomic_inc" class="sref">atomic_inc3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=ref_count" class="sref">ref_count3/a>);l
 L132">v1323/a>}l
 L133">v1333/a>l
 L134">v1343/a>staticv3a href="+code=inline" class="sref">inline3/a> void 3a href="+code=l2tp_tunnel_dec_refcount_1" class="sref">l2tp_tunnel_dec_refcount_13/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>)l
 L135">v1353/a>{l
 L136">v1363/a>        if (3a href="+code=atomic_dec_and_test" class="sref">atomic_dec_and_test3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=ref_count" class="sref">ref_count3/a>))l
 L137">v1373/a>                3a href="+code=l2tp_tunnel_free" class="sref">l2tp_tunnel_free3/a>(3a href="+code=tunnel" class="sref">tunnel3/a>);l
 L138">v1383/a>}l
 L139">v1393/a>#ifdefv3a href="+code=L2TP_REFCNT_DEBUG" class="sref">L2TP_REFCNT_DEBUG3/a>l
 L140">v1403/a>#definev3a href="+code=l2tp_tunnel_inc_refcount" class="sref">l2tp_tunnel_inc_refcount3/a>(3a href="+code=_t" class="sref">_t3/a>)                                    \l
 L141">v1413/a>do {                                                                    \l
 L142">v1423/a>        3a href="+code=pr_debug" class="sref">pr_debug3/a>(3spav class="string">"l2tp_tunnel_inc_refcount: %s:%d %s: cnt=%d\n"3/spava,        \l
 L143">v1433/a>                 3a href="+code=__func__" class="sref">__func__3/a>,v3a href="+code=__LINE__" class="sref">__LINE__3/a>,v(3a href="+code=_t" class="sref">_t3/a>)->3a href="+code=nam>" class="sref">nam>3/a>,v                       \l
 L144">v1443/a>                 3a href="+code=atomic_read" class="sref">atomic_read3/a>(&3a href="+code=_t" class="sref">_t3/a>->3a href="+code=ref_count" class="sref">ref_count3/a>));                          \l
 L145">v1453/a>        3a href="+code=l2tp_tunnel_inc_refcount_1" class="sref">l2tp_tunnel_inc_refcount_13/a>(3a href="+code=_t" class="sref">_t3/a>);                                 \l
 L146">v1463/a>} while (0)l
 L147">v1473/a>#definev3a href="+code=l2tp_tunnel_dec_refcount" class="sref">l2tp_tunnel_dec_refcount3/a>(3a href="+code=_t" class="sref">_t3/a>)l
 L148">v1483/a>do {                                                                    \l
 L149">v1493/a>        3a href="+code=pr_debug" class="sref">pr_debug3/a>(3spav class="string">"l2tp_tunnel_dec_refcount: %s:%d %s: cnt=%d\n"3/spava,        \l
 L150">v1503/a>                 3a href="+code=__func__" class="sref">__func__3/a>,v3a href="+code=__LINE__" class="sref">__LINE__3/a>,v(3a href="+code=_t" class="sref">_t3/a>)->3a href="+code=nam>" class="sref">nam>3/a>,v                       \l
 L151">v1513/a>                 3a href="+code=atomic_read" class="sref">atomic_read3/a>(&3a href="+code=_t" class="sref">_t3/a>->3a href="+code=ref_count" class="sref">ref_count3/a>));                          \l
 L152">v1523/a>        3a href="+code=l2tp_tunnel_dec_refcount_1" class="sref">l2tp_tunnel_dec_refcount_13/a>(3a href="+code=_t" class="sref">_t3/a>);                                 \l
 L153">v1533/a>} while (0)l
 L154">v1543/a>#elsel
 L155">v1553/a>#definev3a href="+code=l2tp_tunnel_inc_refcount" class="sref">l2tp_tunnel_inc_refcount3/a>(3a href="+code=t" class="sref">t3/a>)v3a href="+code=l2tp_tunnel_inc_refcount_1" class="sref">l2tp_tunnel_inc_refcount_13/a>(3a href="+code=t" class="sref">t3/a>)l
 L156">v1563/a>#definev3a href="+code=l2tp_tunnel_dec_refcount" class="sref">l2tp_tunnel_dec_refcount3/a>(3a href="+code=t" class="sref">t3/a>)v3a href="+code=l2tp_tunnel_dec_refcount_1" class="sref">l2tp_tunnel_dec_refcount_13/a>(3a href="+code=t" class="sref">t3/a>)l
 L157">v1573/a>#endifl
 L158">v1583/a>l
 L159">v1593/a>3spav class="comment">/* Sess.12 hash global list for L2TPv3.3/spaval
 L160">v16  3spav class="comment"> * The sess.12_id SHOULD be random according to RFC3931, but several3/spaval
 L161">v1613/a>3spav class="comment"> * L2TP implementaon vs use incrementing sess.12_ids.  So we do a real3/spaval
 L162">v1623/a>3spav class="comment"> * hash on the sess.12_id, rather thav a simple bitmask.3/spaval
 L163">v1633/a>3spav class="comment"> */3/spaval
 L164">v1643/a>staticv3a href="+code=inline" class="sref">inline3/a> structv3a href="+code=hlist_head" class="sref">hlist_head3/a> *l
 L165">v1653/a>3a href="+code=l2tp_sess.12_id_hash_2" class="sref">l2tp_sess.12_id_hash_23/a>(structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> *3a href="+code=p2" class="sref">pn3/a>,v3a href="+code=u32" class="sref">u323/a> 3a href="+code=sess.12_id" class="sref">sess.12_id3/a>)l
 L166">v1663/a>{l
 L167">v1673/a>        return &3a href="+code=p2" class="sref">pn3/a>->3a href="+code=l2tp_sess.12_hlist" class="sref">l2tp_sess.12_hlist3/a>[3a href="+code=hash_32" class="sref">hash_323/a>(3a href="+code=sess.12_id" class="sref">sess.12_id3/a>,v3a href="+code=L2TP_HASH_BITS_2" class="sref">L2TP_HASH_BITS_23/a>)];l
 L168">v1683/a>l
 L169">v1693/a>}l
 L170">v17  l
 L171">v1713/a>3spav class="comment">/* Lookup the tunnel socket, poss.bly involving the fs code if the socket is3/spaval
 L172">v1723/a>3spav class="comment"> * owned by userspace.  A structvsock returned from this func4.12"must be3/spaval
 L173">v1733/a>3spav class="comment"> * released using l2tp_tunnel_sock_put once you're donevwith it.3/spaval
 L174">v1743/a>3spav class="comment"> */3/spaval
 L175">v1753/a>structv3a href="+code=sock" class="sref">sock3/a> *3a href="+code=l2tp_tunnel_sock_lookup" class="sref">l2tp_tunnel_sock_lookup3/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>)l
 L176">v1763/a>{l
 L177">v1773/a>        intv3a href="+code=err" class="sref">err3/a> = 0;l
 L178">v1783/a>        structv3a href="+code=socket" class="sref">socket3/a> *3a href="+code=sock" class="sref">sock3/a> =v3a href="+code=NULL" class="sref">NULL3/a>;l
 L179">v1793/a>        structv3a href="+code=sock" class="sref">sock3/a> *3a href="+code=sk" class="sref">sk3/a> =v3a href="+code=NULL" class="sref">NULL3/a>;l
 L180">v18  l
 L181">v1813/a>        if (!3a href="+code=tunnel" class="sref">tunnel3/a>)l
 L182">v1823/a>                goto 3a href="+code=out" class="sref">out3/a>;l
 L183">v1833/a>l
 L184">v1843/a>        if (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=fd" class="sref">fd3/a> >= 0) {l
 L185">v1853/a>                3spav class="comment">/* Socket is owned by userspace, who might be in the process3/spaval
 L186">v1863/a>3spav class="comment">                 * of closing it.  Look the socket up using the fd to ensure3/spaval
 L187">v1873/a>3spav class="comment">                 * consistency.3/spaval
 L188">v1883/a>3spav class="comment">                 */3/spaval
 L189">v1893/a>                3a href="+code=sock" class="sref">sock3/a> =v3a href="+code=sockfd_lookup" class="sref">sockfd_lookup3/a>(3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=fd" class="sref">fd3/a>, &3a href="+code=err" class="sref">err3/a>);l
 L190">v1903/a>                if (3a href="+code=sock" class="sref">sock3/a>)l
 L191">v1913/a>                        3a href="+code=sk" class="sref">sk3/a> =v3a href="+code=sock" class="sref">sock3/a>->3a href="+code=sk" class="sref">sk3/a>;l
 L192">v1923/a>        } else {l
 L193">v1933/a>                3spav class="comment">/* Socket is owned by kernelspace */3/spaval
 L194">v1943/a>                3a href="+code=sk" class="sref">sk3/a> =v3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=sock" class="sref">sock3/a>;l
 L195">v1953/a>        }l
 L196">v1963/a>l
 L197">v1973/a>3a href="+code=out" class="sref">out3/a>:l
 L198">v1983/a>        return 3a href="+code=sk" class="sref">sk3/a>;l
 L199">v1993/a>}l
 L200">v2003/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_tunnel_sock_lookup" class="sref">l2tp_tunnel_sock_lookup3/a>);l
 L201">v2013/a>l
 L202">v2023/a>3spav class="comment">/* Drop a reference to a tunnel socket obtained via. l2tp_tunnel_sock_put */3/spaval
 L203">v2033/a>void 3a href="+code=l2tp_tunnel_sock_put" class="sref">l2tp_tunnel_sock_put3/a>(structv3a href="+code=sock" class="sref">sock3/a> *3a href="+code=sk" class="sref">sk3/a>)l
 L204">v204 {l
 L205">v2053/a>        structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a> =v3a href="+code=l2tp_sock_to_tunnel" class="sref">l2tp_sock_to_tunnel3/a>(3a href="+code=sk" class="sref">sk3/a>);l
 L206">v2063/a>        if (3a href="+code=tunnel" class="sref">tunnel3/a>) {l
 L207">v2073/a>                if (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=fd" class="sref">fd3/a> >= 0) {l
 L208">v2083/a>                        3spav class="comment">/* Socket is owned by userspace */3/spaval
 L209">v2093/a>                        3a href="+code=sockfd_put" class="sref">sockfd_put3/a>(3a href="+code=sk" class="sref">sk3/a>->3a href="+code=sk_socket" class="sref">sk_socket3/a>);l
 L210">v2103/a>                }l
 L211">v2113/a>                3a href="+code=sock_put" class="sref">sock_put3/a>(3a href="+code=sk" class="sref">sk3/a>);l
 L212">v2123/a>        }l
 L213">v2133/a>}l
 L214">v2143/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_tunnel_sock_put" class="sref">l2tp_tunnel_sock_put3/a>);l
 L215">v2153/a>l
 L216">v2163/a>3spav class="comment">/* Lookup a sess.12 by id in the global sess.12 list3/spaval
 L217">v2173/a>3spav class="comment"> */3/spaval
 L218">v2183/a>staticvstructv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=l2tp_sess.12_find_2" class="sref">l2tp_sess.12_find_23/a>(structv3a href="+code=net" class="sref">net3/a> *3a href="+code=net" class="sref">net3/a>,v3a href="+code=u32" class="sref">u323/a> 3a href="+code=sess.12_id" class="sref">sess.12_id3/a>)l
 L219">v2193/a>{l
 L220">v22          structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> *3a href="+code=p2" class="sref">pn3/a> =v3a href="+code=l2tp_pernet" class="sref">l2tp_pernet3/a>(3a href="+code=net" class="sref">net3/a>);l
 L221">v221         structv3a href="+code=hlist_head" class="sref">hlist_head3/a> *3a href="+code=sess.12_list" class="sref">sess.12_list3/a> =l
 L222">v2223/a>                3a href="+code=l2tp_sess.12_id_hash_2" class="sref">l2tp_sess.12_id_hash_23/a>(3a href="+code=p2" class="sref">pn3/a>,v3a href="+code=sess.12_id" class="sref">sess.12_id3/a>);l
 L223">v223         structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>;l
 L224">v224         structv3a href="+code=hlist_node" class="sref">hlist_node3/a> *3a href="+code=walk" class="sref">walk3/a>;l
 L225">v2253/a>l
 L226">v2263/a>        3a href="+code=rcu_read_lock_bh" class="sref">rcu_read_lock_bh3/a>();l
 L227">v2273/a>        3a href="+code=hlist_for_each_entry_rcu" class="sref">hlist_for_each_entry_rcu3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=walk" class="sref">walk3/a>,v3a href="+code=sess.12_list" class="sref">sess.12_list3/a>,v3a href="+code=global_hlist" class="sref">global_hlist3/a>) {l
 L228">v2283/a>                if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=sess.12_id" class="sref">sess.12_id3/a> ==v3a href="+code=sess.12_id" class="sref">sess.12_id3/a>) {l
 L229">v2293/a>                        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L230">v2303/a>                        return 3a href="+code=sess.12" class="sref">sess.123/a>;l
 L231">v2313/a>                }l
 L232">v2323/a>        }l
 L233">v2333/a>        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L234">v234 l
 L235">v2353/a>        return 3a href="+code=NULL" class="sref">NULL3/a>;l
 L236">v2363/a>}l
 L237">v2373/a>l
 L238">v2383/a>3spav class="comment">/* Sess.12 hash list.3/spaval
 L239">v2393/a>3spav class="comment"> * The sess.12_id SHOULD be random according to RFC2661, but several3/spaval
 L240">v24  3spav class="comment"> * L2TP implementaon vs (Cisco and Microsoft) use incrementing3/spaval
 L241">v2413/a>3spav class="comment"> * sess.12_ids.  So we do a real hash on the sess.12_id, rather thav a3/spaval
 L242">v2423/a>3spav class="comment"> * simple bitmask.3/spaval
 L243">v2433/a>3spav class="comment"> */3/spaval
 L244">v2443/a>staticv3a href="+code=inline" class="sref">inline3/a> structv3a href="+code=hlist_head" class="sref">hlist_head3/a> *l
 L245">v2453/a>3a href="+code=l2tp_sess.12_id_hash" class="sref">l2tp_sess.12_id_hash3/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>,v3a href="+code=u32" class="sref">u323/a> 3a href="+code=sess.12_id" class="sref">sess.12_id3/a>)l
 L246">v2463/a>{l
 L247">v2473/a>        return &3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=sess.12_hlist" class="sref">sess.12_hlist3/a>[3a href="+code=hash_32" class="sref">hash_323/a>(3a href="+code=sess.12_id" class="sref">sess.12_id3/a>,v3a href="+code=L2TP_HASH_BITS" class="sref">L2TP_HASH_BITS3/a>)];l
 L248">v2483/a>}l
 L249">v2493/a>l
 L250">v25  3spav class="comment">/* Lookup a sess.12 by id3/spaval
 L251">v2513/a>3spav class="comment"> */3/spaval
 L252">v2523/a>structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=l2tp_sess.12_find" class="sref">l2tp_sess.12_find3/a>(structv3a href="+code=net" class="sref">net3/a> *3a href="+code=net" class="sref">net3/a>,vstructv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>,v3a href="+code=u32" class="sref">u323/a> 3a href="+code=sess.12_id" class="sref">sess.12_id3/a>)l
 L253">v2533/a>{l
 L254">v254         structv3a href="+code=hlist_head" class="sref">hlist_head3/a> *3a href="+code=sess.12_list" class="sref">sess.12_list3/a>;l
 L255">v2553/a>        structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>;l
 L256">v256         structv3a href="+code=hlist_node" class="sref">hlist_node3/a> *3a href="+code=walk" class="sref">walk3/a>;l
 L257">v2573/a>l
 L258">v2583/a>        3spav class="comment">/* In L2TPv3, sess.12_ids are unique over all tunnels and we3/spaval
 L259">v2593/a>3spav class="comment">         * sometimes need to look them up before we know the3/spaval
 L260">v26  3spav class="comment">         * tunnel.3/spaval
 L261">v2613/a>3spav class="comment">         */3/spaval
 L262">v2623/a>        if (3a href="+code=tunnel" class="sref">tunnel3/a> ==v3a href="+code=NULL" class="sref">NULL3/a>)l
 L263">v2633/a>                return 3a href="+code=l2tp_sess.12_find_2" class="sref">l2tp_sess.12_find_23/a>(3a href="+code=net" class="sref">net3/a>,v3a href="+code=sess.12_id" class="sref">sess.12_id3/a>);l
 L264">v264 l
 L265">v2653/a>        3a href="+code=sess.12_list" class="sref">sess.12_list3/a> = 3a href="+code=l2tp_sess.12_id_hash" class="sref">l2tp_sess.12_id_hash3/a>(3a href="+code=tunnel" class="sref">tunnel3/a>,v3a href="+code=sess.12_id" class="sref">sess.12_id3/a>);l
 L266">v2663/a>        3a href="+code=read_lock_bh" class="sref">read_lock_bh3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=hlist_lock" class="sref">hlist_lock3/a>);l
 L267">v2673/a>        3a href="+code=hlist_for_each_entry" class="sref">hlist_for_each_entry3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=walk" class="sref">walk3/a>,v3a href="+code=sess.12_list" class="sref">sess.12_list3/a>,v3a href="+code=hlist" class="sref">hlist3/a>) {l
 L268">v2683/a>                if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=sess.12_id" class="sref">sess.12_id3/a> ==v3a href="+code=sess.12_id" class="sref">sess.12_id3/a>) {l
 L269">v2693/a>                        3a href="+code=read_unlock_bh" class="sref">read_unlock_bh3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=hlist_lock" class="sref">hlist_lock3/a>);l
 L270">v2703/a>                        return 3a href="+code=sess.12" class="sref">sess.123/a>;l
 L271">v2713/a>                }l
 L272">v2723/a>        }l
 L273">v2733/a>        3a href="+code=read_unlock_bh" class="sref">read_unlock_bh3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=hlist_lock" class="sref">hlist_lock3/a>);l
 L274">v274 l
 L275">v2753/a>        return 3a href="+code=NULL" class="sref">NULL3/a>;l
 L276">v2763/a>}l
 L277">v2773/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_sess.12_find" class="sref">l2tp_sess.12_find3/a>);l
 L278">v2783/a>l
 L279">v2793/a>structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=l2tp_sess.12_find_nth" class="sref">l2tp_sess.12_find_nth3/a>(structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>,vintv3a href="+code=nth" class="sref">nth3/a>)l
 L280">v2803/a>{l
 L281">v2813/a>        intv3a href="+code=hash" class="sref">hash3/a>;l
 L282">v2823/a>        structv3a href="+code=hlist_node" class="sref">hlist_node3/a> *3a href="+code=walk" class="sref">walk3/a>;l
 L283">v283         structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>;l
 L284">v2843/a>        intv3a href="+code=count" class="sref">count3/a> = 0;l
 L285">v2853/a>l
 L286">v2863/a>        3a href="+code=read_lock_bh" class="sref">read_lock_bh3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=hlist_lock" class="sref">hlist_lock3/a>);l
 L287">v2873/a>        for (3a href="+code=hash" class="sref">hash3/a> = 0;v3a href="+code=hash" class="sref">hash3/a> <v3a href="+code=L2TP_HASH_SIZE" class="sref">L2TP_HASH_SIZE3/a>;v3a href="+code=hash" class="sref">hash3/a>++) {l
 L288">v2883/a>                3a href="+code=hlist_for_each_entry" class="sref">hlist_for_each_entry3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=walk" class="sref">walk3/a>,v&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=sess.12_hlist" class="sref">sess.12_hlist3/a>[3a href="+code=hash" class="sref">hash3/a>],v3a href="+code=hlist" class="sref">hlist3/a>) {l
 L289">v2893/a>                        if (++3a href="+code=count" class="sref">count3/a> >v3a href="+code=nth" class="sref">nth3/a>) {l
 L290">v2903/a>                                3a href="+code=read_unlock_bh" class="sref">read_unlock_bh3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=hlist_lock" class="sref">hlist_lock3/a>);l
 L291">v2913/a>                                return 3a href="+code=sess.12" class="sref">sess.123/a>;l
 L292">v2923/a>                        }l
 L293">v2933/a>                }l
 L294">v2943/a>        }l
 L295">v2953/a>l
 L296">v2963/a>        3a href="+code=read_unlock_bh" class="sref">read_unlock_bh3/a>(&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=hlist_lock" class="sref">hlist_lock3/a>);l
 L297">v2973/a>l
 L298">v2983/a>        return 3a href="+code=NULL" class="sref">NULL3/a>;l
 L299">v2993/a>}l
 L300">v3003/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_sess.12_find_nth" class="sref">l2tp_sess.12_find_nth3/a>);l
 L301">v3013/a>l
 L302">v3023/a>3spav class="comment">/* Lookup a sess.12 by interface nam>.3/spaval
 L303">v3033/a>3spav class="comment"> * This is very inefficient but is only used by management interfaces.3/spaval
 L304">v3043/a>3spav class="comment"> */3/spaval
 L305">v3053/a>structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=l2tp_sess.12_find_by_ifnam>" class="sref">l2tp_sess.12_find_by_ifnam>3/a>(structv3a href="+code=net" class="sref">net3/a> *3a href="+code=net" class="sref">net3/a>,vchar *3a href="+code=ifnam>" class="sref">ifnam>3/a>)l
 L306">v3063/a>{l
 L307">v3073/a>        structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> *3a href="+code=p2" class="sref">pn3/a> =v3a href="+code=l2tp_pernet" class="sref">l2tp_pernet3/a>(3a href="+code=net" class="sref">net3/a>);l
 L308">v3083/a>        intv3a href="+code=hash" class="sref">hash3/a>;l
 L309">v3093/a>        structv3a href="+code=hlist_node" class="sref">hlist_node3/a> *3a href="+code=walk" class="sref">walk3/a>;l
 L310">v31          structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>;l
 L311">v3113/a>l
 L312">v3123/a>        3a href="+code=rcu_read_lock_bh" class="sref">rcu_read_lock_bh3/a>();l
 L313">v3133/a>        for (3a href="+code=hash" class="sref">hash3/a> = 0;v3a href="+code=hash" class="sref">hash3/a> <v3a href="+code=L2TP_HASH_SIZE_2" class="sref">L2TP_HASH_SIZE_23/a>;v3a href="+code=hash" class="sref">hash3/a>++) {l
 L314">v3143/a>                3a href="+code=hlist_for_each_entry_rcu" class="sref">hlist_for_each_entry_rcu3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=walk" class="sref">walk3/a>,v&3a href="+code=p2" class="sref">pn3/a>->3a href="+code=l2tp_sess.12_hlist" class="sref">l2tp_sess.12_hlist3/a>[3a href="+code=hash" class="sref">hash3/a>],v3a href="+code=global_hlist" class="sref">global_hlist3/a>) {l
 L315">v3153/a>                        if (!3a href="+code=strcmp" class="sref">strcmp3/a>(3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=ifnam>" class="sref">ifnam>3/a>,v3a href="+code=ifnam>" class="sref">ifnam>3/a>)) {l
 L316">v3163/a>                                3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L317">v3173/a>                                return 3a href="+code=sess.12" class="sref">sess.123/a>;l
 L318">v3183/a>                        }l
 L319">v3193/a>                }l
 L320">v32          }l
 L321">v3213/a>l
 L322">v3223/a>        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L323">v3233/a>l
 L324">v324         return 3a href="+code=NULL" class="sref">NULL3/a>;l
 L325">v3253/a>}l
 L326">v3263/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_sess.12_find_by_ifnam>" class="sref">l2tp_sess.12_find_by_ifnam>3/a>);l
 L327">v3273/a>l
 L328">v3283/a>3spav class="comment">/* Lookup a tunnel by id3/spaval
 L329">v3293/a>3spav class="comment"> */3/spaval
 L330">v3303/a>structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=l2tp_tunnel_find" class="sref">l2tp_tunnel_find3/a>(structv3a href="+code=net" class="sref">net3/a> *3a href="+code=net" class="sref">net3/a>,v3a href="+code=u32" class="sref">u323/a> 3a href="+code=tunnel_id" class="sref">tunnel_id3/a>)l
 L331">v3313/a>{l
 L332">v3323/a>        structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>;l
 L333">v333         structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> *3a href="+code=p2" class="sref">pn3/a> =v3a href="+code=l2tp_pernet" class="sref">l2tp_pernet3/a>(3a href="+code=net" class="sref">net3/a>);l
 L334">v334 l
 L335">v3353/a>        3a href="+code=rcu_read_lock_bh" class="sref">rcu_read_lock_bh3/a>();l
 L336">v3363/a>        3a href="+code=list_for_each_entry_rcu" class="sref">list_for_each_entry_rcu3/a>(3a href="+code=tunnel" class="sref">tunnel3/a>,v&3a href="+code=p2" class="sref">pn3/a>->3a href="+code=l2tp_tunnel_list" class="sref">l2tp_tunnel_list3/a>,v3a href="+code=list" class="sref">list3/a>) {l
 L337">v3373/a>                if (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=tunnel_id" class="sref">tunnel_id3/a> ==v3a href="+code=tunnel_id" class="sref">tunnel_id3/a>) {l
 L338">v3383/a>                        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L339">v3393/a>                        return 3a href="+code=tunnel" class="sref">tunnel3/a>;l
 L340">v3403/a>                }l
 L341">v3413/a>        }l
 L342">v3423/a>        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L343">v3433/a>l
 L344">v344         return 3a href="+code=NULL" class="sref">NULL3/a>;l
 L345">v3453/a>}l
 L346">v3463/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_tunnel_find" class="sref">l2tp_tunnel_find3/a>);l
 L347">v3473/a>l
 L348">v3483/a>structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=l2tp_tunnel_find_nth" class="sref">l2tp_tunnel_find_nth3/a>(structv3a href="+code=net" class="sref">net3/a> *3a href="+code=net" class="sref">net3/a>,vintv3a href="+code=nth" class="sref">nth3/a>)l
 L349">v3493/a>{l
 L350">v35          structv3a href="+code=l2tp_net" class="sref">l2tp_net3/a> *3a href="+code=p2" class="sref">pn3/a> =v3a href="+code=l2tp_pernet" class="sref">l2tp_pernet3/a>(3a href="+code=net" class="sref">net3/a>);l
 L351">v351         structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a>;l
 L352">v3523/a>        intv3a href="+code=count" class="sref">count3/a> = 0;l
 L353">v3533/a>l
 L354">v354         3a href="+code=rcu_read_lock_bh" class="sref">rcu_read_lock_bh3/a>();l
 L355">v3553/a>        3a href="+code=list_for_each_entry_rcu" class="sref">list_for_each_entry_rcu3/a>(3a href="+code=tunnel" class="sref">tunnel3/a>,v&3a href="+code=p2" class="sref">pn3/a>->3a href="+code=l2tp_tunnel_list" class="sref">l2tp_tunnel_list3/a>,v3a href="+code=list" class="sref">list3/a>) {l
 L356">v3563/a>                if (++3a href="+code=count" class="sref">count3/a> >v3a href="+code=nth" class="sref">nth3/a>) {l
 L357">v3573/a>                        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L358">v3583/a>                        return 3a href="+code=tunnel" class="sref">tunnel3/a>;l
 L359">v3593/a>                }l
 L360">v36          }l
 L361">v3613/a>l
 L362">v3623/a>        3a href="+code=rcu_read_unlock_bh" class="sref">rcu_read_unlock_bh3/a>();l
 L363">v3633/a>l
 L364">v364         return 3a href="+code=NULL" class="sref">NULL3/a>;l
 L365">v3653/a>}l
 L366">v3663/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=l2tp_tunnel_find_nth" class="sref">l2tp_tunnel_find_nth3/a>);l
 L367">v3673/a>l
 L368">v3683/a>3spav class="comment">/*****************************************************************************3/spaval
 L369">v3693/a>3spav class="comment"> * Receive data handling3/spaval
 L370">v37  3spav class="comment"> *****************************************************************************/3/spaval
 L371">v3713/a>l
 L372">v3723/a>3spav class="comment">/* Queue a skb in order. We come here only if the skb has an L2TP sequence3/spaval
 L373">v3733/a>3spav class="comment"> * number.3/spaval
 L374">v3743/a>3spav class="comment"> */3/spaval
 L375">v3753/a>staticvvoid 3a href="+code=l2tp_recv_queue_skb" class="sref">l2tp_recv_queue_skb3/a>(structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>,vstructv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>)l
 L376">v3763/a>{l
 L377">v3773/a>        structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skbp" class="sref">skbp3/a>;l
 L378">v3783/a>        structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=tmp" class="sref">tmp3/a>;l
 L379">v3793/a>        3a href="+code=u32" class="sref">u323/a> 3a href="+code=ns" class="sref">ns3/a> =v3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a>;l
 L380">v38          structv3a href="+code=l2tp_stats" class="sref">l2tp_stats3/a> *3a href="+code=sstats" class="sref">sstats3/a>;l
 L381">v3813/a>l
 L382">v3823/a>        3a href="+code=spin_lock_bh" class="sref">spin_lock_bh3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>.3a href="+code=lock" class="sref">lock3/a>);l
 L383">v3833/a>        3a href="+code=sstats" class="sref">sstats3/a> =v&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=stats" class="sref">stats3/a>;l
 L384">v384         3a href="+code=skb_queue_walk_saf>" class="sref">skb_queue_walk_saf>3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>,v3a href="+code=skbp" class="sref">skbp3/a>,v3a href="+code=tmp" class="sref">tmp3/a>) {l
 L385">v3853/a>                if (3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skbp" class="sref">skbp3/a>)->3a href="+code=ns" class="sref">ns3/a> >v3a href="+code=ns" class="sref">ns3/a>) {l
 L386">v3863/a>                        3a href="+code=__skb_queue_before" class="sref">__skb_queue_before3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>,v3a href="+code=skbp" class="sref">skbp3/a>,v3a href="+code=skb" class="sref">skb3/a>);l
 L387">v3873/a>                        3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L388">v3883/a>                                 3spav class="string">"%s: pkt %hu,vinserted before %hu,vreorder_q len=%d\n"3/spava,l
 L389">v3893/a>                                 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=ns" class="sref">ns3/a>, 3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skbp" class="sref">skbp3/a>)->3a href="+code=ns" class="sref">ns3/a>,l
 L390">v3903/a>                                 3a href="+code=skb_queue_len" class="sref">skb_queue_len3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>));l
 L391">v3913/a>                        3a href="+code=u64_stats_update_begi2" class="sref">u64_stats_update_begi23/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L392">v3923/a>                        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_oos_packets" class="sref">rx_oos_packets3/a>++;l
 L393">v3933/a>                        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L394">v3943/a>                        goto 3a href="+code=out" class="sref">out3/a>;l
 L395">v3953/a>                }l
 L396">v3963/a>        }l
 L397">v3973/a>l
 L398">v3983/a>        3a href="+code=__skb_queue_tail" class="sref">__skb_queue_tail3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>,v3a href="+code=skb" class="sref">skb3/a>);l
 L399">v3993/a>l
 L400">v4003/a>3a href="+code=out" class="sref">out3/a>:l
 L401">v4013/a>        3a href="+code=spin_unlock_bh" class="sref">spin_unlock_bh3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>.3a href="+code=lock" class="sref">lock3/a>);l
 L402">v4023/a>}l
 L403">v4033/a>l
 L404">v4043/a>3spav class="comment">/* Dequeue a single skb.3/spaval
 L405">v4053/a>3spav class="comment"> */3/spaval
 L406">v4063/a>staticvvoid 3a href="+code=l2tp_recv_dequeue_skb" class="sref">l2tp_recv_dequeue_skb3/a>(structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>,vstructv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>)l
 L407">v4073/a>{l
 L408">v4083/a>        structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a> = 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=tunnel" class="sref">tunnel3/a>;l
 L409">v4093/a>        intv3a href="+code=length" class="sref">length3/a> =v3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=length" class="sref">length3/a>;l
 L410">v41          structv3a href="+code=l2tp_stats" class="sref">l2tp_stats3/a> *3a href="+code=tstats" class="sref">tstats3/a>, *3a href="+code=sstats" class="sref">sstats3/a>;l
 L411">v4113/a>l
 L412">v4123/a>        3spav class="comment">/* We're about to requeue the skb,vso return resources3/spaval
 L413">v4133/a>3spav class="comment">         * to its current owner (a socket receive buffer).3/spaval
 L414">v4143/a>3spav class="comment">         */3/spaval
 L415">v4153/a>        3a href="+code=skb_orphan" class="sref">skb_orphan3/a>(3a href="+code=skb" class="sref">skb3/a>);l
 L416">v4163/a>l
 L417">v4173/a>        3a href="+code=tstats" class="sref">tstats3/a> =v&3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=stats" class="sref">stats3/a>;l
 L418">v4183/a>        3a href="+code=u64_stats_update_begi2" class="sref">u64_stats_update_begi23/a>(&3a href="+code=tstats" class="sref">tstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L419">v4193/a>        3a href="+code=sstats" class="sref">sstats3/a> =v&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=stats" class="sref">stats3/a>;l
 L420">v42          3a href="+code=u64_stats_update_begi2" class="sref">u64_stats_update_begi23/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L421">v4213/a>        3a href="+code=tstats" class="sref">tstats3/a>->3a href="+code=rx_packets" class="sref">rx_packets3/a>++;l
 L422">v4223/a>        3a href="+code=tstats" class="sref">tstats3/a>->3a href="+code=rx_bytes" class="sref">rx_bytes3/a> +=v3a href="+code=length" class="sref">length3/a>;l
 L423">v4233/a>        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_packets" class="sref">rx_packets3/a>++;l
 L424">v424         3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_bytes" class="sref">rx_bytes3/a> +=v3a href="+code=length" class="sref">length3/a>;l
 L425">v4253/a>        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=tstats" class="sref">tstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L426">v4263/a>        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L427">v4273/a>l
 L428">v4283/a>        if (3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>) {l
 L429">v4293/a>                3spav class="comment">/* Bump our Nr */3/spaval
 L430">v4303/a>                3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>++;l
 L431">v4313/a>                if (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a> ==v3a href="+code=L2TP_HDR_VER_2" class="sref">L2TP_HDR_VER_23/a>)l
 L432">v4323/a>                        3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>v&= 0xffff;l
 L433">v4333/a>                elsel
 L434">v4343/a>                        3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>v&= 0xffffff;l
 L435">v4353/a>l
 L436">v4363/a>                3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>, 3spav class="string">"%s: updated nr to %hu\n"3/spava,l
 L437">v4373/a>                         3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>);l
 L438">v4383/a>        }l
 L439">v4393/a>l
 L440">v4403/a>        3spav class="comment">/* call private receive handler */3/spaval
 L441">v4413/a>        if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=recv_skb" class="sref">recv_skb3/a> !=v3a href="+code=NULL" class="sref">NULL3/a>)l
 L442">v4423/a>                (*3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=recv_skb" class="sref">recv_skb3/a>)(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=length" class="sref">length3/a>);l
 L443">v4433/a>        elsel
 L444">v4443/a>                3a href="+code=kfree_skb" class="sref">kfree_skb3/a>(3a href="+code=skb" class="sref">skb3/a>);l
 L445">v4453/a>l
 L446">v4463/a>        if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=deref" class="sref">deref3/a>)l
 L447">v4473/a>                (*3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=deref" class="sref">deref3/a>)(3a href="+code=sess.12" class="sref">sess.123/a>);l
 L448">v4483/a>}l
 L449">v4493/a>l
 L450">v45  3spav class="comment">/* Dequeue skbs from the sess.12'svreorder_q, subject to packet order.3/spaval
 L451">v451 3spav class="comment"> * Skbs that have been in the queue for too long are simply discarded.3/spaval
 L452">v4523/a>3spav class="comment"> */3/spaval
 L453">v4533/a>staticvvoid 3a href="+code=l2tp_recv_dequeue" class="sref">l2tp_recv_dequeue3/a>(structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>)l
 L454">v454 {l
 L455">v4553/a>        structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>;l
 L456">v4563/a>        structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=tmp" class="sref">tmp3/a>;l
 L457">v4573/a>        structv3a href="+code=l2tp_stats" class="sref">l2tp_stats3/a> *3a href="+code=sstats" class="sref">sstats3/a>;l
 L458">v4583/a>l
 L459">v4593/a>        3spav class="comment">/* If the pkt at the head of the queue has the nr that we3/spaval
 L460">v46  3spav class="comment">         * expect to send up next, dequeue it and any other3/spaval
 L461">v461 3spav class="comment">         * in-sequence packets behind it.3/spaval
 L462">v4623/a>3spav class="comment">         */3/spaval
 L463">v4633/a>3a href="+code=start" class="sref">start3/a>:l
 L464">v464         3a href="+code=spin_lock_bh" class="sref">spin_lock_bh3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>.3a href="+code=lock" class="sref">lock3/a>);l
 L465">v4653/a>        3a href="+code=sstats" class="sref">sstats3/a> =v&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=stats" class="sref">stats3/a>;l
 L466">v4663/a>        3a href="+code=skb_queue_walk_saf>" class="sref">skb_queue_walk_saf>3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>,v3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=tmp" class="sref">tmp3/a>) {l
 L467">v4673/a>                if (3a href="+code=time_after" class="sref">time_after3/a>(3a href="+code=jiffies" class="sref">jiffies3/a>, 3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=expires" class="sref">expires3/a>)) {l
 L468">v4683/a>                        3a href="+code=u64_stats_update_begi2" class="sref">u64_stats_update_begi23/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L469">v4693/a>                        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_seq_discards" class="sref">rx_seq_discards3/a>++;l
 L470">v4703/a>                        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_errors" class="sref">rx_errors3/a>++;l
 L471">v4713/a>                        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L472">v4723/a>                        3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L473">v4733/a>                                 3spav class="string">"%s: oos pkt %u len %d discarded (too old), waiting for %u,vreorder_q_len=%d\n"3/spava,l
 L474">v4743/a>                                 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a>,l
 L475">v4753/a>                                 3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=length" class="sref">length3/a>,v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>,l
 L476">v4763/a>                                 3a href="+code=skb_queue_len" class="sref">skb_queue_len3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>));l
 L477">v4773/a>                        3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_skip" class="sref">reorder_skip3/a> =v1;l
 L478">v4783/a>                        3a href="+code=__skb_unlink" class="sref">__skb_unlink3/a>(3a href="+code=skb" class="sref">skb3/a>,v&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>);l
 L479">v4793/a>                        3a href="+code=kfree_skb" class="sref">kfree_skb3/a>(3a href="+code=skb" class="sref">skb3/a>);l
 L480">v4803/a>                        if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=deref" class="sref">deref3/a>)l
 L481">v4813/a>                                (*3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=deref" class="sref">deref3/a>)(3a href="+code=sess.12" class="sref">sess.123/a>);l
 L482">v4823/a>                        continue;l
 L483">v4833/a>                }l
 L484">v484 l
 L485">v4853/a>                if (3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>) {l
 L486">v4863/a>                        if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_skip" class="sref">reorder_skip3/a>) {l
 L487">v4873/a>                                3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L488">v4883/a>                                         3spav class="string">"%s: advancing nr to next pkt: %u -> %u"3/spava,l
 L489">v4893/a>                                         3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>,l
 L490">v4903/a>                                         3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a>);l
 L491">v4913/a>                                3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_skip" class="sref">reorder_skip3/a> =v0;l
 L492">v4923/a>                                3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>v=v3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a>;l
 L493">v4933/a>                        }l
 L494">v4943/a>                        if (3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a> !=v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>) {l
 L495">v4953/a>                                3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L496">v4963/a>                                         3spav class="string">"%s: holding oos pkt %u len %d, waiting for %u,vreorder_q_len=%d\n"3/spava,l
 L497">v4973/a>                                         3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a>,l
 L498">v4983/a>                                         3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=length" class="sref">length3/a>,v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>,l
 L499">v4993/a>                                         3a href="+code=skb_queue_len" class="sref">skb_queue_len3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>));l
 L500">v5003/a>                                goto 3a href="+code=out" class="sref">out3/a>;l
 L501">v5013/a>                        }l
 L502">v5023/a>                }l
 L503">v5033/a>                3a href="+code=__skb_unlink" class="sref">__skb_unlink3/a>(3a href="+code=skb" class="sref">skb3/a>,v&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>);l
 L504">v504 l
 L505">v5053/a>                3spav class="comment">/* Process the skb. We release the queue lock while we3/spaval
 L506">v5063/a>3spav class="comment">                 * dovso to let other contexts process the queue.3/spaval
 L507">v5073/a>3spav class="comment">                 */3/spaval
 L508">v5083/a>                3a href="+code=spin_unlock_bh" class="sref">spin_unlock_bh3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>.3a href="+code=lock" class="sref">lock3/a>);l
 L509">v5093/a>                3a href="+code=l2tp_recv_dequeue_skb" class="sref">l2tp_recv_dequeue_skb3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=skb" class="sref">skb3/a>);l
 L510">v5103/a>                goto 3a href="+code=start" class="sref">start3/a>;l
 L511">v5113/a>        }l
 L512">v5123/a>l
 L513">v5133/a>3a href="+code=out" class="sref">out3/a>:l
 L514">v514         3a href="+code=spin_unlock_bh" class="sref">spin_unlock_bh3/a>(&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=reorder_q" class="sref">reorder_q3/a>.3a href="+code=lock" class="sref">lock3/a>);l
 L515">v5153/a>}l
 L516">v5163/a>l
 L517">v5173/a>staticv3a href="+code=inline" class="sref">inline  intv3a href="+code=l2tp_verify_udp_checksum" class="sref">l2tp_verify_udp_checksum3/a>(structv3a href="+code=sock" class="sref">sock3/a> *3a href="+code=sk" class="sref">sk3/a>,l
 L518">v5183/a>                                           structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>)l
 L519">v5193/a>{l
 L520">v52          structv3a href="+code=udphdr" class="sref">udphdr3/a> *3a href="+code=uh" class="sref">uh3/a> =v3a href="+code=udp_hdr" class="sref">udp_hdr3/a>(3a href="+code=skb" class="sref">skb3/a>);l
 L521">v5213/a>        3a href="+code=u16" class="sref">u163/a> 3a href="+code=ulen" class="sref">ulen3/a> =v3a href="+code=ntohs" class="sref">ntohs3/a>(3a href="+code=uh" class="sref">uh3/a>->3a href="+code=len" class="sref">len3/a>);l
 L522">v5223/a>        3a href="+code=__wsum" class="sref">__wsum3/a> 3a href="+code=psum" class="sref">psum3/a>;l
 L523">v5233/a>l
 L524">v524         if (3a href="+code=sk" class="sref">sk3/a>->3a href="+code=sk_no_check" class="sref">sk_no_check  || 3a href="+code=skb_csum_unnecessary" class="sref">skb_csum_unnecessary3/a>(3a href="+code=skb" class="sref">skb3/a>))l
 L525">v5253/a>                return 0;l
 L526">v5263/a>l
 L527">v5273/a>#if 3a href="+code=IS_ENABLED" class="sref">IS_ENABLED3/a>(3a href="+code=CONFIG_IPV6" class="sref">CONFIG_IPV63/a>)l
 L528">v5283/a>        if (3a href="+code=sk" class="sref">sk3/a>->3a href="+code=sk_family" class="sref">sk_family3/a> ==v3a href="+code=PF_INET6" class="sref">PF_INET63/a>) {l
 L529">v5293/a>                if (!3a href="+code=uh" class="sref">uh3/a>->3a href="+code=check" class="sref">check ) {l
 L530">v5303/a>                        3a href="+code=LIMIT_NETDEBUG" class="sref">LIMIT_NETDEBUG3/a>(3a href="+code=KERN_INFO" class="sref">KERN_INFO3/a> 3spav class="string">"L2TP: IPv6: checksum is 0\n"3/spava);l
 L531">v5313/a>                        return 1;l
 L532">v5323/a>                }l
 L533">v5333/a>                if ((3a href="+code=skb" class="sref">skb3/a>->3a href="+code=ip_summed" class="sref">ip_summed3/a> ==v3a href="+code=CHECKSUM_COMPLETE" class="sref">CHECKSUM_COMPLETE ) &&l
 L534">v5343/a>                    !3a href="+code=csum_ipv6_magic" class="sref">csum_ipv6_magic3/a>(&3a href="+code=ipv6_hdr" class="sref">ipv6_hdr3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=saddr" class="sref">saddr3/a>,l
 L535">v5353/a>                                     &3a href="+code=ipv6_hdr" class="sref">ipv6_hdr3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=daddr" class="sref">daddr3/a>, 3a href="+code=ulen" class="sref">ulen3/a>,l
 L536">v5363/a>                                     3a href="+code=IPPROTO_UDP" class="sref">IPPROTO_UDP3/a>, 3a href="+code=skb" class="sref">skb3/a>->3a href="+code=csum" class="sref">csum3/a>)) {l
 L537">v5373/a>                        3a href="+code=skb" class="sref">skb3/a>->3a href="+code=ip_summed" class="sref">ip_summed3/a> =v3a href="+code=CHECKSUM_UNNECESSARY" class="sref">CHECKSUM_UNNECESSARY3/a>;l
 L538">v5383/a>                        return 0;l
 L539">v5393/a>                }l
 L540">v5403/a>                3a href="+code=skb" class="sref">skb3/a>->3a href="+code=csum" class="sref">csum3/a> =v~3a href="+code=csum_unfold" class="sref">csum_unfold3/a>(3a href="+code=csum_ipv6_magic" class="sref">csum_ipv6_magic3/a>(&3a href="+code=ipv6_hdr" class="sref">ipv6_hdr3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=saddr" class="sref">saddr3/a>,l
 L541">v5413/a>                                                         &3a href="+code=ipv6_hdr" class="sref">ipv6_hdr3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=daddr" class="sref">daddr3/a>,l
 L542">v5423/a>                                                         3a href="+code=skb" class="sref">skb3/a>->3a href="+code=len" class="sref">len3/a>, 3a href="+code=IPPROTO_UDP" class="sref">IPPROTO_UDP3/a>,l
 L543">v5433/a>                                                         0));l
 L544">v5443/a>        } elsel
 L545">v5453/a>#endifl
 L546">v5463/a>        {l
 L547">v5473/a>                structv3a href="+code=inet_sock" class="sref">inet_sock3/a> *3a href="+code=inet" class="sref">inet3/a>;l
 L548">v5483/a>                if (!3a href="+code=uh" class="sref">uh3/a>->3a href="+code=check" class="sref">check )l
 L549">v5493/a>                        return 0;l
 L550">v5503/a>                3a href="+code=inet" class="sref">inet3/a> =v3a href="+code=inet_sk" class="sref">inet_sk3/a>(3a href="+code=sk" class="sref">sk3/a>);l
 L551">v5513/a>                3a href="+code=psum" class="sref">psum3/a> =v3a href="+code=csum_tcpudp_nofold" class="sref">csum_tcpudp_nofold3/a>(3a href="+code=inet" class="sref">inet3/a>->3a href="+code=inet_saddr" class="sref">inet_saddr3/a>, 3a href="+code=inet" class="sref">inet3/a>->3a href="+code=inet_daddr" class="sref">inet_daddr3/a>,l
 L552">v5523/a>                                          3a href="+code=ulen" class="sref">ulen3/a>, 3a href="+code=IPPROTO_UDP" class="sref">IPPROTO_UDP3/a>, 0);l
 L553">v5533/a>l
 L554">v5543/a>                if ((3a href="+code=skb" class="sref">skb3/a>->3a href="+code=ip_summed" class="sref">ip_summed3/a> ==v3a href="+code=CHECKSUM_COMPLETE" class="sref">CHECKSUM_COMPLETE ) &&l
 L555">v5553/a>                    !3a href="+code=csum_fold" class="sref">csum_fold3/a>(3a href="+code=csum_add" class="sref">csum_add3/a>(3a href="+code=psum" class="sref">psum3/a>, 3a href="+code=skb" class="sref">skb3/a>->3a href="+code=csum" class="sref">csum3/a>)))l
 L556">v5563/a>                        return 0;l
 L557">v5573/a>                3a href="+code=skb" class="sref">skb3/a>->3a href="+code=csum" class="sref">csum3/a> =v3a href="+code=psum" class="sref">psum3/a>;l
 L558">v5583/a>        }l
 L559">v5593/a>l
 L560">v5603/a>        return 3a href="+code=__skb_checksum_complete" class="sref">__skb_checksum_complete3/a>(3a href="+code=skb" class="sref">skb3/a>);l
 L561">v561 }l
 L562">v5623/a>l
 L563">v5633/a>3spav class="comment">/* Do receive processing of L2TP data fram>s. We handle both L2TPv23/spaval
 L564">v5643/a>3spav class="comment"> * and L2TPv3 data fram>s here.3/spaval
 L565">v5653/a>3spav class="comment"> *3/spaval
 L566">v5663/a>3spav class="comment"> * L2TPv2 Data Message Header3/spaval
 L567">v5673/a>3spav class="comment"> *3/spaval
 L568">v5683/a>3spav class="comment"> *  0                   1                   2                   33/spaval
 L569">v5693/a>3spav class="comment"> *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 13/spaval
 L570">v57  3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L571">v571 3spav class="comment"> * |T|L|x|x|S|x|O|P|x|x|x|x|  Ver  |          Length (opt)         |3/spaval
 L572">v5723/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L573">v5733/a>3spav class="comment"> * |           Tunnel ID           |           Sess.12 ID          |3/spaval
 L574">v5743/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L575">v5753/a>3spav class="comment"> * |             Ns (opt)          |             Nr (opt)          |3/spaval
 L576">v5763/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L577">v5773/a>3spav class="comment"> * |      Offset Size (opt)        |    Offset pad... (opt)3/spaval
 L578">v5783/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L579">v5793/a>3spav class="comment"> *3/spaval
 L580">v58  3spav class="comment"> * Data fram>s are marked by T=0. All other fields are the sam> as3/spaval
 L581">v581 3spav class="comment"> * those in L2TP control fram>s.3/spaval
 L582">v5823/a>3spav class="comment"> *3/spaval
 L583">v5833/a>3spav class="comment"> * L2TPv3 Data Message Header3/spaval
 L584">v5843/a>3spav class="comment"> *3/spaval
 L585">v5853/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L586">v5863/a>3spav class="comment"> * |                      L2TP Sess.12 Header                      |3/spaval
 L587">v5873/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L588">v5883/a>3spav class="comment"> * |                      L2-Specific Sublayer                     |3/spaval
 L589">v5893/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L590">v59  3spav class="comment"> * |                        Tunnel Payload                      ...3/spaval
 L591">v591 3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L592">v5923/a>3spav class="comment"> *3/spaval
 L593">v5933/a>3spav class="comment"> * L2TPv3 Sess.12 Header Over IP3/spaval
 L594">v5943/a>3spav class="comment"> *3/spaval
 L595">v5953/a>3spav class="comment"> *  0                   1                   2                   33/spaval
 L596">v5963/a>3spav class="comment"> *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 13/spaval
 L597">v5973/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L598">v5983/a>3spav class="comment"> * |                           Sess.12 ID                          |3/spaval
 L599">v5993/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L600">v60  3spav class="comment"> * |               Cookie (opt.12al, maximum 64 bits)...3/spaval
 L601">v601 3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L602">v6023/a>3spav class="comment"> *                                                                 |3/spaval
 L603">v6033/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L604">v6043/a>3spav class="comment"> *3/spaval
 L605">v6053/a>3spav class="comment"> * L2TPv3 L2-Specific Sublayer Format3/spaval
 L606">v6063/a>3spav class="comment"> *3/spaval
 L607">v6073/a>3spav class="comment"> *  0                   1                   2                   33/spaval
 L608">v6083/a>3spav class="comment"> *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 13/spaval
 L609">v6093/a>3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L610">v61  3spav class="comment"> * |x|S|x|x|x|x|x|x|              Sequence Number                  |3/spaval
 L611">v611 3spav class="comment"> * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3/spaval
 L612">v6123/a>3spav class="comment"> *3/spaval
 L613">v6133/a>3spav class="comment"> * Cookie value, sublayer format and offset (pad) are negotiated with3/spaval
 L614">v6143/a>3spav class="comment"> * the peer when the sess.12 is set up. Unlike L2TPv2, we dovnot need3/spaval
 L615">v6153/a>3spav class="comment"> * to parse the packet header to determine if opt.12al fields are3/spaval
 L616">v6163/a>3spav class="comment"> * present.3/spaval
 L617">v6173/a>3spav class="comment"> *3/spaval
 L618">v6183/a>3spav class="comment"> * Caller must already have parsed the fram> and determined that it is3/spaval
 L619">v6193/a>3spav class="comment"> * a data (not control) fram> before coming here. Fields up to the3/spaval
 L620">v62  3spav class="comment"> * sess.12-id have already been parsed and ptr points to the data3/spaval
 L621">v621 3spav class="comment"> * after the sess.12-id.3/spaval
 L622">v6223/a>3spav class="comment"> */3/spaval
 L623">v6233/a>void 3a href="+code=l2tp_recv_comm12" class="sref">l2tp_recv_comm123/a>(structv3a href="+code=l2tp_sess.12" class="sref">l2tp_sess.123/a> *3a href="+code=sess.12" class="sref">sess.123/a>, structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>,l
 L624">v6243/a>                      unsigned char *3a href="+code=ptr" class="sref">ptr3/a>, unsigned char *3a href="+code=optr" class="sref">optr3/a>, 3a href="+code=u16" class="sref">u163/a> 3a href="+code=hdrflags" class="sref">hdrflags3/a>,l
 L625">v6253/a>                      intv3a href="+code=length" class="sref">length3/a>,vintv(*3a href="+code=payload_hook" class="sref">payload_hook3/a>)(structv3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>))l
 L626">v6263/a>{l
 L627">v6273/a>        structv3a href="+code=l2tp_tunnel" class="sref">l2tp_tunnel3/a> *3a href="+code=tunnel" class="sref">tunnel3/a> =v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=tunnel" class="sref">tunnel3/a>;l
 L628">v6283/a>        intv3a href="+code=offset" class="sref">offset3/a>;l
 L629">v6293/a>        3a href="+code=u32" class="sref">u323/a> 3a href="+code=ns" class="sref">ns3/a>, 3a href="+code=nr" class="sref">nr3/a>;l
 L630">v63          structv3a href="+code=l2tp_stats" class="sref">l2tp_stats3/a> *3a href="+code=sstats" class="sref">sstats3/a> =v&3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=stats" class="sref">stats3/a>;l
 L631">v6313/a>l
 L632">v6323/a>        3spav class="comment">/* The ref count is increased since we now hold a pointer to3/spaval
 L633">v6333/a>3spav class="comment">         * the sess.12. Take care to decrement the refcnt when exiting3/spaval
 L634">v6343/a>3spav class="comment">         * this funct.12 from now 12...3/spaval
 L635">v6353/a>3spav class="comment">         */3/spaval
 L636">v6363/a>        3a href="+code=l2tp_sess.12_inc_refcount" class="sref">l2tp_sess.12_inc_refcount3/a>(3a href="+code=sess.12" class="sref">sess.123/a>);l
 L637">v6373/a>        if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=ref" class="sref">ref3/a>)l
 L638">v6383/a>                (*3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=ref" class="sref">ref3/a>)(3a href="+code=sess.12" class="sref">sess.123/a>);l
 L639">v6393/a>l
 L640">v6403/a>        3spav class="comment">/* Parse and check opt.12al cookie */3/spaval
 L641">v6413/a>        if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=peer_cookie_len" class="sref">peer_cookie_len3/a> > 0) {l
 L642">v6423/a>                if (3a href="+code=memcmp" class="sref">memcmp3/a>(3a href="+code=ptr" class="sref">ptr3/a>, &3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=peer_cookie" class="sref">peer_cookie3/a>[0],v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=peer_cookie_len" class="sref">peer_cookie_len3/a>)) {l
 L643">v6433/a>                        3a href="+code=l2tp_info" class="sref">l2tp_info3/a>(3a href="+code=tunnel" class="sref">tunnel3/a>, 3a href="+code=L2TP_MSG_DATA" class="sref">L2TP_MSG_DATA3/a>,l
 L644">v6443/a>                                  3spav class="string">"%s: cookie mismatch (%u/%u). Discarding.\n"3/spava,l
 L645">v6453/a>                                  3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=tunnel_id" class="sref">tunnel_id3/a>,l
 L646">v6463/a>                                  3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=sess.12_id" class="sref">sess.12_id3/a>);l
 L647">v6473/a>                        3a href="+code=u64_stats_update_begin" class="sref">u64_stats_update_begin3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L648">v6483/a>                        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_cookie_discards" class="sref">rx_cookie_discards3/a>++;l
 L649">v6493/a>                        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L650">v6503/a>                        goto 3a href="+code=discard" class="sref">discard3/a>;l
 L651">v6513/a>                }l
 L652">v6523/a>                3a href="+code=ptr" class="sref">ptr3/a> +=v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=peer_cookie_len" class="sref">peer_cookie_len3/a>;l
 L653">v6533/a>        }l
 L654">v654 l
 L655">v6553/a>        3spav class="comment">/* Handle the opt.12al sequence numbers. Sequence numbers are3/spaval
 L656">v6563/a>3spav class="comment">         * in different places for L2TPv2 and L2TPv3.3/spaval
 L657">v6573/a>3spav class="comment">         *3/spaval
 L658">v6583/a>3spav class="comment">         * If we are the LAC, enable/disable sequence numbers under3/spaval
 L659">v6593/a>3spav class="comment">         * the control of the LNS.  If no sequence numbers present but3/spaval
 L660">v66  3spav class="comment">         * we were expecting them, discard fram>.3/spaval
 L661">v661 3spav class="comment">         */3/spaval
 L662">v6623/a>        3a href="+code=ns" class="sref">ns3/a> =v3a href="+code=nr" class="sref">nr3/a>v=v0;l
 L663">v6633/a>        3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>v=v0;l
 L664">v664         if (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>v==v3a href="+code=L2TP_HDR_VER_2" class="sref">L2TP_HDR_VER_23/a>) {l
 L665">v6653/a>                if (3a href="+code=hdrflags" class="sref">hdrflags3/a> &v3a href="+code=L2TP_HDRFLAG_S" class="sref">L2TP_HDRFLAG_S3/a>) {l
 L666">v6663/a>                        3a href="+code=ns" class="sref">ns3/a> =v3a href="+code=ntohs" class="sref">ntohs3/a>(*(3a href="+code=__be16" class="sref">__be163/a> *) 3a href="+code=ptr" class="sref">ptr3/a>);l
 L667">v6673/a>                        3a href="+code=ptr" class="sref">ptr3/a> +=v2;l
 L668">v6683/a>                        3a href="+code=nr" class="sref">nr3/a>v=v3a href="+code=ntohs" class="sref">ntohs3/a>(*(3a href="+code=__be16" class="sref">__be163/a> *) 3a href="+code=ptr" class="sref">ptr3/a>);l
 L669">v6693/a>                        3a href="+code=ptr" class="sref">ptr3/a> +=v2;l
 L670">v67  l
 L671">v6713/a>                        3spav class="comment">/* Store L2TP info in the skb */3/spaval
 L672">v6723/a>                        3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a> =v3a href="+code=ns" class="sref">ns3/a>;l
 L673">v6733/a>                        3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>v=v1;l
 L674">v674 l
 L675">v6753/a>                        3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L676">v6763/a>                                 3spav class="string">"%s: recv data ns=%u, nr=%u, sess.12 nr=%u\n"3/spava,l
 L677">v6773/a>                                 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=ns" class="sref">ns3/a>, 3a href="+code=nr" class="sref">nr3/a>,v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>);l
 L678">v6783/a>                }l
 L679">v6793/a>        } else if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=l2specific_typ>" class="sref">l2specific_typ>3/a>v==v3a href="+code=L2TP_L2SPECTYPE_DEFAULT" class="sref">L2TP_L2SPECTYPE_DEFAULT3/a>) {l
 L680">v6803/a>                3a href="+code=u32" class="sref">u323/a> 3a href="+code=l2h" class="sref">l2h3/a> =v3a href="+code=ntohl" class="sref">ntohl3/a>(*(3a href="+code=__be32" class="sref">__be323/a> *) 3a href="+code=ptr" class="sref">ptr3/a>);l
 L681">v6813/a>l
 L682">v6823/a>                if (3a href="+code=l2h" class="sref">l2h3/a> &v0x40000000) {l
 L683">v6833/a>                        3a href="+code=ns" class="sref">ns3/a> =v3a href="+code=l2h" class="sref">l2h3/a> &v0x00ffffff;l
 L684">v684 l
 L685">v6853/a>                        3spav class="comment">/* Store L2TP info in the skb */3/spaval
 L686">v6863/a>                        3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=ns" class="sref">ns3/a> =v3a href="+code=ns" class="sref">ns3/a>;l
 L687">v6873/a>                        3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>v=v1;l
 L688">v6883/a>l
 L689">v6893/a>                        3a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L690">v6903/a>                                 3spav class="string">"%s: recv data ns=%u, sess.12 nr=%u\n"3/spava,l
 L691">v6913/a>                                 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=ns" class="sref">ns3/a>, 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>);l
 L692">v6923/a>                }l
 L693">v6933/a>        }l
 L694">v694 l
 L695">v6953/a>        3spav class="comment">/* Advance past L2-specific header, if present */3/spaval
 L696">v6963/a>        3a href="+code=ptr" class="sref">ptr3/a> +=v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=l2specific_len" class="sref">l2specific_len3/a>;l
 L697">v6973/a>l
 L698">v6983/a>        if (3a href="+code=L2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>) {l
 L699">v6993/a>                3spav class="comment">/* Received a packet with sequence numbers. If we're the LNS,3/spaval
 L700">v70  3spav class="comment">                 * check if we sre sending sequence numbers and if not,3/spaval
 L701">v701 3spav class="comment">                 * configure it so.3/spaval
 L702">v7023/a>3spav class="comment">                 */3/spaval
 L703">v7033/a>                if ((!3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=lns_mode" class="sref">lns_mode3/a>) && (!3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=send_seq" class="sref">send_seq3/a>)) {l
 L704">v7043/a>                        3a href="+code=l2tp_info" class="sref">l2tp_info3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L705">v7053/a>                                  3spav class="string">"%s: requested to enable seq numbers by LNS\n"3/spava,l
 L706">v7063/a>                                  3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>);l
 L707">v7073/a>                        3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=send_seq" class="sref">send_seq3/a>v=v-1;l
 L708">v7083/a>                        3a href="+code=l2tp_sess.12_set_header_len" class="sref">l2tp_sess.12_set_header_len3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>);l
 L709">v7093/a>                }l
 L710">v7103/a>        } else {l
 L711">v7113/a>                3spav class="comment">/* No sequence numbers.3/spaval
 L712">v7123/a>3spav class="comment">                 * If user has configured mandatory sequence numbers, discard.3/spaval
 L713">v7133/a>3spav class="comment">                 */3/spaval
 L714">v7143/a>                if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=recv_seq" class="sref">recv_seq3/a>) {l
 L715">v7153/a>                        3a href="+code=l2tp_warn" class="sref">l2tp_warn3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L716">v7163/a>                                  3spav class="string">"%s: recv data has no seq numbers when required. Discarding.\n"3/spava,l
 L717">v7173/a>                                  3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>);l
 L718">v7183/a>                        3a href="+code=u64_stats_update_begin" class="sref">u64_stats_update_begin3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L719">v7193/a>                        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_seq_discards" class="sref">rx_seq_discards3/a>++;l
 L720">v7203/a>                        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L721">v7213/a>                        goto 3a href="+code=discard" class="sref">discard3/a>;l
 L722">v7223/a>                }l
 L723">v7233/a>l
 L724">v7243/a>                3spav class="comment">/* If we're the LAC and we're sending sequence numbers, the3/spaval
 L725">v7253/a>3spav class="comment">                 * LNS has requested that we no longer send sequence numbers.3/spaval
 L726">v7263/a>3spav class="comment">                 * If we're the LNS and we're sending sequence numbers, the3/spaval
 L727">v7273/a>3spav class="comment">                 * LAC is broken. Discard the fram>.3/spaval
 L728">v7283/a>3spav class="comment">                 */3/spaval
 L729">v7293/a>                if ((!3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=lns_mode" class="sref">lns_mode3/a>) && (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=send_seq" class="sref">send_seq3/a>)) {l
 L730">v7303/a>                        3a href="+code=l2tp_info" class="sref">l2tp_info3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L731">v7313/a>                                  3spav class="string">"%s: requested to disable seq numbers by LNS\n"3/spava,l
 L732">v7323/a>                                  3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>);l
 L733">v7333/a>                        3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=send_seq" class="sref">send_seq3/a>v=v0;l
 L734">v7343/a>                        3a href="+code=l2tp_sess.12_set_header_len" class="sref">l2tp_sess.12_set_header_len3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>);l
 L735">v7353/a>                } else if (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=send_seq" class="sref">send_seq3/a>) {l
 L736">v7363/a>                        3a href="+code=l2tp_warn" class="sref">l2tp_warn3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L737">v7373/a>                                  3spav class="string">"%s: recv data has no seq numbers when required. Discarding.\n"3/spava,l
 L738">v7383/a>                                  3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>);l
 L739">v7393/a>                        3a href="+code=u64_stats_update_begin" class="sref">u64_stats_update_begin3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L740">v7403/a>                        3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_seq_discards" class="sref">rx_seq_discards3/a>++;l
 L741">v7413/a>                        3a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L742">v7423/a>                        goto 3a href="+code=discard" class="sref">discard3/a>;l
 L743">v7433/a>                }l
 L744">v7443/a>        }l
 L745">v7453/a>l
 L746">v7463/a>        3spav class="comment">/* Sess.12 data offset is handled differently for L2TPv2 and3/spaval
 L747">v7473/a>3spav class="comment">         * L2TPv3. For L2TPv2, there is av opt.12al 16-bit value in3/spaval
 L748">v7483/a>3spav class="comment">         * the header. For L2TPv3, the offset is negotiated using AVPs3/spaval
 L749">v7493/a>3spav class="comment">         * in the sess.12 setup control protocol.3/spaval
 L750">v75  3spav class="comment">         */3/spaval
 L751">v7513/a>        if (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>v==v3a href="+code=L2TP_HDR_VER_2" class="sref">L2TP_HDR_VER_23/a>) {l
 L752">v7523/a>                3spav class="comment">/* If offset bit set, skip it. */3/spaval
 L753">v7533/a>                if (3a href="+code=hdrflags" class="sref">hdrflags3/a> &v3a href="+code=L2TP_HDRFLAG_O" class="sref">L2TP_HDRFLAG_O3/a>) {l
 L754">v7543/a>                        3a href="+code=offset" class="sref">offset3/a>v=v3a href="+code=ntohs" class="sref">ntohs3/a>(*(3a href="+code=__be16" class="sref">__be163/a> *)3a href="+code=ptr" class="sref">ptr3/a>);l
 L755">v7553/a>                        3a href="+code=ptr" class="sref">ptr3/a> +=v2 +v3a href="+code=offset" class="sref">offset3/a>;l
 L756">v7563/a>                }l
 L757">v7573/a>        } elsel
 L758">v7583/a>                3a href="+code=ptr" class="sref">ptr3/a> +=v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=offset" class="sref">offset3/a>;l
 L759">v7593/a>l
 L760">v7603/a>        3a href="+code=offset" class="sref">offset3/a>v=v3a href="+code=ptr" class="sref">ptr3/a> - 3a href="+code=optr" class="sref">optr3/a>;l
 L761">v7613/a>        if (!3a href="+code=pskb_may_pull" class="sref">pskb_may_pull3/a>(3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=offset" class="sref">offset3/a>))l
 L762">v7623/a>                goto 3a href="+code=discard" class="sref">discard3/a>;l
 L763">v7633/a>lv7664        3a href="+code=__bkb_mull" class="sref">p_bkb_mull"/a>(3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=offset" class="sref">offset3/a>))l
 L675">v6763/a>l
 L676">v6763/a>        3spav class="comment">/* Sf ocller mwats to trotcss.the pacload_before cwe queuethe3/spaval
 L677">v6763/a>3spav class="comment">         * Lacket ,dovnsvnotw3/spaval
 L678">v6763/a>3spav class="comment">         * 3/spaval
 L679">v6793/a>         f (3a href="+code=hayload_hook" class="sref">payload_hook3/a>)(
 L670">v6773/a>                 f ((!*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3a href="+code=skb" class="sref">skb3/a>)-(
 L671">v6713/a>                        3oto 3a href="+code=discard" class="sref">discard3/a>;l
 L672">v6723/a> 
 L673">v6733/a>         spav class="comment">/* Parepre tkb *or Lading so the dess.123#39;r reqorer_lq.  Hol3/spaval
 L674">v6773/a>3spav class="comment">         * tacket  for Lmaxreqorer_ltimeout r L1descod if not,/spaval
 L675">v6773/a>3spav class="comment">         */reqorer_ng.\/spaval
 L676">v6773/a>3spav class="comment">         * 3/spaval
 L677">v6773/a>         a href="+code=L2TP_HKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=hength" class="sref">length3/a>,=v3a href="+code=l2ngth" class="sref">length3/a>,l
 L678">v6783/a>         a href="+code=L2TP_HKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=hexpire" class="sref">nexpire"/a>,=v3a href="+code=ljiffie" class="sref">njiffie"/a> +=
 L679">v6773/a>                 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=recorer_ltimeout class="sref">rxcorer_ltimeout/a>  ?3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=oecorer_ltimeout class="sref">rxcorer_ltimeout/a>  :3a href="+code=sHZ class="sref">rHZ/a>))l
 L670">v678 l
 L671">v6781/a>         spav class="comment">/* PAddpacket wo the dess.123#39;r reqeived queue. Rqorer_ng.is ndonehere. if /spaval
 L672">v6783/a>3spav class="comment">          *enable d. Saed a2TP irotocol.info ins sore din tkb3>3sb[]\/spaval
 L673">v6783/a>3spav class="comment">         * 3/spaval
 L674">v678         if (3a href="+code=t2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=has_seq" class="sref">has_seq3/a>) {l
 L675">v6753/a>                 f (3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=recorer_ltimeout class="sref">rxcorer_ltimeout/a>  !=0) {l
 L676">v6763/a>                        3apav class="comment">/* Parket weqorer_ng.enable d. Addpkb *todess.123#39;r /spaval
 L677">v6783/a>3spav class="comment">                 *       */reqorer_ queuevint orer_ o no.3/spaval
 L678">v6783/a>3spav class="comment">                 *       * 3/spaval
 L679">v6793/a>                        3a href="+code=l2tp_decv_squeue_kb" class="sref">s2tp_decv_squeue_kb"/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=Lkb" class="sref">skb3/a>)-l
 L670">v6703/a>                  else {l
 L671">v6713/a>                         apav class="comment">/* Parket weqorer_ng.eisable . Discardi out-of-equence /spaval
 L672">v6793/a>3spav class="comment">                 *       */racket  /spaval
 L673">v6793/a>3spav class="comment">                 *       * 3/spaval
 L674">v6793/a>                        3f (3a href="+code=t2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=hs" class="sref">ns3/a> =!v3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=or" class="sref">nr3/a>);{l
 L675">v6793/a>                                 a href="+code=u64_stats_update_begin" class="sref">u64_stats_update_begin3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L676">v6793/a>                                 a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=rx_seq_discards" class="sref">rx_seq_discards3/a>++;l
 L677">v6793/a>                                 a href="+code=u64_stats_update_end" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L678">v6793/a>                                 a href="+code=l2tp_dbg" class="sref">l2tp_dbg3/a>(3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=L2TP_MSG_SEQ" class="sref">L2TP_MSG_SEQ3/a>,l
 L679">v6793/a>                3                         apav class="string">"%s: roos pkt #37;u\ len #37;uddiscard.ed, wating3for L#37;u, seqorer_lqlen3%udn"3/spava,l
 L780">v7803/a>                                 3        a href="+code=less.12" class="sref">sess.123/a>->3a href="+code=nam>" class="sref">nam>3/a>,v3a href="+code=n2TP_SKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=hs" class="sref">ns3/a> l
 L681">v7803/a>                                  3       a href="+code=l2TP_HKB_CB" class="sref">L2TP_SKB_CB3/a>(3a href="+code=skb" class="sref">skb3/a>)->3a href="+code=hength" class="sref">length3/a>, 3a href="+code=sess.12" class="sref">sess.123/a>->3a href="+code=nr" class="sref">nr3/a>)l
 L682">v7803/a>                                  3       a href="+code=lekbsqueue_en" class="sref">lekbsqueue_en"/a>(&3a href="+code=ssss.12" class="sref">sess.123/a>->3a href="+code=recorer_l" class="sref">recorer_l"/a>)-(l
 L783">v7833/a>                iiiiiiiiiiiiiiiiioto 3a href="+code=discard" class="sref">discard3/a>;l
 L784">v7843/a>                        3l
 L785">v7853/a>                         a href="+code=lekbsqueue_tai" class="sref">pekbsqueue_tai"/a>(&3a href="+code=ssss.12" class="sref">sess.123/a>->3a href="+code=recorer_l" class="sref">recorer_l"/a>) 3a href="+code=Lkb" class="sref">skb3/a>)-l
 L786">v7863/a>                 l
 L687">v7803/a>        } elsel{l
 L788">v7883/a>                 spav class="comment">/* No sequence numbers.3 Addphe skb *o the dtai"of the /spaval
 L789">v7803/a>3spav class="comment">         *********/reqorer_ queue. This ensuresthat wi witll b /spaval
 L780">v781 3spav class="comment">                 * cdelivee diaftr_ al proevioussequence dpkb .3/spaval
 L781">v781 3spav class="comment">                 * 3/spaval
 L782">v7813/a>                3a href="+code=pekbsqueue_tai" class="sref">pekbsqueue_tai"/a>(&3a href="+code=ssss.12" class="sref">sess.123/a>->3a href="+code=recorer_l" class="sref">recorer_l"/a>) 3a href="+code=Lkb" class="sref">skb3/a>)-l
 L783">v7813/a>        }l
 L784">v781 l
 L785">v7813/a>        3spav class="comment">/* ATryto diequeuetasmandypkb . fromseqorer_lqtasmwe can */3/spaval
 L786">v7813/a>        3a href="+code=p2tp_decv_siequeue class="sref">s2tp_decv_siequeue/a>(3a href="+code=sess.12" class="sref">sess.123/a>,-l
 L787">v7813/a>l
 L788">v7813/a>         a href="+code=L2tp_cess.12_sdecdecfcount class="sref">r2tp_cess.12_sdecdecfcount/a>(3a href="+code=sess.12" class="sref">sess.123/a>,-l
 L789">v7813/a>l
 L780">v7803/a>         returnl
 L781">v7823/a>l
 L782">v7823/a> a href="+code=discard" class="sref">discard3/a>;:
 L783">v7823/a>        3a href="+code=L64_stats_update_begin" class="sref">u64_stats_update_begin3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L784">v7824        3a href="+code=_stats" class="sref">sstats3/a>->3a href="+code=rx_serror" class="sref">rx_serror"/a>++;l
 L785">v7825/a>        3a href="+code=L64_stats_update_bnd" class="sref">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->3a href="+code=syncp" class="sref">syncp3/a>);l
 L786">v7823/a>        3a href="+code=pkfree_kb" class="sref">skfree_kb"/a>(3a href="+code=skb" class="sref">skb3/a>)-l
 L787">v7823/a>l
 L788">v7823/a>        if (3a href="+code=Lsss.12" class="sref">sess.123/a>->3a href="+code=rer_f">class="sref">dir_f"/a>)-
 L789">v7893/a>                i!*a href="+code=hsss.12" class="sref">sess.123/a>->3a href="+code=rer_f">class="sref">dir_f"/a>)-3a href="+code=sess.12" class="sref">sess.123/a>,-l
 L780">v783 l
 L781">v7813/a>         a href="+code=L2tp_cess.12_sdecdecfcount class="sref">r2tp_cess.12_sdecdecfcount/a>(3a href="+code=sess.12" class="sref">sess.123/a>,-l
 L782">v7823/a> l
 L783">v7833/a> a href="+code=sEXPORT_SYMBOL class="sref">sEXPORT_SYMBOL/a>(3a href="+code=s2tp_decv_somme2" class="sref">s2tp_decv_somme2"/a>,-l
 L784">v783 l
 L785">v7833/a>3spav class="comment"> * Sfntr_al 1UDPreqeived ram>.3 D the drel 1workof teqeiveng3fv c2TP iata oram>./spaval
 L786">v7833/a>3spav class="comment">  *here.. Th skb *s neot on a listwhen rwe gethere../spaval
 L787">v7833/a>3spav class="comment">   Recturns 0if (he packet wiasmaiata oacket wnd weasmsuccss.fullypastsed on./spaval
 L788">v7833/a>3spav class="comment">   Recturns 1if (he packet wiasmeot a goodiata oacket wnd wcouldmeot b /spaval
 L789">v7833/a>3spav class="comment">  *for wrd.ed.  Allmsuchtacket  fre tastsed upto dser pavceto diel 1with./spaval
 L780">v784 3spav class="comment">  /3/spaval
 L781">v7813/a> tatsic int a href="+code=L2tp_cud_decv_somre class="sref">s2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunnel" class="sref">t2tp_cunnel"/a>  *a href="+code=hunnel" class="sref">tunnel3/a>-, struct a href="+code=Lsk_buf">class="sref">dsk_buf"/a>  *a href="+code=hkb" class="sref">skb3/a>, 
 L782">v7823/a>                        g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+code=Lsk_buf">class="sref">dsk_buf"/a>  *a href="+code=hkb" class="sref">skb3/a>,-(
 L783">v7833/a> l
 L784">v7843/a>        }struct a href="+code=L2tp_cess.12" class="sref">s2tp_cess.12"/a>  *a href="+code=hkss.12" class="sref">sess.123/a>,=v3a href="+code=lNULL class="sref">sNULL/a>;l
 L785">v7845/a>        3unsigned char *a href="+code=htr" class="sref">ptr3/a> , *a href="+code=hptr" class="sref">optr3/a>;l
 L786">v7843/a>        3a href="+code=pu6" class="sref">_u13/a>  a href="+code=pdrflags" class="sref">hdrflags3/a> l
 L787">v7843/a>         a href="+code=L32" class="sref">u323/a> 3a href="+code=lunnel3_i" class="sref">uunnel3_i"/a>, 3a href="+code=sess.12"_i" class="sref">uess.12"_i"/a> l
 L788">v7843/a>         a href="+code=Lu6" class="sref">_u13/a>  a href="+code=pers.12" class="sref">vers.123/a>vl
 L789">v7843/a>         fnt a href="+code=L2ngth" class="sref">length3/a>,l
 L780">v7850/a>        }struct a href="+code=L2tp_ceats" class="sref">s2tp_ceats"/a>  *a href="+code=hueats" class="sref">steats"/a> l
 L781">v7853/a>l
 L782">v7823/a>         f (3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vsoc" class="sref">psoc"/a>  amp;& (a href="+code=L2tp_cersifydud_dheck sum class="sref">s2tp_cersifydud_dheck sum/a>(3a href="+code=sunnel" class="sref">tunnel3/a>->3a href="+code=vsoc" class="sref">psoc"/a>  3a href="+code=Lkb" class="sref">skb3/a>)-(
 L783">v7833/a>                ioto 3a href="+code=discard"_bd_hcsum class="sref">siscard"_bd_hcsum/a> l
 L784">v785 l
 L785">v7853/a>        3spav class="comment">/* AUDPralways ersifies(he packet wength3 */3/spaval
 L786">v7853/a>        3a href="+code=p_bkb_mull" class="sref">p_bkb_mull"/a>(3a href="+code=skb" class="sref">skb3/a>, 3sizeof3struct a href="+code=Lud_drf class="sref">_ud_drf/a>)-(l
 L787">v7853/a>l
 L788">v7883/a>         spav class="comment">/* Sehortpacket ?*/3/spaval
 L789">v7853/a>         f (33a href="+code=pskb_may_pull" class="sref">pskb_may_pull3/a>(3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=o2TP_HDR_VSIZESEQ" class="sref">L2TP_MDR_VSIZESEQ"/a>)-({l
 L780">v7863/a>                 a href="+code=L2tp_cnfo" class="sref">l2tp_info3/a>(3a href="+code=sunnel" class="sref">tunnel3/a>-, a href="+code=o2TP_HSG_SDATA class="sref">L2TP_MSG_SDATA/a>, 
 L781">v7863/a>                           spav class="string">"%s: recv dshortpacket  (en3%ud)n"3/spava,l
 L782">v7823/a>                g          a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,v3a href="+code=nkb" class="sref">skb3/a>,>3a href="+code=heng class="sref">leng/a>,-l
 L783">v7863/a>                ioto 3a href="+code=derror class="sref">lerror/a> lv7864        3l
 L685">v6863/a>l
 L686">v6863/a>        3spav class="comment">/* STrac packet wontrnt"s if pnable d*/3/spaval
 L687">v6867/a>         f (3a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vdebu" class="sref">ldebu"/a>  amp;& a href="+code=o2TP_HSG_SDATA class="sref">L2TP_MSG_SDATA/a>,({l
 L688">v6863/a>                3a href="+code=pength" class="sref">length3/a>,=v3a href="+code=lmn" class="sref">umn3/a>(&32uv3a href="+code=nkb" class="sref">skb3/a>,>3a href="+code=heng class="sref">leng/a>,-l
 L689">v6863/a>                if ((3a href="+code=pskb_may_pull" class="sref">pskb_may_pull3/a>(3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=oength" class="sref">length3/a>,-(
 L680">v6873/a>                        ioto 3a href="+code=derror class="sref">lerror/a> l
 L681">v6873/a>l
 L682">v6873/a>                3a href="+code=ppr_debu" class="sref">lpr_debu"/a>(3apav class="string">"%s: recv n"3/spava,l a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,-l
 L683">v6873/a>                ia href="+code=pprin_heax_dump_byte" class="sref">nprin_heax_dump_byte"/a>(3apav class="string">"&#uot;3/spava,l a href="+code=LDUMP_PREFIX_OFFSET class="sref">nDUMP_PREFIX_OFFSET/a>,v3a href="+code=nkb" class="sref">skb3/a>,>3a href="+code=hata  class="sref">ldta /a>, 3a href="+code=oength" class="sref">length3/a>,-l
 L684">v6874        3l
 L685">v6873/a>l
 L686">v6873/a>        3spav class="comment">/* SPofnt o 32TP ieader.*/3/spaval
 L687">v6873/a>         a href="+code=Lptr" class="sref">optr3/a>;=v3a href="+code=ptr" class="sref">ptr3/a> -v3a href="+code=seb" class="sref">skb3/a>,>3a href="+code=hata  class="sref">ldta /a>,l
 L688">v6883/a> 
 L689">v6873/a>         spav class="comment">/* SGt w2TP ieader.*lags3*/3/spaval
 L680">v6883/a>        3a href="+code=odrflags" class="sref">hdrflags3/a> &v3a href="+code=ntohs" class="sref">ntohs3/a>(*(3a href="+code=__be16" class="sref">__be163/a> *)33a href="+code=ptr" class="sref">ptr3/a> -l
 L681">v6883/a>l
 L682">v6882/a>         spav class="comment">/* SCeck irotocol.iers.123*/3/spaval
 L683">v6883/a>        3a href="+code=Lers.12" class="sref">vers.123/a>v==3a href="+code=odrflags" class="sref">hdrflags3/a> &v3a href="+code=L2TP_HDRFVER_2MASK class="sref">L2TP_MDR_VER_2MASK/a>,l
 L684">v688         if (3a href="+code=ters.12" class="sref">vers.123/a>v=!v3a href="+code=sunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>);{l
 L685">v6853/a>                 a href="+code=L2tp_cnfo" class="sref">l2tp_info3/a>(3a href="+code=sunnel" class="sref">tunnel3/a>-, a href="+code=o2TP_HSG_SDATA class="sref">L2TP_MSG_SDATA/a>, 
 L686">v6863/a>                        3  spav class="string">"%s: recv drotocol.iers.123*mismatch:ioto #37;uddexpeced u#37;udn"3/spava,l
 L687">v6883/a>                           a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,v3a href="+code=ners.12" class="sref">vers.123/a>) 3a href="+code=tunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>);l
 L688">v6883/a>                3oto 3a href="+code=derror class="sref">lerror/a> l
 L689">v6893/a>         l
 L680">v689 l
 L681">v6891/a>         spav class="comment">/* PGt wength3of t2TP ircket w/3/spaval
 L682">v6892/a>        3a href="+code=Length" class="sref">length3/a>,=v3a href="+code=lkb" class="sref">skb3/a>,>3a href="+code=heng class="sref">leng/a>,l
 L683">v6893/a>l
 L684">v6893/a>         spav class="comment">/* Sf otyp is aontrol prcket ,di is handled dbydser pavce */3/spaval
 L685">v6893/a>         f (3a href="+code=hdrflags" class="sref">hdrflags3/a> &v3a href="+code=L2TP_HDRFLAG_OT class="sref">n2TP_HDRFLAG_OT/a>);{l
 L686">v6893/a>                 a href="+code=L2tp_cbg" class="sref">l2tp_dbg3/a>(3a href="+code=sunnel" class="sref">tunnel3/a>-, a href="+code=o2TP_HSG_SDATA class="sref">L2TP_MSG_SDATA/a>, 
 L687">v6893/a>                          spav class="string">"%s: recv dontrol prcket ,den3%udn"3/spava,l
 L688">v6893/a>                          a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,v3a href="+code=nength" class="sref">length3/a>,-l
 L689">v6893/a>                3oto 3a href="+code=derror class="sref">lerror/a> l
 L790">v7903/a>         l
 L691">v7903/a>l
 L692">v7902/a>         spav class="comment">/* SSip ilags3*/3/spaval
 L793">v7903/a>        3a href="+code=Ltr" class="sref">ptr3/a> +=v2 l
 L694">v790 l
 L795">v7903/a>         f (3a href="+code=hunnel" class="sref">tunnel3/a>->3a href="+code=vers.12" class="sref">vers.123/a>v==v3a href="+code=L2TP_HDR_VER_2" class="sref">L2TP_HDR_VER_23/a>) {l
 L796">v7963/a>                 spav class="comment">/* Sf oength3os hpresnt" skip it.*/3/spaval
 L697">v7903/a>                 f (3a href="+code=hdrflags" class="sref">hdrflags3/a> &v3a href="+code=L2TP_HDRFLAG_OL class="sref">s2TP_HDRFLAG_OL/a>) 
 L698">v7983/a>                        3a href="+code=Ltr" class="sref">ptr3/a> +=v2 l
 L699">v7903/a>l
 L790">v7913/a>                 apav class="comment">/* SExtract unnel3wnd wess.12 sID*/3/spaval
 L791">v7913/a>                 a href="+code=hunnel"_i" class="sref">uunnel3_i"/a>,&v3a href="+code=ntohs" class="sref">ntohs3/a>(*(3a href="+code=__be16" class="sref">__be163/a> *)33a href="+code=ptr" class="sref">ptr3/a> -l
 L792">v7913/a>                3a href="+code=ptr" class="sref">ptr3/a> +=v2 l
 L793">v7913/a>                ia href="+code=pess.12"_i" class="sref">uess.12"_i"/a> &v3a href="+code=ntohs" class="sref">ntohs3/a>(*(3a href="+code=__be16" class="sref">__be163/a> *)33a href="+code=ptr" class="sref">ptr3/a> -l
 L794">v7913/a>                 a href="+code=ptr" class="sref">ptr3/a> +=v2 l
 L795">v7913/a>        3 elsel{l
 L796">v7913/a>                 a href="+code=Ltr" class="sref">ptr3/a> +=v2 l       apav class="comment">/* Skip iresnred abit3*/3/spaval
 L797">v7913/a>                 a href="+code=hunnel"_i" class="sref">uunnel3_i"/a>,&v3a href="+code=nunnel" class="sref">tunnel3/a>->3a href="+code=vunnel"_i" class="sref">uunnel3_i"/a>,l
 L798">v7913/a>                3a href="+code=pess.12"_i" class="sref">uess.12"_i"/a> &v3a href="+code=ntohs" class="sref">ttohs"/a>(*(3a href="+code=__be12" class="sref">u_be12"/a> *)33a href="+code=ptr" class="sref">ptr3/a> -l
 L799">v7913/a>                3a href="+code=Ltr" class="sref">ptr3/a> +=v24l
 L790">v7923/a>         l
 L791">v7923/a>l
 L792">v7922/a>         spav class="comment">/* SFindthe sess.12 sontrnx.*/3/spaval
 L793">v7923/a>        3a href="+code=Lkss.12" class="sref">sess.123/a>,=v3a href="+code=l2tp_cess.12"_fid" class="sref">u2tp_cess.12"_fid"/a>(3a href="+code=sunnel" class="sref">tunnel3/a>->3a href="+code=hetp_cnt" class="sref">oetp_cnt"/a>) 3a href="+code=tunnel" class="sref">tunnel3/a>- 3a href="+code=sess.12"_i" class="sref">uess.12"_i"/a> -l
 L794">v792         if (33a href="+code=pkss.12" class="sref">sess.123/a>,=|| 3a href="+code=pkss.12" class="sref">sess.123/a>,>3a href="+code=reccv_kb" class="sref">seccv_kb"/a>) {l
 L795">v7923/a>                 apav class="comment">/* No t found? Passto dser pavceto diel 1with*/3/spaval
 L796">v7923/a>                 a href="+code=L2tp_cnfo" class="sref">l2tp_info3/a>(3a href="+code=sunnel" class="sref">tunnel3/a>-, a href="+code=o2TP_HSG_SDATA class="sref">L2TP_MSG_SDATA/a>, 
 L797">v7923/a>                           apav class="string">"%s: rnodess.123 found (#37;u,/#37;u,). Passng3fup.n"3/spava,l
 L798">v7923/a>                           a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,v3a href="+code=nunnel3_i" class="sref">uunnel3_i"/a>, 3a href="+code=sess.12"_i" class="sref">uess.12"_i"/a> -l
 L799">v7993/a>                ioto 3a href="+code=derror class="sref">lerror/a> l
 L790">v7933/a>         l
 L791">v7933/a>l
 L792">v7932/a>        3a href="+code=Le2p_decv_somme2" class="sref">s2tp_decv_somme2"/a>,3a href="+code=sess.12" class="sref">sess.123/a>, 3a href="+code=Lkb" class="sref">skb3/a>) 3a href="+code=Ltr" class="sref">ptr3/a> , a href="+code=Lptr" class="sref">optr3/a>;, a href="+code=Ldrflags" class="sref">hdrflags3/a> v3a href="+code=nength" class="sref">length3/a>, 3a href="+code=Ltyload_hook" class="sref">payload_hook3/a>)(l
 L793">v7933/a>l
 L794">v793         ireturn 0l
 L795">v7933/a>l
 L796">v7933/a>3s href="+code=Liscard"_bd_hcsum class="sref">siscard"_bd_hcsum/a> :
 L797">v7933/a>         a href="+code=L2IMIT_NETDEBUG class="sref">L2IMIT_NETDEBUG/a>,3apav class="string">"%s: rUDP: bd_ heck sumn"3/spava,l a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,-l
 L798">v7933/a>         a href="+code=LUDP_INC_STATS_USERv7933/a>       amp;v3a 
 L797">v7913/a>               33/a>3s href="+code=LiscarMIBnamERRORS798" class="line" nMIBnamERRORS3/a>3s0=Lunnel" class="sref">tunnel3/a>->ode=sess.diata oacket wnd wcouldm9ot b 939>,-ls2tp_cersifydud_d_stats_update_bnd" cL2tp_ceats" class="sref">s2tp_ceats"/a>  9re tastse9 upto dser pavceto diel 9with.94paval
 L783">v7823/a>        3a href="+code=L64_s }struct a href="+code=L2tp_ceaf">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->9L780">v789 3spav class="comment9>  /394 lu64_stats_update_24        3a href="+code=_stats" class="sref">sstats3/a>->3a href=9/a>  *a h9ef="+code=hkb" class="sr9f">sk943/a>l
 L785">v7825/a>        3a href="+code=L }struct a href="+code=L2tp_ceaf">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->9LLtyload_hf="+code=hkb" class="sre9">skb94paval
 L786">v7823/a>        3a href="+code=pkfree_kb" class="sref">skfree_kb9" id
 L789" class="line" nam>
 L789">v7894=v2 lsNU9L/a>;lopt93/a>;l/l2tp_core.c#L792" id
 L794" clas "_bd_hcsupdrflags" class="sref">h9rflag93/a> lp_core.c#L7949 id
 L799" class="line" nam>
 796">v7933/a>3s href="+code=Liscar+code=ses9.12"_i" class="sref">ues9.12"_943/a>l/* No t href="+co9e=pers.12" class="sref">9ers.1949>,-l;, a href="ass="linsre" nam>
 L786">v7823/a>        3a href="+code_bkb_mull" class="sref">p_bkb_mull"/a>(3a href="+code=skb" class="sref">skb3/a>, 3sizeof3struct a9a href="+9ode=L2ngth" class="sref"9lengt95    l;lskb3/a>, 3sizeof3struct a9aa>  *a h91" class="line" nam>
 L791">v795a>,-lskb95a>)(lsiscard"_9d_hcs9m/a> l"net/l2tp/l2tp_core.c#L685" iencapsulat7">v
 L785" 684">vr. See et/lipv4/e=s.comment">  *for wrd.ed.  Allmsuchtacket  90" id
 L794" class="line" nam>
 L794">v795 l  *for wrd.ed.  Allmsuchtacket  90, *a hre9ersifies(he packet wengt93 */395paval  *for wrd.ed.  Allmsuchtacket  90"_bd_hcsue=Lud_drf class="sref">_9d_drf95pavalent">  *for wrd.ed.  Allmsuchtacket  90code=ses97" class="line" nam>
 L797">v795pavalu60:  id
shpav cbe" nam>
 L789">v7833/a>3sas85" omment">  *for wrd.ed.  Allmsuchtacket  90ref="+co9"comment">/* Sehortpacke9 ?*/395paval/* No t IZESEQ" c9ass="sref">L2TP_MDR_VSIZ9SEQ"/9>)-({l="net/l2tp/l2tp_core.c#L781"encap nam>7913/a>             781"encap nam>e" na       g     ifnt !*a h         f (3a href="+code=ref">payload_hook3        3a href="code_bk      g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+co    apav class="comment">/* No t I href="+9DATA class="sref">L2TP_M9G_SDA9A/a>, ass="sref">sess.123/a>,>3a hrefrecv dsho9tpacket  (en3%ud)n&q9ot;3/9pava,ls2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunne="sref">skb3/a>, 3sizeof3struct a9>3a hr9f="+code=heng class="sre9">len96a>)(llerr96a>);l
 L793">v7923/a> ="+_top_cud_decv_somre class="sre ="+_top_cud_de" nam>
 L786">v7823/a        3a href="codes="sref">skb3/a>, 3sizeof3struct a98ode=peer9cookie_len" cl784">v78649  96 ltuncess.12"/a>  *a href="+codeo    apav class="comment">/* No t I, *a hre95" class="line" nam>
 L695">v696paval v3a href="+codam85"unne="sref">skb3/a>, 3sizeof3struct a9&"_bd_hcsuacket wontrnt"s if pnabl9 d*/396>)-(lL2TP_MSG9SDATA963/a>l
 L686">v6893/a>                 a href="+code=L2tp_cbg" class="sref">l2tp_dbg3/a>(3a href="+code=sunnel" class="ore.c#L787" id
 L687" class="line" nam>785"class="s      apav class="string">"%s: rnodess.123 fou>3a hr9f="+code=heng class="sre9">len9/a>,-l
 L782">v7823/a>                g          a href="+code=Lunnel" class="sref">tunnel3/a>->3a href="+code=vam>" class="sref">nam>3/a>,v3a href="+code=nkb" class="sref">skb3/a>9 href="+c9de=oength" class="sref">9ength97    llerr971l
 L781">v7813/a> talass="sref">tunnel3/a>->3a href="+code=hetp_cnt" class="sref"v_somme2"/a>,3a href="+code=sess.12" clas782" class="line" nam>
 L782">v7823/a>             1">v7">hdrflags3/a> v3a href="+c1">v7">hdrflags3/ class
 L691">v6973/a>l         nam85"linvunne="sref">skb3/a>, 3sizeof3struct a9t;3a href9"+code=vam>" class="sref9>nam>97a>)(l9ength97a>);l         ="+_inve" nam>
 L786">v7823/a        3a href="codes="sref">skb3/a>, 3sizeof3struct a984" class9"line" nam>
 L684">v68749  97/a>;l
 L695">v697/a>;l/l2tp_core.c#L792" id
 L794" classs="comme9t">/* SPofnt o 32TP iead9r.*/397/a> lp_core.c#L7949  nam85"linv7913/a>         nam85"linvunne796">v7933/a>3s href="+code=Liscargt;3a hre9="+code=hata  class="sre9">ldt973/a>l         ="+_inve" nam>
 L786">v7823/a        3a href="codes="sref">skb3/a>, 3sizeof3struct a98gt;3a hr98" class="line" nam>
 L698">v6983/a> p_core.c#L7949  nam85"a> v3a href="+codam85"unne796">v7933/a>3s href="+code=Liscars="commen9">/* SGt w2TP ieader.*la9s3*/3983/a>lskb3/a>, 3sizeof3struct a9 *)33a hr9f="+code=ptr" class="sre9">ptr9/a> -l
 L691">v6983/a>l
 L786">v7823e.c#L781"encap nam>7913/a>             781"encap nam>e" ns="sref">skb3/a>, 3sizeof3struct a9="comment9>/* SCeck irotocol.iers.923*/398a>)(lL2TP_MDR_V9R_2MA98/a> l"net/l2tp/l2tp_core.c#L666666666666666666666666666666666666666666666666666666666666666666666666           apav class="comment">/* No t ef="+code9vers.12" class="sref">ve9s.12398 l687           apav class="comment">/* No t e" id
 L79DATA class="sref">L2TP_M9G_SDA98paval/* No t tch:ioto 937;uddexpeced u#37;udn&q9ot;3/98>)-(lv9rs.1298paval   claclaprovi789"           apav class="comment">/* No t tgt;3a hr9+code=derror class="sref9>lerr98paval/* No t 89" class9"line" nam>
 L689">v68939a>   9     l             build_e.c#v2_89" cle" na       g     ifnt !*a ="sre id
 L784" class="line" nam>
 L784">v7843/a>        }struct a href="+code=L2tp_cess.12" , void843/a>        }st clhref="+code=L2t clcodeo    apav class="comment">/* No t 0" id
 L690" class="line" nam>
 L690">v699/a>, ass="sref">sess.123/a>,>3a hrefomment">/9 PGt wength3of t2TP irck9t w/399ava,ls2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunneine" nam>
 L682">v6     if (33a href="+code=pkss.12" class="sref">sess.struct a href="+code=L2tp_cunne="sref">skb3/a>, 3sizeof3struct a9,>3a h9ef="+code=heng class="sr9f">le99paval &v3a href="+code=n3/a>        }st cl"a> v3a href="+c cl"unneine" nam>
 L682">v clhref="+code=L2t clcode="sref">skb3/a>, 3sizeof3struct a9,VER_2MAS93" class="line" nam>
 L693">v699a>);l &v3a href="+code=n3/a>        }stcore.c#L787" id
 L687" class="line" nam>
 L68 clhref="+code=L2t clcode="sref">skb3/a>, 3sizeof3struct a9,f="+code9i is handled dbydser pav9e */399>++;l
="sref">ptr3/a> , a ss="line" nam>
 L680">v6883nel3/a>->3a href="+code=vers.12" class="sref="sref">skb3/a>, 3sizeof3struct a9," id
 L79T class="sref">n2TP_HDRF9AG_OT99/a>;l
 L787">v7843/a>         a href="+code7">v7913/a>                 a href="+code=hunnel"_i" class="sref">uunpeer_ L787">v7843/a>         peer_ L787">v7sref="sref">skb3/a>, 3sizeof3struct a9,ch:ioto 9DATA class="sref">L2TP_M9G_SDA99/a> l
7938 id
 L798" class="line" nam>
 L798">v7913/a>         6     if (33a href="+code=pkss.12" class="sref">sess.peer_7938 id
 L798" class="linpeer_7938 id
 Lsref="sref">skb3/a>, 3sizeof3struct a9,ef="+cod9l prcket ,den3%udn&q9ot;3/99/a>,l9ength99pavalsess.send_79qf (33a href="+codnd_79qcodeo    apav class="comment">/* No t10 3a href=10 3a ength" class="sref">10 3a>10 3/a>l
="sref">ptr3/a> , a ss="line" |nam>
 L680">v6883nel3/a>-="sreS798" class="linnel3/a>-="sreSsref="s/pre>   apav class="comment">/* No t10 1a href=10 " class="line" nam>
 L610 " >10     l/* Sf otyp is aontro10 3a href=10 f="+code=heng class="sr10 f=>10 paval        }st cl"a> v3a href="+c cl"unne++e" nam>
 L683">v688tonef">ptr3/a> , a htonee" nam>
 L786">v7823="sref">ptr3/a> , a ss="line"s="sref">skb3/a>, 3sizeof3struct a10 4a href=10 " class="line" nam>
 L610 " >10 4aval        }st cl"a> v3a href="+c cl"unne++e" nam>
 L683">v688tonef">ptr3/a> , a htonee" nam>
 L786">v7823 L787">v7843/a>         a href="+codes="sref">skb3/a>, 3sizeof3struct a10 5a href=10  is handled dbydser pav10  i>10 5aval        }st cl"a> v3a href="+c cl"unne++e" nam>
 L683">v688tonef">ptr3/a> , a htonee" nam>
 L786">v7823nam>3/a>,v3a href="+code=nunnel3_i" class="sref">uunnel3_i"/a>, 3a href="10 6a href=10  class="sref">n2TP_HDRF10  c>10 6avalsess.send_79qf (33a href="+codnd_79qcodeolass="sref">sess.123/a>,>3a hre10 7a href=10 ATA class="sref">L2TP_M10 AT>10 /a>,  v3a href="+c cl"unne++e" nam>
 L683">v688tonef">ptr3/a> , a htonee" nam>
 L786">v7823nam>3/af (33a href="+code=pkss.12" class="sref">sess.nef">ptr3/a> , a nline"s="sref">skb3/a>, 3sizeof3struct a10 8a href=10  prcket ,den3%udn&q10  p>10 ava,l v3a href="+c cl"unne++e" tp/l2tp_core.c#L792" id
 L794" cla10 9a href=10 e=nength" class="sref">10 e=>10 a> -lsess.nef">ptr3/a> , a nline"lass="sref">sstats3/a>->3a href=1013a href=106" class="line" nam>
 L6106" >106"> -lsess.nef">ptr3/a> , a nline"     3" txffffss="sref">sstats3/a>->3a href=1011a href=10tract unnel3wnd wess.12 10tra>106paval
 L686">v6893/a>   href="+code=Le2p_decv_somme2" class="sref">s2tp_dede=sunnelull3/a>(3a href="+code=nnelullass="ore.c#L787" id
 L687" class="line" n5">v78d nne" n      apav class="string">"%s: rnodess.123 fo1062a href=10f="+code=ptr" class="sre10f=">106ava,lsess.n  g          a href="+code=Lunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.nef">ptr3/a> , a nline"s="sref">skb3/a>, 3sizeof3struct a1013a href=10code=ptr" class="sref">p10cod>106paval106=v2 lp10cod>106/a>;l v3a href="+c cl"unnei-ref="+code=Lkb" class="sref">skb3/a>) 3a hr="sref">skb3/a>, 3sizeof3struct a1016a href=10nam>
 L795">v7913/a>    10nam>1066> -l/* Skip iresnred ab10ent>106>)-(luu10nne>1068   l             build_e.c#v3_89" cle" na       g     ifnt !*a ="sre id
 L784" class="line" nam>
 L784">v7843/a>        }struct a href="+code=L2tp_cess.12" , void843/a>        }st clhref="+code=L2t clcodeo    apav class="comment">/* No t1069a href=10f="+code=ptr" class="sre10f=">1069a>, ass="sref">sess.123/a>,>3a hre1023a href=10code=Ltr" class="sref">p10cod>10cova,ls2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunneine" nam>
 L682">v6     if (33a href="+code=pkss.12" class="sref">sess.struct a href="+code=L2tp_cunne="sref">skb3/a>, 3sizeof3struct a10c1a href=10"line" nam>
 L790">v792310"li>10cpaval v3a href="+c cl"unneine" nam>
 L682">v clhref="+code=L2t clcode="sref">skb3/a>, 3sizeof3struct a10c2a href=101" class="line" nam>
 L7101" >10c2aval
 L68 cl"a> v3a href="+c cl"unne="sref">skb3/a>, 3sizeof3struct a10c3a href=10* SFindthe sess.12 sontr10* S>10ca>)(luess1012">10c3/a>l  class="comment">/* Sf otyp is aontro1025a href=10ccv_kb" class="sref">sec10ccv>10c ls. Ford5" ,/a> r L6844      1" css="l"           apav class="comment">/* No t10c6a href=10sto dser pavceto diel 1w10sto>10cpaval/* Sf otyp is aontro1027a href=10DATA class="sref">L2TP_M10DAT>10cpaval
 L687">v6867/aencap7" id
 L687" clencapclass=nam>
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=ENCAPTYPE_5" codeolass="sref">sess.123/a>,>3a hre1028a href=10/#37;u,). Passng3fup.n&q10/#3>10c/a>,l
="sref">ptr3/a> , a ss="line" nam>
 L680">v6883nel3/a>->333/a>(3a href="+code=a>->33unne="sref">skb3/a>, 3sizeof3struct a10c9a href=1012"_i" class="sref">uess1012">10ca> -luess.12"_i"/a> &v3a href="+code=ntohs" class="sref cl"a> v3a href="+c cl"unne)e" nam>
 L683">v688tonef">ptr3/a> , a htonee" nam>
 L786">v7823="sref">ptr3/a> , a ss="line"s="sref">skb3/a>, 3sizeof3struct a1033a href=10+code=derror class="sref10+co>10+ca>,l v3a href="+c cl"unnei" nam>
 L794">v7913/a>               10+1a href=10"line" nam>
 L790">v793310"li>10+pavaluess.12"_i"/a> &v3a href="+code=ntohs" class="sref cl"a> v3a href="+c cl"unne)e" tp/l2tp_core.c#L792" id
 L794" cla1032a href=101" class="line" nam>
 L7101" >10+a> -l v3a href="+c cl"unnei" nam>
 L794">v7913/a>               10+3a href=10ook" class="sref">payloa10ook>10+paval
 L7103" >10+=v2 lv793      10am>>10+5avaluess.12"_i"/a> &v3a href="+code=ntohs" class="sref cl"a> v3a href="+c cl"unne)e" nam>
 L683">v688ton87" id
 L687" cl8ton8e" nam>
 L786">v7823nam>3/af (33a href="+code=pkss.12" class="sref">sess.peer_7938 id
 L798" class="linpeer_7938 id
 Lsrefs="sref">skb3/a>, 3sizeof3struct a1036a href=105" class="line" nam>
 L7105" >10+/a>;l v3a href="+c cl"unnei" nam>
 L799">v7913/a>               10+7a href=10m class="sref">siscard"_10m c>10+pavalsess.cookie_s="sref">nam>3/a>,cookie_s="codeolass="sref">sess.123/a>,>3a hre1038a href=10"+code=vam>" class="sref10"+c>10+/a>,lnam>3/a>,memcpye" nam>
 L786">v7823 cl"a> v3a href="+c cl"unne,     3a href="+code=Lnam>3/af (33a href="+code=pkss.12" class="sref">sess.cookiesref">nam>3/a>,cookies.12[0]=Lunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.cookie_s="sref">nam>3/a>,cookie_s="codeom>
 L799">v7913/a>               10+9a href=10diata oacket wnd wcouldm10dia>10+a> -l v3a href="+c cl"unnei" nunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.cookie_s="sref">nam>3/a>,cookie_s="codem>
 L799">v7913/a>               1043a href=10 upto dser pavceto diel 10 up>10 uaval10 1lsess.l2specific_s="sref">nam>3/a>,l2specific_s="codeolass="sref">sess.123/a>,>3a hre1042a href=10ef="+code=hkb" class="sr10ef=>10 a> -l3/af (33a href="+code=pkss.12" class="sref">sess.l2specific_id
 sref">nam>3/a>,l2specific_id
 class=nam>
 L680">v6883nel3/L2SPECTYPE_DEFAULf="+code=hdrflags" clL2SPECTYPE_DEFAULfcodeolass="sref">sess.123/a>,>3a hre1043a href=10f="+code=hkb" class="sre10f=">10 =v2 l
l2r3/a>;, a href="+2ss="linetp/l2tp_core.c#L792" id
 L794" cla1044a href=10" class="line" nam>
 L7810" c>10 a> -l3/af (33a href="+code=pkss.12" class="sref">sess.send_79qf (33a href="+codnd_79qcodeolass="sref">sess.123/a>,>3a hre1045a href=10="+code=lNULL class="sre10="+>10 >) {l;, a href="+2ss="linetx40000000 |Lunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.nef">ptr3/a> , a nline"p/l2tp_core.c#L792" id
 L794" cla1046a href=10="+code=hptr" class="sre10="+>10 /a>, sess.nef">ptr3/a> , a nline"lass="sref">sstats3/a>->3a href=1047a href=10pdrflags" class="sref">h10pdr>10 /a>, sess.nef">ptr3/a> , a nline"     3" txffffffss="sref">sstats3/a>->3a href=1048a href=10.12"_i" class="sref">ues10.12>10 ava,l
 L686">v6893/a>   href="+code=Le2p_decv_somme2" class="sref">s2tp_dede=sunnelull3/a>(3a href="+code=nnelullass="s="sref">sstats3/a>->3a href=1049a href=10e=pers.12" class="sref">10e=p>10 a>,-lv78d nne" n      apav class="string">"%s: rnodess.123 fo1053a href=10ode=L2ngth" class="sref"10ode>10od>,-l3/af (33a href="+code=pkss.12" class="sref">sess.n  g          a href="+code=Lunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.nef">ptr3/a> , a nline"s="sref">skb3/a>, 3sizeof3struct a1051a href=10ode=hueats" class="sref"10ode>10opaval
 L7101" >10o2v2 l10o=v2 luess.12"_i"/a> &v3a href="+code=ntohs" class="sref cl"a> v3a href="+c cl"unne)e" nam>
 L683">v688ton87" id
 L687" cl8ton8e" nam>
 L786">v7823l2r3/a>;, a href="+2ss="ls="sref">skb3/a>, 3sizeof3struct a1054a href=10m class="sref">siscard"_10m c>10oa> -l
 L7104" >10o>);{l v3a href="+c cl"unnei" nunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.l2specific_s="sref">nam>3/a>,l2specific_s="code="sref">skb3/a>, 3sizeof3struct a1056a href=10ersifies(he packet wengt10ers>10o/a>, _10e=L>10opavalsess.offs>v7913/a>        offs>vcodeo    apav class="comment">/* No t1058a href=107" class="line" nam>
 L7107" >10o/a>,l v3a href="+c cl"unnei" nunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.offs>v7913/a>        offs>vcode="sref">skb3/a>, 3sizeof3struct a1059a href=10"comment">/* Sehortpacke10"co>10o=v2 lL2TP_MDR_VSIZ10ass>10asa>;l v3a href="+c cl"unnei-ref="+code=Lkb" class="sref">skb3/a>) 3a hr="sref">skb3/a>, 3sizeof3struct a1061a href=10DATA class="sref">L2TP_M10DAT>10aa> -l10a3   l
xmit L781e" na       g     ifnt !*a ="sre id
 L784" class="line" nam>
 L784">v7843/a>        }struct a href="+code=L2tp_cess.12" , k      g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+cing">"%s: rnodess.123 fo1064a href=10+code=derror class="sref10+co>10aa> -lptr3/a> , a ssowiss="sref">payload_hoof87" id
 L687" clf=hetp_cnt" class="sref"ize_v7913/a>         ize_v" class="line" nam>
>v7a_s="sref">nam>3/a>,>v7a_s="codeo    apav class="comment">/* No t1065a href=10cookie_len" cl784">v786410coo>10a>);{lass="sref">sess.123/a>,>3a hre1066a href=105" class="line" nam>
 L6105" >10a/a>, s2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunneine" nam>
 L682">v6     if (33a href="+code=pkss.12" class="sref">sess.struct a href="+code=L2tp_cunne="sref">skb3/a>, 3sizeof3struct a1067a href=10acket wontrnt"s if pnabl10ack>10apavalnam>3/a>,v3a hreine" nam>
 L682">v6892/a>        3a href="+code=Length" class="sref">length3/a>,=v3a href="+code=lkb" class="sref">skb3/a10a8a href=10TA class="sref">L2TP_MSG10TA >10a/a>,l
 L799">v7993/a>                iot10a9a href=10f="+code=heng class="sre10f=">10a9a>, (3s}struct a href="+code=L2tp_cea,sref">payload_hookd_stats_update_bnd" ccL2tp_ceats" class="sref">s2tp_ceats"/a>  1073a href=10de=oength" class="sref">10de=>10dev2 l10d l/* Sf otyp is aontro1072a href=101" class="line" nam>
 L6101" >10da> -lsess.send_79qf (33a href="+codnd_79qcodeo    apav class="comment">/* No t1073a href=10"+code=vam>" class="sref10"+c>10d=v2 l
 L686">v6893/a>   href="+code=Le2p_decv_somme2" class="sref">s2tp_dede=sunnelbg3/a>(3a href="+code=sunnel" class="ore.c#L787" id
 L687" class="line" nodndn     Zs      , ns=      apav class="string">"%s: rnodess.123 fo1074a href=10de=oength" class="sref">10de=>10da> -l3/af (33a href="+code=pkss.12" class="sref">sess.n  g          a href="+code=Lunnel" class="s>v7a_s="sref">nam>3/a>,>v7a_s="code=Lunnel" class="sram>3/af (33a href="+code=pkss.12" class="sref">sess.nef">ptr3/a> , a nline"i-r1s="sref">skb3/a>, 3sizeof3struct a1075a href=10"line" nam>
 L684">v687410"li>10d>);{lskb3/a>, 3sizeof3struct a1076a href=105" class="line" nam>
 L6105" >10dpaval
 L686">v6893/a>   href="+code=Le2p_decv_somme2" class="sref">s2tp_dede=sunnelbg3/a>(3a href="+code=sunnel" class="ore.c#L787" id
 L687" class="line" nodndn     Zs      apav class="string">"%s: rnodess.123 fo1077a href=10t">/* SPofnt o 32TP iead10t">>10d/a>, sess.n  g          a href="+code=Lunnel" class="s>v7a_s="sref">nam>3/a>,>v7a_s="codes="sref">skb3/a>, 3sizeof3struct a1078a href=10="+code=hata  class="sre10="+>10d/a>,l
 L6108" >10dpavalsess.debugsref">nam>3/a>,>ebugine"     3s="sref">s2tp_dede=sunnelbg3/a>(3a href="+code=sunnel" class=olass="sref">sess.123/a>,>3a hre1083a href=10">/* SGt w2TP ieader.*la10">/>10">> -lnam>3/a>,uhs=" hreinet/l2tp/l2tp_core.c#L787" id
 L687" class="line" nam>
 L687">v6867/aencap7" id
 L687" clencapclass=nam>
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=ENCAPTYPE_5" codeol?bkb_mull" class="sref">p_bkb_mull"/a>(3a href="+code=skb" clas :etp/l2tp_core.c#L792" id
 L794" cla1081a href=10f="+code=ptr" class="sre10f=">10"pavalv7ap7" id
 L687" cl>v7ap hreine" nam>
 L682">v6892/a>        3a href="+code=Length" class=">v7a7" id
 L687" cl>v7aunnei"et/l2tp/l2tp_coruhs="sref">nam>3/a>,uhs=" hrep/l2tp_core.c#L792" id
 L794" cla1082a href=101" class="line" nam>
 L6101" >10"2v2 lnam>3/a>,pr_debug>
 L68e.c#L787" id
 L687" class="line" nxmit="sref">L2IMIT_NETDEBUG/a>,3apavnam>3/af (33a href="+code=pkss.12" class="sref">sess.n  g          a href="+codes="sref">skb3/a>, 3sizeof3struct a1084a href=10 class="sref">L2TP_MDR_V10 cl>10"a> -lnam>3/a>,pr68t_hex_dump_     >
 L68e.c#L787" id
 L687" class="ref">L2IMIT_NETDEBUG/a>,3apavDUMP_PREFIX_OFFSEf="+code=hdrflagDUMP_PREFIX_OFFSEf="+cing">"%s: rnodess.123 fo1085a href=10vers.12" class="sref">ve10ver>10">) {lv7ap7" id
 L687" cl>v7ap hreNETDEBUG/a>,3apavmin_v7913/a>        min_v>
 L686">v6893/a>   hize_v7913/a>         ize_v" cl, 32Lptr" class="sref">osref">nam>3/a>,v3a hrei-ref="+code=Lkb" uhs="sref">nam>3/a>,uhs=" hress="sref">skb3/a>, 3sizeof3struct a10"6a href=10DATA class="sref">L2TP_M10DAT>10"/a>, )-(lv10=ve>10"3/a>l
 L792">v7922/a>         spav class=10"9a href=10+code=derror class="sref10+co>10"9>,-lskb3/a>, 3sizeof3struct a1093a href=10"line" nam>
 L689">v689310"li>10"l hre#"neLength" class="IS=ENABLEDcode=hayload_hoIS=ENABLED>
 L686">v6893/a>   CONFIG_IPV12"_i"/a> &v3a hCONFIG_IPV1codeo    apav class="comment">/* No t1091a href=100" class="line" nam>
 L6100" >10"1lnam>3/a>,/a_familyclass=nam>
 L680">v6883PFnamET12"_i"/a> &v3a hPFnamET1codeo    apav class="comment">/* No t1092a href=10 PGt wength3of t2TP irck10 PG>10"a> -l
 ine" nam>
 L682">vof t6_c/a_xmit799" class="linof t6_c/a_xmit>
 L686">v6893/a>   hv_somme2"/a>,3a href="+code=sess.12" clascess.12"/a>  *a href="+codeo="sref">skb3/a>, 3sizeof3struct a1093a href=10ef="+code=heng class="sr10ef=>10"=v2 lskb3/a>, 3sizeof3struct a1094a href=103" class="line" nam>
 L6103" >10"a> -l#dndif"sref">skb3/a>, 3sizeof3struct a1095a href=10i is handled dbydser pav10i i>10">);{l
 ine" nam>
 L682">vop_queue_xmit799" class="linop_queue_xmit>
 L686">v6893/a>   hv_somme2"/a>,3a href="+code=sess.12" clasf87" id
 L687" clf=hetpo="sref">skb3/a>, 3sizeof3struct a1096a href=10T class="sref">n2TP_HDRF10T c>10"/a>;l/l2tp_core.c#L792" id
 L794" cla10"7a href=10DATA class="sref">L2TP_M10DAT>10"7/a>lv78 cL2tp" nam>
 L792">v7922/a>         spav class=1098a href=10l prcket ,den3%udn&q10l p>10"3/a>ls2tp_cersifydud_d_stats_update_bnd" cL2tp_ceats" class="sref">s2tp_ceats"/a>  10"9a href=10de=nength" class="sref">10de=>10"9>,-l
 L783">v7823/a>        3a href="+code=L64_s }struct a href="+code=L2tp_ceaf">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->11 3a href=11 3a ength" class="sref">11 3a>11 3/a>lpayload_hookd_stats_update_bnd" ccL2tp_ceae"     3a href="+code=L6     if (33a href="+code=pkss.12" class="sref">sess.s_stats_update_bnd" cL2tp_ceats" class="sref">s2tp_ceats"/a>  11 1a href=11 " class="line" nam>
 L611 " >110 l
 L783">v7823/a>        3a href="+code=L64_skd_stats_update_bnd" ccL2tp_ceaf">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->11 2a href=11 PGt wength3of t2TP irck11 PG>110a> -l
 i">u6= 0olass="sref">sess.123/a>,>3a hre11 3a href=11 f="+code=heng class="sr11 f=>110=v2 lu64_stats_update_tx_packetuct a href="+codex_packetu_cealass="sref">sstats3/a>->3a href=11 4a href=11 " class="line" nam>
 L611 " >110a> -lu64_stats_update_tx_     sref">nam>3/a>,tx_     unnei"" nam>
 L793">v792ref">length3/a>,=v3a href="+code=lkb" class="sref">skb3/a11 5a href=11  is handled dbydser pav11  i>110>);{lu64_stats_update_tx_packetuct a href="+codex_packetu_cealass="sref">sstats3/a>->3a href=11 6a href=11  class="sref">n2TP_HDRF11  c>110pavalu64_stats_update_tx_     sref">nam>3/a>,tx_     unnei"" nam>
 L793">v792ref">length3/a>,=v3a href="+code=lkb" class="sref">skb3/a11 7a href=11 ATA class="sref">L2TP_M11 AT>11 /a>, sess.123/a>,>3a hre11 8a href=11  prcket ,den3%udn&q11  p>11 ava,lu64_stats_update_tx_       3a href="+ctde=_stats" class="sref">sstats3/a>->3a href=11 9a href=11 e=nength" class="sref">11 e=>11 a> -lu64_stats_update_tx_       3a href="+ctde=_stats" class="sref">sstats3/a>->3a href=1113a href=116" class="line" nam>
 L6116" >111uaval
 L785">v7825/a>        3a href="+code=L }struct a href="+code=L2tp_ceaf">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->11 2a href=11f="+code=ptr" class="sre11f=">116ava,l
 L785">v7825/a>        3a href="+code=Lkd_stats_update_bnd" ccL2tp_ceaf">u64_stats_update_end3/a>(&3a href="+code=sstats" class="sref">sstats3/a>->1113a href=11code=ptr" class="sref">p11cod>111a>)(l111a> -lp11cod>116/a>;lv7913/a>    11nam>111/a>;l/l2tp_core.c#L792" id
 L794" cla1167a href=11ent">/* Skip iresnred ab11ent>111paval/* No t1118a href=11nnel"_i" class="sref">uu11nne>111pavalv7922/a>         spav class=1169a href=11f="+code=ptr" class="sre11f=">1169a>,     k      g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+co    apav class="comment">/* No t16a3a href=11code=Ltr" class="sref">p11cod>11cova,lass="sref">sess.123/a>,>3a hre11c1a href=11"line" nam>
 L790">v792311"li>112 l         ="+_inve" nam>
 L786">v7823/a92/a>        3a href="+code=Length" class="/a        3a href="codestats" class="sref">sstats3/a>->11c2a href=111" class="line" nam>
 L7111" >112a>,-luess1112">112/a> l"net/l2tp/l2tp_core.c#L68Ford>v7a79kbsd
 at we transmit, we p/lociv78 withd
 L7 class  ="+>vco>
 L792">v7922/a>         spav class=1125a href=11ccv_kb" class="sref">sec11ccv>11c l/* No t11c6a href=11sto dser pavceto diel 1w11sto>11cpavalv7922/a>         spav class=1127a href=11DATA class="sref">L2TP_M11DAT>11cpaval
 L682">vof"sref"9" class="linof"srel    k      g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+c, k      g     ifnt !*a h         f (3a href="+code=ref">payload_hook3        3a href="codeo    apav class="comment">/* No t16a8a href=11/#37;u,). Passng3fup.n&q11/#3>11c/a>,lass="sref">sess.123/a>,>3a hre11c9a href=1112"_i" class="sref">uess1112">1129>,-l
 L786">v7823/a        3a href="codestats" class="sref">sstats3/a>->1133a href=11+code=derror class="sref11+co>1133/a>lpayload_hooka92/a>        3a href="+code=Length" class="/a        3a href="codeine" nam>
 L682">v68        3a href="codetats" class="sref">sstats3/a>->1131a href=11"line" nam>
 L790">v793311"li>113 l
 L682">v792"  ="+_wfre8 L686" class="line"  ="+_wfre8>   tats" class="sref">sstats3/a>->1132a href=111" class="line" nam>
 L7111" >113a>,-lpayloa11ook>113a>)(l
 L7113" >11+=v2 l#"neLength" class="IS=ENABLEDcode=hayload_hoIS=ENABLED>
 L686">v6893/a>   CONFIG_IPV12"_i"/a> &v3a hCONFIG_IPV1codeo    apav class="comment">/* No t1135a href=11am>
 L794">v793      11am>>11+5aval    k      g     ifnt !*a h         f (3a href="+code=ref">payload_hook3        3a href="code, k      g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+cing">"%s: rnodess.123 fo1136a href=115" class="line" nam>
 L7115" >113/a>, nam>3/a>,udp_s="codeo    apav class="comment">/* No t1137a href=11m class="sref">siscard"_11m c>11+pavalass="sref">sess.123/a>,>3a hre1138a href=11"+code=vam>" class="sref11"+c>11+/a>,lpayload_hoon/a>(&3a hrefnp hreine" nam>
 L682">vof t6_k3        3a hrefof t6_k3e" nam>
 L786">v7823/a        3a href="codestats" class="sref">sstats3/a>->1139a href=11diata oacket wnd wcouldm11dia>1139a>, (3a href="+code=skb" clasref">payload_hoour3/a>;, a href="uh hreine" nam>
 L682">vudp_"/a>(3a href="+code=s_kb" claam>
 L786">v7823/a92/a>        3a href="+stats" class="sref">sstats3/a>->1143a href=11 upto dser pavceto diel 11 up>114ev2 l11 1lv7823/a9_dsv7913/a>         a9_dsv claam>
 L786">v7823/a92/a>        3a href="+s || !m>
 L786">v7823/a9_dsv7913/a>         a9_dsv claam>
 L786">v7823/a92/a>        3a href="+scode=Length" class=">e>7913/a>        >e>l<||
 L786">v7823/a9_dsv7913/a>         a9_dsv claam>
 L786">v7823/a92/a>        3a href="+scode=Length" class=">e>7913/a>        >e>lcode=Length" class="featur  sref">nam>3/a>,featur  m>
 i"   3s="sref">s2tp_deNETIF_F_IPV1_CSUMsref">nam>3/a>,NETIF_F_IPV1_CSUMf="+solass="sref">sess.123/a>,>3a hre1143a href=11f="+code=hkb" class="sre11f=">11 =v2 ls2tp_de__w/um L686" class="l__w/umv2 l<="sref">s2tp_dec/um L686" class="lc/um>   ine" nam>
 L682">v689_check/um L686" class="l689_check/um claam>
 L786">v7823/a92/a>        3a href="+, 0ode=sess.12" clasudp_s="sref">nam>3/a>,udp_s="code, 0stats" class="sref">sstats3/a>->1144a href=11" class="line" nam>
 L7811" c>11 a> -l        3a href="+code=Length" class="i"  utp/v3a href="+code=i"  utp/v>   ine" nam>
 L682">vCHECKSUM_UNNECESSARY2"_i"/a> &v3a hCHECKSUM_UNNECESSARY>   tats" class="sref">sstats3/a>->1145a href=11="+code=lNULL class="sre11="+>11 >) {lpayload_hoour3/a>;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   ine" nam>
 L682">vc/um ipv6_magic L686" class="lc/um ipv6_magic>        3a href="+code=Ln/a>(&3a hrefnp hrecode=Length" class="/ad/a>(3a href="+cod/ad/acode,     3a href="+code=Ln/a>(&3a hrefnp hrecode=Length" class="dad/a>(3a href="+coddad/acode, e=sess.12" clasudp_s="sref">nam>3/a>,udp_s="code,ats" class="sref">sstats3/a>->1146a href=11="+code=hptr" class="sre11="+>11 /a>, payload_hooIPPROTO_5" 3/a>(3a href="+IPPROTO_5" code, e=sess.12" clasc/um L686" class="lc/um>   stats" class="sref">sstats3/a>->1147a href=11pdrflags" class="sref">h11pdr>11 /a>,          ur3/a>;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   in= 0oats" class="sref">sstats3/a>->1148a href=11.12"_i" class="sref">ues11.12>11 ava,lpayload_hoour3/a>;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   ine" nam>
 L682">vCSUM_MANGLED_02"_i"/a> &v3a hCSUM_MANGLED_0>   tats" class="sref">sstats3/a>->1149a href=11e=pers.12" class="sref">11e=p>11 a>,-lsess.123/a>,>3a hre1153a href=11ode=L2ngth" class="sref"11ode>11od>,-l        3a href="+code=Length" class="i"  utp/v3a href="+code=i"  utp/v>   ine" nam>
 L682">vCHECKSUM_PARTIAs.12"/a>  *a hreCHECKSUM_PARTIAs>   tats" class="sref">sstats3/a>->1151a href=11ode=hueats" class="sref"11ode>11opaval        3a href="+code=Length" class="c/um starv7913/a>        c/um starv>   ine" nam>
 L682">v689_transport_89" cl7913/a>        689_transport_89" cl claam>
 L786">v7823/a92/a>        3a href="+s -ref="+code=Lkb"  892/a>        3a href="+code=Length" class="89" 2/a>        3a 89" >   tats" class="sref">sstats3/a>->1152a href=111" class="line" nam>
 L7111" >115a> -l
 L682">voffs>vo+code=hayload_hooffs>vo+>    k      g     ifnt !*a ull"/a>(3a href="+code=skb" cla, e=sess.12" clascheck L686" class="lcheck>   stats" class="sref">sstats3/a>->1153a href=11f="+code=Lkb" class="sre11f=">11o=v2 lpayload_hoour3/a>;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   ine~" nam>
 L682">vc/um ipv6_magic L686" class="lc/um ipv6_magic>        3a href="+code=Ln/a>(&3a hrefnp hrecode=Length" class="/ad/a>(3a href="+cod/ad/acode,     3a href="+code=Ln/a>(&3a hrefnp hrecode=Length" class="dad/a>(3a href="+coddad/acode,ats" class="sref">sstats3/a>->1154a href=11m class="sref">siscard"_11m c>11oa> -lnam>3/a>,udp_s="code, ef">payload_hooIPPROTO_5" 3/a>(3a href="+IPPROTO_5" code, 0stats" class="sref">sstats3/a>->1155a href=114" class="line" nam>
 L7114" >11o>);{l_11e=L>11opaval#dndif"sref">skb3/a>, 3sizeof3struct a1158a href=117" class="line" nam>
 L7117" >115/a>,l/* Sehortpacke11"co>11o=v2 l"net/l2tp/l2tp_core.c#L68If ealler requiresd
 L79kbLto have a ppp=89" cl,/a> =89" clamust beam>
 L792">v7922/a>         spav class=1163a href=11ass="sref">L2TP_MDR_VSIZ11ass>11asa>;lv7a7before98allingd
 684funct7">"           apav class="comment">/* No t1161a href=11DATA class="sref">L2TP_M11DAT>11aa> -lv7922/a>         spav class=11a2a href=11tpacket  (en3%ud)n&q11tpa>11a2v2 l="net/l2tp/l2tp_core.c#Lxmit  892/a>        3a e.c#Lxmit  89>    k      g     ifnt !*a ine"  id
 L784" class="line" nam>
 L784">v7843/a>        }struct a href="+code=L2tp_cess.12" , k      g     ifnt !*a href="+code=hayload_hook" class="sref">payload_hook3/a>)(3struct a href="+cit""net/l2tp/l2tp_corkb"_s="sref">nam>3/a>,kb"_s="codeo    apav class="comment">/* No t1163a href=11f="+code=heng class="sre11f=">11a3   lass="sref">sess.123/a>,>3a hre1164a href=11+code=derror class="sref11+co>11aa> -lv7a_s="sref">nam>3/a>,>v7a_s="codeine" nam>
 L682">v6892/a>        3a href="+code=Length" class="sref">length3/a>,=v3a href="+code=lkb" class="sref">skb3/a1165a href=11cookie_len" cl784">v786411coo>116>);{ls2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunneine" nam>
 L682">v6     if (33a href="+code=pkss.12" class="sref">sess.struct a href="+code=L2tp_cunne="sref">skb3/a>, 3sizeof3struct a1166a href=115" class="line" nam>
 L6115" >11a/a>, payload_hook3        3a href="codeine" nam>
 L682">v_cersifydud_dheck sum class="sref">s2tp_cersifydud_d         f (3a href="+code="sref">skb3/a>, 3sizeof3struct a1167a href=11acket wontrnt"s if pnabl11ack>11apavalptr3/a> , a ssowiss="sref">payload_hoof87" id
 L687" clf=hetp="sref">skb3/a>, 3sizeof3struct a1168a href=11TA class="sref">L2TP_MSG11TA >116/a>,l(3a href="+code=skb" clasref">payload_hoour3/a>;, a href="uh hre="sref">skb3/a>, 3sizeof3struct a1169a href=11f="+code=heng class="sre11f=">11a9a>, payload_hooof t      f (3a hreof t hre="sref">skb3/a>, 3sizeof3struct a1173a href=11de=oength" class="sref">11de=>1173/a>lpayload_hoo__w/um L686" class="l__w/umv2 l<="sref">s2tp_dec/um L686" class="lc/um>   ="sref">skb3/a>, 3sizeof3struct a1171a href=11+code=derror class="sref11+co>11d l   ="sref">skb3/a>, 3sizeof3struct a1172a href=111" class="line" nam>
 L6111" >11da> -lnam>3/a>,uhs=" hreinet/l2tp/l2tp_core.c#L787" id
 L687" class="line" nam>
 L687">v6867/aencap7" id
 L687" clencapclass=nam>
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=ENCAPTYPE_5" codeol?bkb_mull" class="sref">p_bkb_mull"/a>(3a href="+code=skb" clas :etp/l2tp_core.c#L792" id
 L794" cla1173a href=11"+code=vam>" class="sref11"+c>11d=v2 lnam>3/a>,udp_s="codep/l2tp_core.c#L792" id
 L794" cla1174a href=11de=oength" class="sref">11de=>117a> -lv>   ine" nam>
 L682">vNET_XMIT_SUCCESSsref">nam>3/a>,NET_XMIT_SUCCESScodep/l2tp_core.c#L792" id
 L794" cla1175a href=11"line" nam>
 L684">v687411"li>11d>);{l/l2tp_core.c#L792" id
 L794" cla1176a href=115" class="line" nam>
 L6115" >11dpavalv7922/a>         spav class=1177a href=11t">/* SPofnt o 32TP iead11t">>117paval
 L792">v7922/a>         spav class=1178a href=11="+code=hata  class="sre11="+>117paval/* No t11d9a href=118" class="line" nam>
 L6118" >117=v2 l"net/l2tp/l2tp_core.c#_tttttttt*nam>
 L792">v7922/a>         spav class=1183a href=11">/* SGt w2TP ieader.*la11">/>1183/a>lpayload_hook9" room L686" class="lk9" room>   ine" nam>
 L682">vNET_SKB_PADcode=hayload_hoNET_SKB_PAD>   i+bkb_mull" class="sref">p_bkb_mil"/a>(3a href="+codiskb" clas +92">v7922/a>         spav class=1181a href=11f="+code=ptr" class="sre11f=">11"pavalnam>3/a>,uhs=" hrei"et/l2tp/l2tp_corkb"_s="sref">nam>3/a>,kb"_s="codep/l2tp_core.c#L792" id
 L794" cla1182a href=111" class="line" nam>
 L6111" >118a> -l        3a 689_cow_89"  claam>
 L786">v7823/a92/a>        3a href="+, ef">payload_hook9" room L686" class="lk9" room>   solass="sref">sess.123/a>,>3a hre1183a href=11>/* SCeck irotocol.iers.11>/*>11"=v2 lv7823/a92/a>        3a href="+sp/l2tp_core.c#L792" id
 L794" cla1184a href=11 class="sref">L2TP_MDR_V11 cl>11"a> -l        }stNET_XMIT_DRO 3/a>(3a href="+NET_XMIT_DRO codep/l2tp_core.c#L792" id
 L794" cla1185a href=11vers.12" class="sref">ve11ver>118>);{lL2TP_M11DAT>118/a>;l/l2tp_core.c#L792" id
 L794" cla1187a href=1137;uddexpeced u#37;udn&q1137;>1187/a>lpayload_hoo689_orphaif (33a href="+co89_orphai claam>
 L786">v7823/a92/a>        3a href="+sp/l2tp_core.c#L792" id
 L794" cla1188a href=11=vers.12" class="sref">v11=ve>11"3/a>l
 L792">v7922/a>         spav class=1189a href=11+code=derror class="sref11+co>11"9>,-lsess.build_89" cl7913/a>        build_89" cl claam>
 L786">v7823/ref="+code=Le2p_decv_somme2" class="sref">s2tp_de_  kb_pusr3/a>;, a href="_  kb_pusr claam>
 L786">v7823/a92/a>        3a href="+, ef">payload_hookb"_s="sref">nam>3/a>,kb"_s="codeosp/l2tp_core.c#L792" id
 L794" cla1193a href=11"line" nam>
 L689">v689311"li>119ev2 l
 L6110" >119 lv7922/a>         spav class=1192a href=11 PGt wength3of t2TP irck11 PG>11"a> -lpayload_hoomems>v7913/a>        mems>v>        3am>
 L786">v7823IPCB3/a>(3a href="+IPCB claam>
 L786">v7823/a92/a>        3a href="+s" class="sref">sess.opv7913/a>        opvcodeo, 0odkb_mullm>
 L786">v7823IPCB3/a>(3a href="+IPCB claam>
 L786">v7823/a92/a>        3a href="+s" class="sref">sess.opv7913/a>        opvcodeosp/l2tp_core.c#L792" id
 L794" cla1193a href=11ef="+code=heng class="sr11ef=>11"=v2 l
 L786">v7823IPCB3/a>(3a href="+IPCB claam>
 L786">v7823/a92/a>        3a href="+s" class="sref">sess.flag sref">nam>3/a>,flag v2 l<    3" ~lm>
 L786">v7823IPSKB_XFRM_TUNNEL_SIZE3/a>(3a href="+IPSKB_XFRM_TUNNEL_SIZEv2 l<|Lunnel" class="sIPSKB_XFRM_TRANSFORMEDcode=hayload_hoIPSKB_XFRM_TRANSFORMEDv2 l<|/l2tp_core.c#L792" id
 L794" cla1194a href=113" class="line" nam>
 L6113" >119a> -l11">);{lv7823/a92/a>        3a href="+sp/l2tp_core.c#L792" id
 L794" cla1196a href=11T class="sref">n2TP_HDRF11T c>11"/a>;l/l2tp_core.c#L792" id
 L794" cla11"7a href=11DATA class="sref">L2TP_M11DAT>1197/a>lpayload_hoobh_l="+_d         f (3a hrebh_l="+_d    claam>
 L786">v7823/a        3a href="codesp/l2tp_core.c#L792" id
 L794" cla1198a href=11l prcket ,den3%udn&q11l p>11"3/a>l        6="+_owned_by_uscl claam>
 L786">v7823/a        3a href="codesolass="sref">sess.123/a>,>3a hre11"9a href=11de=nength" class="sref">11de=>119a> -lv7823/a92/a>        3a href="+sp/l2tp_core.c#L792" id
 L794" cla12 3a href=12 3a ength" class="sref">12 3a>120d>,-lv>   ine" nam>
 L682">vNET_XMIT_DRO 3/a>(3a href="+NET_XMIT_DRO codep/l2tp_core.c#L792" id
 L794" cla12 1a href=12 " class="line" nam>
 L612 " >120paval
 L682">vout_unl         f (3a hreout_unl   codep/l2tp_core.c#L792" id
 L794" cla12 2a href=12 PGt wength3of t2TP irck12 PG>120a> -l
 L612 " >120a> -lvt*nam>
 L792">v7922/a>         spav class=12 5a href=12  is handled dbydser pav12  i>120>);{lv7823/a92/a>        3a href="+sp/l2tp_core.c#L792" id
 L794" cla12 6a href=12  class="sref">n2TP_HDRF12  c>120pavalv7823/a92/a>        3a href="+, ef">payload_hoodsv_cloref"9" class="lindsv_clore claam>
 L786">v7823_  k_dsv_check L686" class="l_  k_dsv_check claam>
 L786">v7823/a        3a href="code, 0sosp/l2tp_core.c#L792" id
 L794" cla12 7a href=12 ATA class="sref">L2TP_M12 AT>120>)-(l
 L682">vof t_k3        3a hrefof t_k3e" nam>
 L786">v7823/a        3a href="codestats" class="sref">sstats3/a>->12 9a href=12 e=nength" class="sref">12 e=>1209>,-lsess.cork L686" class="lcork hre.ef">payload_hoof87" id
 L687" clf=hetp="sref">skb3/a>, 3sizeof3struct a1213a href=126" class="line" nam>
 L6126" >121uaval
 L687">v6867/aencap7" id
 L687" clencapclasolass="sref">sess.123/a>,>3a hre1211a href=12tract unnel3wnd wess.12 12tra>121 l
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=ENCAPTYPE_5" code:ss="sref">sess.123/a>,>3a hre1212a href=12f="+code=ptr" class="sre12f=">126ava,l
 L792">v7922/a>         spav class=1213a href=12code=ptr" class="sref">p12cod>121=v2 ls2tp_de__ kb_pusr3/a>;, a href="_  kb_pusr claam>
 L786">v7823/a92/a>        3a href="+, kb_mullref">payload_hoour3/a>;, a href="uh hreosp/l2tp_core.c#L792" id
 L794" cla1264a href=12f="+code=ptr" class="sre12f=">121a> -lv_transport_89" cl7913/a>        689_res>v_transport_89" cl claam>
 L786">v7823/a92/a>        3a href="+sp/l2tp_core.c#L792" id
 L794" cla1215a href=12code=ptr" class="sref">p12cod>121>) {lpayload_hoour3/a>;, a href="uh hreine" nam>
 L682">vudp_"/a>(3a href="+code=s_kb" claam>
 L786">v7823/a92/a>        3a href="+stats" class="sref">sstats3/a>->1216a href=12nam>
 L795">v7913/a>    12nam>121pavalsess.sourcef"9" class="linsource hreine" nam>
 L682">vof t      f (3a hreof t hre" class="sref">sess.of t_kport        3a hrefof t_kporthetp="sref">skb3/a>, 3sizeof3struct a1217a href=12ent">/* Skip iresnred ab12ent>121/a>, sess.>ek f"9" class="lindest hreine" nam>
 L682">vof t      f (3a hreof t hre" class="sref">sess.of t_dport        3a hrefof t_dporthetp="sref">skb3/a>, 3sizeof3struct a1218a href=12nnel"_i" class="sref">uu12nne>121ava,lnam>3/a>,udp_s="codeine" nam>
 L682">vuhs="sref">nam>3/a>,uhs=" hrei"et/l2tp/l2tp_corkb"_s="sref">nam>3/a>,kb"_s="codei"et/l2tp/l2tp_cor>v7a_s="sref">nam>3/a>,>v7a_s="code="sref">skb3/a>, 3sizeof3struct a1219a href=12f="+code=ptr" class="sre12f=">121a> -lsess.e="sref">nam>3/a>,v3a hreine" nam>
 L682">vhtonef">ptr3/a> , a htone claam>
 L786">v7823udp_s="sref">nam>3/a>,udp_s="codeo="sref">skb3/a>, 3sizeof3struct a12a3a href=12code=Ltr" class="sref">p12cod>122d>,-l;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   inetp/l2tp_core.c#L792" id
 L794" cla12c1a href=12"line" nam>
 L790">v792312"li>122 l/l2tp_core.c#L792" id
 L794" cla12c2a href=121" class="line" nam>
 L7121" >122ava,lv7922/a>         spav class=1223a href=12* SFindthe sess.12 sontr12* S>12ca>)(l#"neLength" class="IS=ENABLEDcode=hayload_hoIS=ENABLED>
 L686">v6893/a>   CONFIG_IPV12"_i"/a> &v3a hCONFIG_IPV1codeo    apav class="comment">/* No t12c4a href=1212"_i" class="sref">uess1212">122a> -l         68        3a href="codecode=Length" class="/a_familysref">nam>3/a>,/a_familyclass=nam>
 L680">v6883PFnamET12"_i"/a> &v3a hPFnamET1codeo    apav class="comment">/* No t1225a href=12ccv_kb" class="sref">sec12ccv>122>) {lsess.e22" xmit ipv6_c/um L686" class="line" xmit ipv6_c/um>    m>
 L786">v7823/a        3a href="code, m>
 L786">v7823/a92/a>        3a href="+, ef">payload_hooudp_s="sref">nam>3/a>,udp_s="codeo="sref">skb3/a>, 3sizeof3struct a12a6a href=12sto dser pavceto diel 1w12sto>122pavalskb3/a>, 3sizeof3struct a1227a href=12DATA class="sref">L2TP_M12DAT>122paval#dndif"sref">skb3/a>, 3sizeof3struct a12a8a href=12/#37;u,). Passng3fup.n&q12/#3>122ava,l         68        3a href="codecode=Length" class="/a_no_check L686" class="l/a_no_checkclass=nam>
 L680">v68835" _CSUM_NOXMIT L686" class="l5" _CSUM_NOXMITcodeo    apav class="comment">/* No t1229a href=1212"_i" class="sref">uess1212">122a> -lsess. 892/a>        3a href="+code=Length" class="i"  utp/v3a href="+code=i"  utp/v>   ine" nam>
 L682">vCHECKSUM_NONE3/a>(3a href="+CHECKSUM_NONEcode="sref">skb3/a>, 3sizeof3struct a1233a href=12+code=derror class="sref12+co>123d>,-l
 L786">v7823/a9_dsv7913/a>         a9_dsv claam>
 L786">v7823/a92/a>        3a href="+s     3"   3s="sref">s2tp_de/a9_dsv7913/a>         a9_dsv claam>
 L786">v7823/a92/a>        3a href="+scode=Length" class=">e>7913/a>        >e>ls     3"   3"sref">skb3/a>, 3sizeof3struct a1231a href=12"line" nam>
 L790">v793312"li>123pavalv7823/a9_dsv7913/a>         a9_dsv claam>
 L786">v7823/a92/a>        3a href="+scode=Length" class=">e>7913/a>        >e>lcode=Length" class="featur  sref">nam>3/a>,featur  m>
 i"   3s="sref">s2tp_deNETIF_F_V4_CSUMsref">nam>3/a>,NETIF_F_V4_CSUM hreosolass="sref">sess.123/a>,>3a hre1232a href=121" class="line" nam>
 L7121" >123ava,lsess. 892/a>        3a href="+code=Length" class="i"  utp/v3a href="+code=i"  utp/v>   ine" nam>
 L682">vCHECKSUM_COMPLETE3/a>(3a href="+CHECKSUM_COMPLETEcode="sref">skb3/a>, 3sizeof3struct a1233a href=12ook" class="sref">payloa12ook>123=v2 lsess.c/um L686" class="lc/um>   ine" nam>
 L682">v689_check/um L686" class="l689_check/um claam>
 L786">v7823/a92/a>        3a href="+, 0ode=sess.12" clasudp_s="sref">nam>3/a>,udp_s="code, 0stats" class="sref">sstats3/a>->1234a href=123" class="line" nam>
 L7123" >123a> -l;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   iness="sref">sess.c/um_tcpudp_magic L686" class="lc/um tcpudp_magic claam>
 L786">v7823of t      f (3a hreof t hre" class="sref">sess.of t_kad/a>(3a href="+codof t_kad/acode,ats" class="sref">sstats3/a>->1235a href=12am>
 L794">v793      12am>>123>) {lsess.of t_dad/a>(3a href="+codof t_dad/acode,ats" class="sref">sstats3/a>->1236a href=125" class="line" nam>
 L7125" >123/a>, nam>3/a>,udp_s="code, ef">payload_hooIPPROTO_5" 3/a>(3a href="+IPPROTO_5" code, ss="sref">sess.c/um L686" class="lc/um>   stats" class="sref">sstats3/a>->1237a href=12m class="sref">siscard"_12m c>123/a>,          ur3/a>;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   in= 0oats" class="sref">sstats3/a>->1238a href=12"+code=vam>" class="sref12"+c>123ava,l;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   ine" nam>
 L682">vCSUM_MANGLED_02"_i"/a> &v3a hCSUM_MANGLED_0>   tats" class="sref">sstats3/a>->1239a href=12diata oacket wnd wcouldm12dia>123a> -lsess.123/a>,>3a hre1243a href=12 upto dser pavceto diel 12 up>124d>,-l        3a href="+code=Length" class="i"  utp/v3a href="+code=i"  utp/v>   ine" nam>
 L682">vCHECKSUM_PARTIAs.12"/a>  *a hreCHECKSUM_PARTIAs>   tats" class="sref">sstats3/a>->1241a href=12 3spav class="comment12 124paval        3a href="+code=Length" class="c/um starv7913/a>        c/um starv>   ine" nam>
 L682">v689_transport_89" cl7913/a>        689_transport_89" cl claam>
 L786">v7823/a92/a>        3a href="+s -ref="+code=Lkb"  892/a>        3a href="+code=Length" class="89" 2/a>        3a 89" >   tats" class="sref">sstats3/a>->1242a href=12ef="+code=hkb" class="sr12ef=>12 a> -l        3a href="+code=Length" class="c/um offs>v7913/a>        c/um offs>v>   ine" nam>
 L682">voffs>vo+code=hayload_hooffs>vo+>    k      g     ifnt !*a ull"/a>(3a href="+code=skb" cla, e=sess.12" clascheck L686" class="lcheck>   stats" class="sref">sstats3/a>->1243a href=12f="+code=hkb" class="sre12f=">12 =v2 l;, a href="uh hre" class="sref">sess.check L686" class="lcheck>   ine~" nam>
 L682">vc/um tcpudp_magic L686" class="lc/um tcpudp_magic claam>
 L786">v7823of t      f (3a hreof t hre" class="sref">sess.of t_kad/a>(3a href="+codof t_kad/acode,ats" class="sref">sstats3/a>->1244a href=12" class="line" nam>
 L7812" c>12 a> -lsess.of t_dad/a>(3a href="+codof t_dad/acode,ats" class="sref">sstats3/a>->1245a href=12="+code=lNULL class="sre12="+>12 >) {lnam>3/a>,udp_s="code, ef">payload_hooIPPROTO_5" 3/a>(3a href="+IPPROTO_5" code, 0stats" class="sref">sstats3/a>->1246a href=12="+code=hptr" class="sre12="+>12 /a>, h12pdr>12 /a>, sstats3/a>->1248a href=12.12"_i" class="sref">ues12.12>124/a>,l12e=p>12 a>,-l
 L680">v6883nel3/ENCAPTYPE_I 3/a>(3a href="+code=ENCAPTYPE_I code:ss="sref">sess.123/a>,>3a hre1253a href=12ode=L2ngth" class="sref"12ode>12od>,-lsstats3/a>->1251a href=12ode=hueats" class="sref"12ode>12opaval
 L7121" >125a> -la href="net/l2tp/l2tp_core.c#L781253a href=12f="+code=Lkb" class="sre12f=">125=v2 l
 L786">v7823tp_coskb_set_owner_w L686" class="line"  kb_set_owner_w>    m>
 L786">v7823/a92/a>        3a href="+, ef">payload_hoo/a        3a href="codestats" class="sref">sstats3/a>->1254a href=12m class="sref">siscard"_12m c>12oa> -lats" class="sref">sstats3/a>->1255a href=124" class="line" nam>
 L7124" >125>);{l L686" class="line" xmit 3/a>>    m>
 L786">v7823/ref="+code=Le2p_decv_somme2" class="sref">s2tp_de/a92/a>        3a href="+, ef">payload_hoof87" id
 L687" clf=hetp, ef">payload_hoodv7a_s="sref">nam>3/a>,>v7a_s="codestats" class="sref">sstats3/a>->1256a href=12ersifies(he packet wengt12ers>1256> -l" nam>
 L682">vout_unl         f (3a hreout_unl   code:ss="sref">sess.123/a>,>3a hre1257a href=12e=Lud_drf class="sref">_12e=L>1257/a>lpayload_hoobh_unl   _d         f (3a hrebh_unl   _d   >    m>
 L786">v7823/a        3a href="codestats" class="sref">sstats3/a>->1258a href=127" class="line" nam>
 L7127" >125/a>,l/* Sehortpacke12"co>125a>,-lsstats3/a>->1263a href=12ass="sref">L2TP_MDR_VSIZ12ass>12asa>;lL2TP_M12DAT>12aa> -l        }stEXPORT_SYMBOL_GPs.12"/a>  *a hreEXPORT_SYMBOL_GPs>    m>
 L786">v7823ine" xmit  892/a>        3a e.c#Lxmit  89>   stats" class="sref">sstats3/a>->12a2a href=12tpacket  (en3%ud)n&q12tpa>126a> -la href="net/l2tp/l2tp_core.c#L781263a href=12f="+code=heng class="sre12f=">12a3   l"net/l2tp/l2tp_core.c#L77777777777777777777777777777777777777777777777777777777777777777777777777777am>
 L792">v7922/a>         spav class=1264a href=12+code=derror class="sref12+co>126/a> l"net/l2tp/l2tp_core.c# * Tilass d/acsomme2" create/>ek  oy"           apav class="comment">/* No t1265a href=12cookie_len" cl784">v786412coo>126 lv7922/a>         spav class=1266a href=125" class="line" nam>
 L6125" >126/a>;l/l2tp_core.c#L792" id
 L794" cla1267a href=12acket wontrnt"s if pnabl12ack>126pavalvt>ek      hook"           apav class="comment">/* No t1268a href=12TA class="sref">L2TP_MSG12TA >126pavalvs have be="co         apav class="comment">/* No t1269a href=12f="+code=heng class="sre12f=">126=v2 l"net/l2tp/l2tp_core.c#_*l2tos89"           apav class="comment">/* No t1273a href=12de=oength" class="sref">12de=>127sa>;lv7922/a>         spav class=1271a href=12+code=derror class="sref12+co>12d lek     2/a>        3a e.c#L class_>ek     >    k      g     ifnt !*a h         f (3a href="+code=ref">payload_hook3        3a href="codeo    apav class="comment">/* No t1272a href=121" class="line" nam>
 L6121" >12da> -lass="sref">sess.123/a>,>3a hre1273a href=12"+code=vam>" class="sref12"+c>12d=v2 ls2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunnetats" class="sref">sstats3/a>->1274a href=12de=oength" class="sref">12de=>127a> -lats" class="sref">sstats3/a>->1275a href=12"line" nam>
 L684">v687412"li>127>);{l
 L682">v68        3a href="codecode=Length" class="/a_uscl_>v7a        3a href="_uscl_>v7aunnetats" class="sref">sstats3/a>->1276a href=125" class="line" nam>
 L6125" >12dpaval
 L682">vNULs.12"/a>  *a hreNULscodeo    apav class="comment">/* No t1277a href=12t">/* SPofnt o 32TP iead12t">>127/a>, 
 L682">ven 2/a>        3a en unnetats" class="sref">sstats3/a>->1278a href=12="+code=hata  class="sre12="+>127/a>,l
 L6128" >1279>,-lv7823struct a href="+code=L2tp_cunne, ef">payload_hoocode=MSG_CONTROs.12"/a>  *a hrecode=MSG_CONTROsunne, ea href="net/tsiing">"%s:l2tosing"..\n"am>
 L7, ef">payload_hoo.c#L787" id
 L687" class="line" nam>
 L687">v6867/aam>
7" id
 L687" clam>
>   stats" class="sref">sstats3/a>->1283a href=12">/* SGt w2TP ieader.*la12">/>128ev2 l128 l
 L792">v7922/a>         spav class=1282a href=121" class="line" nam>
 L6121" >128a> -l        3a e.c#L class_2tos8all>    m>
 L786">v7823struct a href="+code=L2tp_cunnestats" class="sref">sstats3/a>->1283a href=12>/* SCeck irotocol.iers.12>/*>128a>)(lL2TP_MDR_V12 cl>12"a> -l
 L687">v6867/aencap7" id
 L687" clencapclasolass="sref">sess.123/a>,>3a hre1285a href=12vers.12" class="sref">ve12ver>128>);{l
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=ENCAPTYPE_5" code:ss="sref">sess.123/a>,>3a hre12"6a href=12DATA class="sref">L2TP_M12DAT>128pavalv. SeeLet//ipv4/udp.c_*nam>
 L792">v7922/a>         spav class=1287a href=1237;uddexpeced u#37;udn&q1237;>128/a>, v7823udp_68        3a hrefudp_68>    m>
 L786">v7823/a        3a href="codesscode=Length" class="encap_typ
7" id
 L687" clencap_typ
unneinetp/l2tp_core.c#L792" id
 L794" cla1288a href=12=vers.12" class="sref">v12=ve>128ava,lv7823udp_68        3a hrefudp_68>    m>
 L786">v7823/a        3a href="codesscode=Length" class="encap_rc>7913/a>        encap_rc>unneine" nam>
 L682">vNULs.12"/a>  *a hreNULscodep/l2tp_core.c#L792" id
 L794" cla1289a href=12+code=derror class="sref12+co>128a> -lsstats3/a>->1293a href=12"line" nam>
 L689">v689312"li>1290);{l
 L680">v6883nel3/ENCAPTYPE_I 3/a>(3a href="+code=ENCAPTYPE_I code:ss="sref">sess.123/a>,>3a hre1291a href=120" class="line" nam>
 L6120" >129pavalsstats3/a>->1292a href=12 PGt wength3of t2TP irck12 PG>12"a> -l
 L6123" >129a> -lv7922/a>         spav class=1295a href=12i is handled dbydser pav12i i>12">);{ls2tp_cersifydud_d         f (3a href="+codeine" nam>
 L682">vNULs.12"/a>  *a hreNULscodep/l2tp_core.c#L792" id
 L794" cla1296a href=12T class="sref">n2TP_HDRF12T c>129paval
 L682">v_cersifydud_dheck sum class="sref">s2tp_cersifydud_old_/a_>ek     2/a>        3a old_/a_>ek     codep/l2tp_core.c#L792" id
 L794" cla1297a href=12DATA class="sref">L2TP_M12DAT>1297/a>lpayload_hoo68        3a href="codecode=Length" class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a>  *a hreNULscodep/l2tp_core.c#L792" id
 L794" cla1298a href=12l prcket ,den3%udn&q12l p>129/a>,l12de=>129a> -lv7922/a>         spav class=13 3a href=13 3a ength" class="sref">13 3a>130d>,-l/* No t13 1a href=13 " class="line" nam>
 L613 " >130pavalpayload_hoo68        3a href="codecode=Length" class="/a_>ek     2/a>        3a /a_>ek     codeo m>
 L786">v7823/a        3a href="codestats" class="sref">sstats3/a>->13 2a href=13 PGt wength3of t2TP irck13 PG>130a> -la href="net/l2tp/l2tp_core.c#L7813 3a href=13 f="+code=heng class="sr13 f=>1303> -lvt*nam>
 L792">v7922/a>         spav class=13 4a href=13 " class="line" nam>
 L613 " >130a> -lec_tp_coun 2/a>        3a e.c#L class_>ec_tp_coun >    m>
 L786">v7823struct a href="+code=L2tp_cunnestats" class="sref">sstats3/a>->13 5a href=13  is handled dbydser pav13  i>130>);{l/l2tp_core.c#L792" id
 L794" cla13 6a href=13  class="sref">n2TP_HDRF13  c>1306> -l" nam>
 L682">ven 2/a>        3a en unne:ss="sref">sess.123/a>,>3a hre13 7a href=13 ATA class="sref">L2TP_M13 AT>1307/a>lsstats3/a>->13 8a href=13  prcket ,den3%udn&q13  p>1303/a>l13 e=>1309>,-la href="net/l2tp/l2tp_core.c#L781313a href=136" class="line" nam>
 L6136" >131sa>;l/* No t1311a href=13tract unnel3wnd wess.12 13tra>131a> -lv7922/a>         spav class=1312a href=13f="+code=ptr" class="sre13f=">136ava,l        3a e.c#L class_2tos8all>    tsic int a href="+code=L2tp_cud_decv_somre class="sref">s2tp_dud_decv_somre/a>(3struct a href="+code=L2tp_cunneo    apav class="comment">/* No t1313a href=13code=ptr" class="sref">p13cod>1313   lass="sref">sess.123/a>,>3a hre1364a href=13f="+code=ptr" class="sre13f=">131a> -l;, a href="kasrcodep/l2tp_core.c#L792" id
 L794" cla1315a href=13code=ptr" class="sref">p13cod>131>);{l(3wala        3a hrefwalacodep/l2tp_core.c#L792" id
 L794" cla1316a href=13nam>
 L795">v7913/a>    13nam>131/a>, (3tmp7" id
 L687" cltmpcodep/l2tp_core.c#L792" id
 L794" cla1317a href=13ent">/* Skip iresnred ab13ent>131paval
 L784">v7843/a>        }struct a href="+code=L2tp_cess.12" p/l2tp_core.c#L792" id
 L794" cla1318a href=13nnel"_i" class="sref">uu13nne>131/a>,l1319>,-l    m>
 L786">v7823struct a href="+code=L2tp_cunneinne" nam>
 L682">vNULs.12"/a>  *a hreNULscodeop/l2tp_core.c#L792" id
 L794" cla13a3a href=13code=Ltr" class="sref">p13cod>132ev2 l
 L790">v792313"li>1321>,-lv7823struct a href="+code=L2tp_cunne, ef">payload_hoocode=MSG_CONTROs.12"/a>  *a hrecode=MSG_CONTROsunne, ea href="net/tsiing">"%s:l2tosingdallcsomme2"s"..\n"am>
 L7,
 L7131" >132ava,ls2tp_cersifydud_am>
7" id
 L687" clam>
>   stats" class="sref">sstats3/a>->1323a href=13* SFindthe sess.12 sontr13* S>132a>)(luess1312">132a> -l;, a href="write_l="+_br>        3a href="+code=L_cersifydud_dheck sum class="sref">s2tp_cersifydud_klist_l         f (3a hreklist_l   >   stats" class="sref">sstats3/a>->1325a href=13ccv_kb" class="sref">sec13ccv>132>) {l         kasr3/a>;, a href="kasrcodeinetpet/l2tp/l2tp_corkasr3/a>;, a href="kasrcode <pet/l2tp/l2tp_corcode=HASH_SIZE3/a>(3a href="+code=HASH_SIZE12" pet/l2tp/l2tp_corkasr3/a>;, a href="kasrcode++olass="sref">sess.123/a>,>3a hre13a6a href=13sto dser pavceto diel 1w13sto>1326> -l" nam>
 L682">vagai href="+code=L2tagai unne:ss="sref">sess.123/a>,>3a hre1327a href=13DATA class="sref">L2TP_M13DAT>132/a>,     m>
 L786">v7823wala        3a hrefwalacode, ef">payload_hoo.mp7" id
 L687" cltmpcode,     3a href="+code=L_cersifydud_dheck sum class="sref">s2tp_cersifydud_domme2"_klisthref="+code=L2tp_cess._klist="sr[t/l2tp/l2tp_corkasr3/a>;, a href="kasrcode]olass="sref">sess.123/a>,>3a hre13a8a href=13/#37;u,). Passng3fup.n&q13/#3>132ava,l
 L682">vhlist_/l2rysref">nam>3/a>,hlist_/l2ry>    m>
 L786">v7823wala        3a hrefwalacode, tsic int a href="+codeid
 L id
 L784" class="line" nam>
 L784">v7, ef">payload_hooklisthref="+code=L2tklist="srstats" class="sref">sstats3/a>->1329a href=1312"_i" class="sref">uess1312">1329>,-la href="net/l2tp/l2tp_core.c#L781333a href=13+code=derror class="sref13+co>133d>,-luess1312">132a> -l>    m>
 L786">v7823/v7823struct a href="+code=L2tp_cunne, ef">payload_hooc1329a href=1312"_i" class="sref">ue>p13cod>133"   3"sref">skb3/a>, 3si3eof3s3ruct a1231a href=12"line" nam>
ode=derrore=MSG_CONTROs.12"/a>  *a hrecode=MSG_CONTR 3/a>> unne, ea href="net/tsiing">"or class="sref11+co>11"9>,-ls2tp_cersifydud_am>
7" id
 L_V4_CSUM h3eosolass="sref">sess.123/3>,>33>->13 2a href=13 PGt wength3of t2TP iSUM_COMPLE3Ecode="sref">skb3/a>, 3si3eof3s3ruct a1233a href=12ook" class="sref">payloa12ss.12"delef=i4" class="line" nam>
"delef=i4p_core.c#Lwrite_l="+_br3/or class="sref11+co>11"9>,-l
 L784">v7, ef">payload_hooklisthref="+co,udp_s="co3e, 0stats" class="sref">s3tats333>->1274a href=12de=oength" class="sr3odof t_kad3acode,ats" class="sref">s3tats33a>->1235a href=12am>
 L794">+code=ptr" class="sre12f="ince we should hold f="net/l ef"> whilewnd wess.12 13tra>131a> -ls3tats33a>->11d9a href=118" class="line" naaaaaaaaaaaaaaaaa* doONTROny unbindONT, we end
 L7 relef=12f="wnd wess.12 13tra>131a> -ls3tats333lass=1177a href=11t">/* SPofnt o 32Taaaaaaaaaaaaaaaa* ef"> w"sr13 f=>holdONTRbetp_12fakONTR5" >1ef">isl2tos89, alld
 L7attached somme2"s_needL"lcheck>  3in= 0oats" class="sref">s3tats333lass=1178a href=11="+code=hata  clasaaaaaaaaaaaaaaaa* Hold a reference  -l<="net/l sottttdoesnsr13 tsl2tos89, alld
 L7attached somme2"s_needL"e=L2tklist0>   tats" class="sref">s3tats333 No t11d9a href=118" class="line" naaaaaaaaaaaaaaaaa* disappear as w"sr13 f=>jumpONTRbetween1ef">sisl2tos89, alld
 L7attached somme2"s_needL="net/l2t}3et/llass="sref">sess.123/3>,>34 No t1273a href=12de=oength"line" naaaaaaaaaaaaaaaaa*3wnd wess.12 13tra>131a> -ls3tats33a>->1241a href=12 3spav cef=13 3a ength" clasr class="sref11+co>11"9>,-l11co>->1!net913/a>         struct a href="+code=L2tp_cunneinne" nam>
 L682">vNULs.12"/a3     3a 893 >   tats" class="sref">s3tats33a>->1242a href=12ef="+code=hhhhhhhhhclass="line" nam>
r class="sref11+co>11"9>,-l11co>->h" class="/a_>ek  r class="sref11+co>11"9>,-lv7, ef">payload_hooklisthref="+coass="lchec3>   stats" class="sref">s3tats334>->1323a href=13* SFindthe sess.12 soodof t_kad3acode,ats" class="sref">s3tats33a>->1244a href=12" class="lief=1312"_i" class="srref=ef"ess1312">132a> -l;, a href="write_l="+_br>        3a href="+code=L_cersifydud_dheck sum class="sref">s2tp_cersifydud_klist_l         f (3a hrodof t_dad3acode,ats" class="sref">s3tats334>->13 5a href=13  is handled dbydser ROTO_5" co3e, 0stats" class="sref">s3tats33a>->1246a href=12="+>3spav cef=13 3a ength" claa>;, a href="write_l="+_br>        3a href="+code=Lverclass="sref11+co>11verclas->1!net913/a>        e <pDR_VER_2s="sref11+co>11e <pDR_VER_2s2tp_st="sr[t/l2tp/l2tp_corkasr3/a>;, a h    m>
 L786">v7823wala ttttttttttttttttttwala ttt href="+codeid
 L id
pss="sref11+co>11p"net/l2tp/l2tp_core.c#Lwala perttttttttttttttttttwala pertttef="net/l2tp/l2tp_2tp_cinfo799" class="lin2tp_cinfohref="net/l2tp/l2tp_cala ttttttttttttttttttwala ttt hre_cersifydud_klist_l         f (3a hrolcheck>  3breaktats" class="sref">s3tats33a>->1248a href=12.12"_i" class="sref"3ues12.12>134/a>,luess1312">132a> -lspONref">uesp_core.c#Lwrite_l="+_br3/pss="sref11+co>11p"net/href="net/l2tp/l2tp_cala "sref">s2tp_cifydud_dheck sum clacala "sref">s2tp_cifydu hre_cersifydud_klist_l         f (3a hrENCAPTYPE_3 code:ss="sref">sess.123/3>,>33a hre1253a href=12ode_i" claslass="lief=1312"_i" clanam>
"delef=i4_rcu" class="line" nam>
"delef=i4_rcup_core.c#Lwrite_l="+_br3/or class="sref11+co>11"9>,-ls3tats335uct a1231a href=12"line" nam>
ode=deref=1312"_i" claspONrref=ef"ess1312">132a> -lspONrref=ef"esp_core.c#Lwrite_l="+_br3/pss="sref11+co>11p"net/href="net/l2tp/l2tp_cala "sref">s2tp_cifydud_dheck sum clacala "sref">s2tp_cifydu hre_cersifydud_klist_l         f (3a hrE    3a 893href=s3tats33a>->1254a href=12m class="sref">sisca3d"_12m c>13oa> -lats" class="sref">s3tats335>->1235a href=12am>
 L794">ef=13 3a ength" clasr class="sref11+co>11"9>,-ls.c#L7heck sum class="sref">s.c#L7->1!net913/a>         struct a href="+code=L2tp_cunneinne" nam>
 L682">vNULs.12"/a3a>,>v7a_s=3codestats" class="sref">s3tats335>->1236a href=125" class="line" namclass="line" nam>
r class="sref11+co>11"9>,-ls.c#L7heck sum class="sref">s.c#L7->h" class="/a_>ek  r class="sref11+co>11"9>,-lv7, ef">payload_hooklisthref="+coreout_unl 3 code:ss="sref">sess.123/3>,>35" cla12 7a href=12 ATA class="sref">L23  3a href=3codestats" class="sref">s3tats335a hre13a8a href=13/#37;u,). Pef=13 3a ength" clasr class="sref11+co>11"9>,-l11deco>->1!net913/a>         struct a href="+code=L2tp_cunneinne" nam>
 L682">vNULs.12"/a3aes12.12>135/a>,l
r class="sref11+co>11"9>,-l11deco>->h" class="/a_>ek  r class="sref11+co>11"9>,-lv7, ef">payload_hooklisthref="+cof (3a hrer3v>   tats" class="sref">s3tats336" cla13a3a href=13code=Ltr" class="srefIZ12ass>123sa>;luess1312">132a> -l;, a href="write_l="+_br>        3a href="+code=L_cersifydud_dheck sum class="sref">s2tp_cersifydud_klist_l         f (3a hrc#Lxmit  83>   stats" class="sref">s3tats33a>->12a2a href=12tpacket  (en3%ud3n&q12tpa>136a> -la href="net/l2tp/l23p_cor36uct a1233a href=12ook" class=" class="sref">L2TP_M12DAT>w re+code-l131a> -lv7922/a>       3 spav3class=1264a href=12+code=derrrrrrrrrrrrrrrrrrrrrrrrrr* chain.  W12f=ways reL6123a/l2tp_c Tl131a> -l13          apav class="com3ent">3* No t1265a href=12cookie_lenrrrrrrrrrrrrrrrrrrrrrrrr* s="s sotw23are guarantnd
 L7 makeref=wards.d wess.12 13tra>131a> -lv7922/a>       3 spav36>->11d9a href=118" class="line" naaaaaaaaaaaaaaaaa* progre+sisl2tos89, alld
 L7attached somme2"s_needL L6125" >136/a>;l/l2tp_core.c#L792" 3d
 L734" cla1267a href=12acket won"line" naaaaaaaaaaaaaaaaa*3wnd wess.12 13tra>131a> -l36a hre13a8a href=13/#37;u,). P/* SPofnt o 32TP ieao dser pavceto diel 1w13sto>1cersifydud_klist_l         f (3a hrces12.12>13o         apav class="com3ent">36>->1239a href=12diatersifydud_klist_l         f (3a hr_*l2tos89"3          apav class="com3ent">37a hre1253a hrtersifydud_klist_l         f (3a hr_Z12ass>123m>
 L792">v7922/a>       3 spav37.c#L713c1a href=13"line" namss="srref=ef"ess1312">132a> -l;, a href="write_l="+_br>        3a href="+code=L_cersifydud_dheck sum class="sref">s2tp_cersifydud_klist_l         f (3a hr   3a href3"codeo    apav class="com3ent">3* No ttersifydud_klist_l         f (3a hr_&q12tpa>13a> -lass="sref">sess.123/3>,>37>->1323a href=13* SFindthe sess.12 so+code=L2tp3cunnetats" class="sref">s3tats337lass=1264a href=12+code=deram>
 ally ki href=""+_br>isl2tos89, alld
 L7attached somme2"s_needLf">12de=>137a> -lats" class="sref">s3tats337 No t1265a href=12cookie_len" Come hecohref="net/l2tp/l2tp_c ass context hreatp/ll,>v7a_s=3aunnetats" class="sref">s3tats337>->11d9a href=118" class="*3wnd wess.12 13tra>131a> -l3* No t1312a href=13f="+code=ptr" class="sre13fre7heck sum class=class="sre13fre7p_corss_2tos8all2/a>        3a e.c#L class_2tos8all>    tsic int a href="+code=L2tp_cud_decv_somre class="sref">s2tp_dud_decv_somre/a>(3struct a href="      3a e3 unnetats" class="sref">s3tats33a>->t="sr[t/l2tp/l2tp_corkasr3/a>;, a hsre12="+>137/a>,lv7823wala ttttttttttttttttttwala ttt href="+codeid
 L id
pss="sref11+co>11p"net/l2tp/l2tp_core.c#Lwala perttttttttttttttttttwala pertttef="net/l2tp/l2tp_2tp_cinfo799" class="lin2tp_cinfohref="net/l2tp/l2tp_cala ttttttttttttttttttwala ttt hre_cersifydud_klist_l         f (3a hr687" clam>3>   stats" class="sref">s3tats33a>->1283a href=12">/* SGt w2TP ieader3*la12">/>138ev2 l1319>,-l      atomi2"  kbp_core.c#Lwrite_l="+_br3/a>;, a href="write_l="+_br>        3a href="+code=Lef=_>130a> -l(3a href="+IP3omme2"s_*n3m>
 L792">v7922/a>       3 spav3class=1282a href=121" class="tr" class="sre13f=">1319>,-l(3a href="+IP3o&q12tpa>13unnestats" class="sref">s3tats33a>->1283a href=12>/* SCeck irotocol.i3rs.12>/*>138a>)(lv792313"li>1321>,-lv7823struct a href="+code=L2tp_cunne, ef">payload_hoocode=MSG_CONTROs.12"/a>  *a hrecode=Mfre7ROsunne, ea href="net/tsiing">"%s:l2tosing"..\n"am>
 L7, ef">payload_hoo.c#L787" id
 L687" class="line" nam>
 L687">v6867/aam>
7" id
 37" clencap3lasolass="sref">sess.123/3>,>38>->13 5a href=13  is handled dbydser NCAPTYPE_53 code:ss="sref">sess.123/3>,>33a hre12"6a href=123" class="line" nam>
 L6123l
 L792">v7922/a>       3 spav38" cla1297a href=12DATA class=pONref">uess1312">132a> -lspONref">uesp_core.c#Lwrite_l="+_br3/pss="sref11+co>11p"net/href="net/l2tp/l2tp_cala ="sre13tp_cifydud_dheck sum clacala ="sre13tp_cifydus="line" nam>
 L687">v6867/aam>
7" id
 37     3a e3einetp/l2tp_core.c#L792" 3d
 L734" cla1288a hr"net/l2tp/l2tp_cm>
"delercu" class="line" cm>
"delercup_core.c#Lwrite_l="+_br3/a>;, a href="write_l="+_br>        3a href="+code=Lud_dheck sum class=ud_d hre_cersifydud_klist_l         f (3a hr  *a hreNU3scodep/l2tp_core.c#L792" 3d
 L738.c#L71319a href=13f="+code=pkfre7ercu" class="line" kfre7ercuef="net/l2tp/l2tp_2tp_cinfo799" class="lin2tp_cinfo>    m>
 L786">v7rcu" class="line" rcuef="_cersifydud_klist_l         f (3a href="net/l23breaktats" class="sref">s3tats33a>->1293a href=1312"_i" claspONrref=ef"ess1312">132a> -lspONrref=ef"esp_core.c#Lwrite_l="+_br3/pss="sref11+co>11p"net/href="net/l2tp/l2tp_cala ="sre13tp_cifydud_dheck sum clacala ="sre13tp_cifydus="line" nam>
 L687">v6867/aam>
7" id
 3ENCAPTYPE_3 code:ss="sref">sess.123/3>,>39" cla12c1a href=12"line" nam>
 L790">v3ef="net/l23breaktats" class="sref">s3tats339lass=1282a href=121" class="atomi2"delass="lcheck>   atomi2"delp_core.c#Lwrite_l="+_br3/cala ="sre13>130a> -l
 L687">v6867/aam>
7" id
 3E&q12tpa>13href=139a>)(lsisca3  ="+>vt*n3m>
 L792">v7922/a>       3 spav39 No t1265a href=12cookie_le"sre6/a> 3a/lt/l2tpef=1ref="+_br>,Pef=one isnsr13 t/l2t up bywnd wess.12 13tra>131a> -l->11d9a href=118" class="* ecod1d9ce. Teiasiasecodpef=11312a h"+_br>s"netr12f="re is nownd wess.12 13tra>131a> -l139/a>,l > -l      p_cinf_ibinfo>    m>
 L786">v7u32s="sref11+co>11u3a hre1et/l2tp/l2tp_2tpeer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfo> ss_2tos8all2/a>        3a e.c#L c_cfg> -l -l
m cv7823wala       
m cvs2tp_dud_decv_somre/a>(3struct a href=4     olt*n4m>
 L792">v7922/a>       4 spav4class=t="sr[t/l2tp/l2tp_corkasr3/a>;, a 4 /a_>ek   4 codeo    apav class="com4ent">4* No t13 1a href=13f="+code=ptr" er     f (3a hreofer net/l2t-3f="+code=ptr" EINV+code=i"  utp/v> EINV+cto>1cersifydud_klist_l         f (3a h4  3a href=4codestats" class="sref">s4tats340lass=1282a hrss_2tos8all2/a>       lt/l" cl_ser pavceto diel lt/l" cl_se hre1et/l2tp/l2tp_2t hre t      f (3a hreof hre t  to>1cersifydud_klist_l         f (3a h4 33a href=4cref=(3struct a href=4 43a href=4ca>)(l1cersifydud_klist_l         f (3a h4 53a href=4c>
 L792">v7922/a>       4tats340" cla1315a href=13code=ptr" class="lt/l" cl_    ip6    f (3a hreoflt/l" cl_    ip6 hre1et/l2tp/l2tp_2tir6e t      f (3a hreofir6e t  to>1cersifydud_klist_l         f (3a h4 63a href=4ccodep/l2tp_core.c#L792" 4d
 L744" cla#endifersifydud_klist_l         f (3a h4 73a href=4ccodep/l2tp_core.c#L792" 4>,>40" cla1317a href=13ent">/* Skip ireslt/l" cl_    ip    f (3a hreoflt/l" cl_    ip hre1et/l2tp/l2tp_2tire t      f (3a hreofire t  to>1cersifydud_klist_l         f (3a h4 83a href=4ccodep/l2tp_core.c#L792" 4tats3408 cla1317a href=13ent">/* Skip ireslt/l2tsifydud_dheck sum ctt href=a href="+code=L_cersifydud_dheck sum class=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a4&q13  p>1343/a>l13 e=>1409>,-la href="net/l2tp/l24p_cor41>->1293a href=12 class="sref">L2TPcfg> -l
 L687">v6867/aencap7" id
 L64to go7 oo"4          apav class="com4ent">41 No t13 1a href=12vers.12" class="sref">ve12ver>128>);{l
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=4tp/l2tp_cn4m>
 L792">v7922/a>       4 spav4class=#ef=et/l2tp/l2tp_2tIS_ENABLED    f (3a hreofIS_ENABLEDef="net/l2tp/l2tp_2tpayFIG_IPV6    f (3a hreofpayFIG_IPV6s2tp_dud_decv_somre/a>(3struct a href=4+code=L2tp4cunneo    apav class="com4ent">41uct a1233a href=12ookef=13 3a ength" clacfg> -lfg hretchet/l2tp/l2tp_corepeer_ip6    f (3a hreofpeer_ip6"line" nam>
 L687">v6867/aencap7" id
 L64t43a href=43   lass="sref">sess.123/4>,>41>->1244a href=12" class="lief=1312"_i" claer     f (3a hreofer net/l2ta href="+code=L_cer_c6/a> > -l    m>
 L786">v7SOCK_DGRAM    f (3a hreofSOCK_DGRAMinfo> 0net/tsiing">"om cv7823wala       
m cvs2tp_7aunneine" nam>
 L682">vNULs.12"/a4a href="ka4rcodep/l2tp_core.c#L792" 4d
 L741>->1235a href=12am>
 L794">ef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4+63a href=4acodep/l2tp_core.c#L792" 4d
 L741>->1236a href=125" class="line" nam/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4 L687" clt4pcodep/l2tp_core.c#L792" 4d
 L741" cla12 7a href=12 ATA class="sref">L24e=L2tp_ces4.12" p/l2tp_core.c#L792" 4d
 L741a hre13a8a href=13/#37;u,). Passng3fup.n&q13/cersifydud_dheck sum class=cllass="line" nam>
m cv7823wala       
m cvs2tpd_old_/a_>ek     2/a>        3a ol4 q13  p>1341/a>,l1> 0nesizeofrs.12" class="sref"6e t      f (3a hreof hr6e t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a4">p13cod>142ev2 l1.ass="line" nam>
se6_familf="+code=L2tp_ce
se6_familfnet/l2ta href="+code=LAF_INET6    f (3a hreofAF_INET6info7aunneine" nam>
 L682">vNULs.12"/a4"p/l2tp_cn4>
 L7,1.ass="line" nam>
se6_ t      f (3a hreof
se6_ t  info>    m>
 L786">v7cfg> -l4687" clam>4>   stats" class="sref">s4tats342uct a1233a href=12ook" class========sizeofrs.12" class="sref"6e t      f (3a hreof hr6e t  to>1.ass="line" nam>
se6_ t      f (3a hreof
se6_ t  info)_7aunneine" nam>
 L682">vNULs.12"/a4"43a href=42a>)(l1.ass="line" nam>
se6_portsifydud_dheck suse6_portnet/l2ta href="+code=Lhtonssifydud_dheck shtonsef="net/l2tp/l2tp_2tcfg> -l
 L682">vNULs.12"/a4eklist_l  4>   stats" class="sref">s4tats342>->1235a href=12am>
 L794">+f=1312"_i" claer     f (3a hreofer net/l2ta href="+code=Lkerttl_bind" class="line" kerttl_bindef="net/l2tp/l2tp_2t/cersifydud_dheck sum class, ass_>ek     2/a>        3a  t      f (3a hreof
3a  t   href=)walacode, ef">payload hr6e t      f (3a hreof hr6e t  to>1>aunneine" nam>
 L682">vNULs.12"/a4e63a href=4e++olass="sref">sess.123/4>,>42>->1236a href=125" class="line" namss========sizeofrs.12" class="sref"6e t      f (3a hreof hr6e t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a4"L687" clt4 unne:ss="sref">sess.123/4>,>43a hre1327a href=13DATTTTTTTTTef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4ref="kasrc4de]olass="sref">sess.123/4>,>43a hre13a8a href=13/#37;u,). PPPPPPPPP/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4de=L2tklis4="srstats" class="sref">s4tats34a>->1329a href=1312"_i" class="sref">4ess1312">1429>,-la href="net/l2tp/l24p_cor4.c#L781333a href=13+code=derror class="sref13ef"6e t      f (3a hreof hr6e t  to>1.ass="line" nam>
se6_familf="+code=L2tp_ce
se6_familfnet/l2ta href="+code=LAF_INET6    f (3a hreofAF_INET6info7aunneine" nam>
 L682">vNULs.12"/a4e>p13cod>143"   3"sref">skb3/a>, 3si4eof3s4ruct a1231a href=12"line" nam>r class="sref13memcpf="+code=L2tp_cememcpfp_core.c#Lwrite_l="+_br3/ hr6e t      f (3a hreof hr6e t  to>1.ass="line" nam>
se6_ t      f (3a hreof
se6_ t  info>    m>
 L786">v7cfg> -launneine" nam>
 L682">vNULs.12"/a4_V4_CSUM h4eosolass="sref">sess.123/4>,>43>->1242a href=12ef="+code=hhhhhhhhsizeofrs.12" class="sref"6e t      f (3a hreof hr6e t  to>1.ass="line" nam>
se6_ t      f (3a hreof
se6_ t  info)_7aunneine" nam>
 L682">vNULs.12"/a4SUM_COMPLE4Ecode="sref">skb3/a>, 3si4eof3s4ruct a1233a href=12ook" class="sref">payloa12ef"6e t      f (3a hreof hr6e t  to>1.ass="line" nam>
se6_portsifydud_dheck suse6_portnet/l2ta href="+code=Lhtonssifydud_dheck shtonsef="net/l2tp/l2tp_2tcfg> -l
 L682">vNULs.12"/a4,udp_s="co4e, 0stats" class="sref">s4tats343>->1244a href=12" class="lief=1312"_i" claer     f (3a hreofer net/l2ta href="+code=Lkerttl_conne8        3a href=kerttl_conne8 ef="net/l2tp/l2tp_2t/cersifydud_dheck sum class,aunneine" nam>
 L682">vNULs.12"/a4,klist_l  4acode,ats" class="sref">s4tats34a>->1235a href=12am>
 L794">>>>>>>>>>>>>>>>>>>>>>ass_>ek     2/a>        3a  t      f (3a hreof
3a  t   href=)walacode, ef">payload hr6e t      f (3a hreof hr6e t  to>1>aunneine" nam>
 L682">vNULs.12"/a4odof t_dad4acode,ats" class="sref">s4tats343>->1236a href=125" class="line" namss======== ==sizeofrs.12" class="sref"6e t      f (3a hreof hr6e t  to>1),yload_hooIPPROTO_5" 3/a>(3a href="+IP4ode=L2taga4>   stats" class="sref">s4tats343a hre1327a href=13DATTTTTTTTTef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4"lcheck>  4in= 0oats" class="sref">s4tats343a hre13a8a href=13/#37;u,). PPPPPPPPP/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4"e=L2tklis40>   tats" class="sref">s4tats343>->1239a href=12diat else_old_/a_>ek     2/a>        3a ol4="net/l2t}4et/llass="sref">sess.123/4>,>44 No t#endifersifydud_klist_l         f (3a h4KSUM_PARTI4s>   tats" class="sref">s4tats34a>->1241a href=12 
 L687">v6867/aencap7" id
 L64     3a 894 >   tats" class="sref">s4tats34a>->1242a href=12ef="+code=hef=1312"_i" claer     f (3a hreofer net/l2ta href="+code=L_cer_c6/a> > -l    m>
 L786">v7SOCK_DGRAM    f (3a hreofSOCK_DGRAMinfo> 0net/tsiing">"om cv7823wala       
m cvs2tp_7aunneine" nam>
 L682">vNULs.12"/a4ass="lchec4>   stats" class="sref">s4tats344uct a1233a href=12ook" class=ef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4odof t_kad4acode,ats" class="sref">s4tats34a>->1244a href=12" class="liPPPPPPPP/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4odof t_dad4acode,ats" class="sref">s4tats344>->13 5a href=13  is handled dbydser4ROTO_5" co4e, 0stats" class="sref">s4tats34a>->1246a href=12="+>3spav cassng3fup.n&q13/cersifydud_dheck sum class=cllass="line" nam>
m cv7823wala       
m cvs2tpd_old_/a_>ek     2/a>        3a ol4L24olcheck>  4breaktats" class="sref">s4tats344a hre13a8a href=13/#37;u,). Passng3fup.n&q13mem92/a>        3a hrmem92/p_core.c#Lwrite_l="+_br3/ hre t      f (3a hreof hre t  to>1> 0nesizeofrs.12" class="sref"e t      f (3a hreof hre t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a4ues12.12>144/a>,l1.ass="line" nam>
se_familf="+code=L2tp_ce
se_familfnet/l2ta href="+code=LAF_INET    f (3a hreofAF_INETinfo7aunneine" nam>
 L682">vNULs.12"/a4ENCAPTYPE_4 code:ss="sref">sess.123/4>,>43a hre1253a href=12ode_i" class.12" class="sref"e t      f (3a hreof hre t  to>1.ass="line" nam>
se_ t      f (3a hreof
see t  to>1l2ta href="+code=Lcfg> -l
 L682">vNULs.12"/a4ESUM_PARTI4breaktats" class="sref">s4tats345uct a1231a href=12"line" nam>s.12" class="sref"e t      f (3a hreof hre t  to>1.ass="line" nam>
se_portsifydud_dheck suse_portnet/l2ta href="+code=Lhtonssifydud_dheck shtonsef="net/l2tp/l2tp_2tcfg> -l
 L682">vNULs.12"/a4E    3a 894href=payload hre t      f (3a hreof hre t  to>1>aunneine" nam>
 L682">vNULs.12"/a4Ess="lchec45a> -la href="net/l2tp/l24p_cor45uct a1233a href=12ook" class===================sizeofrs.12" class="sref"e t      f (3a hreof hre t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a4  3a href=4codestats" class="sref">s4tats345>->1244a href=12" class="lief=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4d"_12m c>14oa> -lats" class="sref">s4tats345>->1235a href=12am>
 L794">>>>>>>>>/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4a>,>v7a_s=4codestats" class="sref">s4tats345>->_old_/a_>ek     2/a>        3a ol4aa href="n4 code:ss="sref">sess.123/4>,>45a hre1327a href=13DATTTTTTTTTs.12" class="sref"e t      f (3a hreof hre t  to>1.ass="line" nam>
se_familf="+code=L2tp_ce
se_familfnet/l2ta href="+code=LAF_INET    f (3a hreofAF_INETinfo7aunneine" nam>
 L682">vNULs.12"/a4Elcheck>  4codestats" class="sref">s4tats345a hre13a8a href=13/#37;u,). Ps.12" class="sref"e t      f (3a hreof hre t  to>1.ass="line" nam>
se_ t      f (3a hreof
see t  to>1l2ta href="+code=Lcfg> -l
 L682">vNULs.12"/a4Ees12.12>145/a>,l1.ass="line" nam>
se_portsifydud_dheck suse_portnet/l2ta href="+code=Lhtonssifydud_dheck shtonsef="net/l2tp/l2tp_2tcfg> -l
 L682">vNULs.12"/a4f (3a hrer4v>   tats" class="sref">s4tats346a hre1253a href=12ode_i" class.12" class="srer     f (3a hreofer net/l2ta href="+code=Lkerttl_conne8        3a href=kerttl_conne8 ef="net/l2tp/l2tp_2t/cersifydud_dheck sum class,aunneine" nam>
 L682">vNULs.12"/a4IZ12ass>124sa>;lpayload hre t      f (3a hreof hre t  to>1>aunneine" nam>
 L682">vNULs.12"/a4c#Lxmit  84>   stats" class="sref">s4tats346>->1242a href=12ef="+code=hhhhhhhhhhhhhhhhhhhhhhsizeofrs.12" class="sref"e t      f (3a hreof hre t  to>1),yload_hooIPPROTO_5" 3/a>(3a href="+IP4n&q12tpa>146a> -la href="net/l2tp/l24p_cor46uct a1233a href=12ook" class=ef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=477777777774m>
 L792">v7922/a>       4 spav46>->1244a href=12" class="liPPPPPPPP/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol47"_12m c>14          apav class="com4ent">46>->1235a href=12am>tersifydud_klist_l         f (3a h47>,>v7a_s=4m>
 L792">v7922/a>       4 spav46>->_old_/a_>ek     2/a>        3a ol4 L6125" >146/a>;l/l2tp_core.c#L792" 4d
 L746a hre1327a href=13DATef=1!et/l2tp/l2tp_2tcfg> -l46a hre13a8a href=13/#37;u,). Pet/l2tp/l2tp_2t/cersifydud_dheck sum classhref=a href="+code=L_rsifydud_dheck suclasshref=a href="+code=L_r_noechecksifydud_dheck suc_noechecknet/l2ta href="+code=LUDP_CSUM_NOXMIT    f (3a hreofUDP_CSUM_NOXMITfydud_old_/a_>ek     2/a>        3a ol47es12.12>14o         apav class="com4ent">46>->1329a href=1312"_i" class="sref">4_*l2tos89"4          apav class="com4ent">47a hre1253a href=12odebreakd_old_/a_>ek     2/a>        3a ol4_Z12ass>124m>
 L792">v7922/a>       4 spav47" cla12c1a href=12"line" nam>
 L790">v4   3a href4"codeo    apav class="com4ent">47>->1242a href=12vers.12" class="sref">ve12ver>I8>);{l
 L680">v6I3nel3/ENCAPTYPE_5" 3/a>(3a href="+code=4_&q12tpa>14a> -lass="sref">sess.123/4>,>47c#L78#ef=et/l2tp/l2tp_2tIS_ENABLED    f (3a hreofIS_ENABLEDef="net/l2tp/l2tp_2tpayFIG_IPV6    f (3a hreofpayFIG_IPV6s2tp_dud_decv_somre/a>(3struct a href=4+code=L2tp4cunnetats" class="sref">s4tats347>->1244a href=12" cef=13 3a ength" clacfg> -lfg hretchet/l2tp/l2tp_corepeer_ip6    f (3a hreofpeer_ip6"line" nam>
 L687">v6867/aencap7" id
 L64f">12de=>147a> -lats" class="sref">s4tats347>->1235a href=12am>
 L794">+f=1312"_i" claer     f (3a hreofer net/l2ta href="+code=L_cer_c6/a> > -l    m>
 L786">v7SOCK_DGRAM    f (3a hreofSOCK_DGRAMinfo> et/l2tp/l2tp_2tIPPROTO_seam    f (3a hreofIPPROTO_seamto>1>aunneine" nam>
 L682">vNULs.12"/a4f>,>v7a_s=4aunnetats" class="sref">s4tats347>->1236a href=125" class="line" namss========t/tsiing">"om cv7823wala       
m cvs2tp_7aunneine" nam>
 L682">vNULs.12"/a4  *a hreNU4scodeo    apav class="com4ent">47a hre1327a href=13DATTTTTTTTTef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4      3a e4 unnetats" class="sref">s4tats347a hre13a8a href=13/#37;u,). PPPPPPPPP/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4sre12="+>147/a>,l4687" clam>4>   stats" class="sref">s4tats348a hre1253a href=12ode_i" class.12" class="sr/cersifydud_dheck sum class=cllass="line" nam>
m cv7823wala       
m cvs2tpd_old_/a_>ek     2/a>        3a ol4*la12">/>148ev2 l
 L790">v4omme2"s_*n4m>
 L792">v7922/a>       4 spav48>->1242a href=12ef="+code=h+f=1312"_i" clamem92/a>        3a hrmem92/p_core.c#Lwrite_l="+_br3/ir6e t      f (3a hreofir6e t  to>1> 0nesizeofrs.12" class="srir6e t      f (3a hreofir6e t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a4o&q12tpa>14unnestats" class="sref">s4tats348uct a1233a href=12ook" class="sref">payloa12ir6e t      f (3a hreofir6e t  to>1.ass="line" nam>2">vNfamilf="+code=L2tp_ce2">vNfamilfnet/l2ta href="+code=LAF_INET6    f (3a hreofAF_INET6info7aunneine" nam>
 L682">vNULs.12"/a4rs.12>/*>148a>)(l1.ass="line" nam>2">vN t      f (3a hreof2">vN t  info> et/l2tp/l2tp_2tcfg> -l47" clencap4lasolass="sref">sess.123/4>,>48>->1235a href=12am>
 L794">>>>>>>>sizeofrs.12" class="srir6e t      f (3a hreofir6e t  to>1.ass="line" nam>2">vN t      f (3a hreof2">vN t  info)_7aunneine" nam>
 L682">vNULs.12"/a4o>,>v7a_s=4 code:ss="sref">sess.123/4>,>48>->1246a href=12="+>3spav cassng3fup.n&q13ir6e t      f (3a hreofir6e t  to>1.ass="line" nam>2">vNconn_ib"  892/a>      2">vNconn_ibnet/l2ta href="+code=Lp_cinf_ib"  892/a>      p_cinf_ibinfo7aunneine" nam>
 L682">vNULs.12"/a4o *a hreNU4m>
 L792">v7922/a>       4 spav48a hre1327a href=13DATTTTTTTTTs.12" class="srer     f (3a hreofer net/l2ta href="+code=Lkerttl_bind" class="line" kerttl_bindef="net/l2tp/l2tp_2t/cersifydud_dheck sum class, ass_>ek     2/a>        3a  t      f (3a hreof
3a  t   href=)walacode, ef">payloadir6e t      f (3a hreofir6e t  to>1>aunneine" nam>
 L682">vNULs.12"/a4o     3a e4einetp/l2tp_core.c#L792" 4d
 L748a hre13a8a href=13/#37;u,). PPPPPPPPP4">>>>>>>>sizeofrs.12" class="srir6e t      f (3a hreofir6e t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a4ore12="+>14scodep/l2tp_core.c#L792" 4d
 L748 No t1229a href=1212"_i" clasef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=4ef="net/l24breaktats" class="sref">s4tats349a hre1253a href=12ode_i" claslass="li/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol4ENCAPTYPE_4 code:ss="sref">sess.123/4>,>49" cla12c1a href=12"line" nam>
 L790">v4ef="net/l24breaktats" class="sref">s4tats349>->1242a href=12ef="+code=h+f=1312"_i" clair6e t      f (3a hreofir6e t  to>1.ass="line" nam>2">vNfamilf="+code=L2tp_ce2">vNfamilfnet/l2ta href="+code=LAF_INET6    f (3a hreofAF_INET6info7aunneine" nam>
 L682">vNULs.12"/a4E&q12tpa>14href=payloa12memcpf="+code=L2tp_cememcpfp_core.c#Lwrite_l="+_br3/ir6e t      f (3a hreofir6e t  to>1.ass="line" nam>2">vN t      f (3a hreof2">vN t  info> et/l2tp/l2tp_2tcfg> -launneine" nam>
 L682">vNULs.12"/a4"sr12ef=>149a>)(l2">vN t      f (3a hreof2">vN t  info)_7aunneine" nam>
 L682">vNULs.12"/a4  ="+>vt*n4m>
 L792">v7922/a>       4 spav49>->1235a href=12am>
 L794">+f=1312"_i" clair6e t      f (3a hreofir6e t  to>1.ass="line" nam>2">vNconn_ib"  892/a>      2">vNconn_ibnet/l2ta href="+code=Lpeer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfo7aunneine" nam>
 L682">vNULs.12"/a4 >,>v7a_s=4scodep/l2tp_core.c#L792" 4d
 L749>->1246a href=12="+>3spav cassng3fup.n&q13er     f (3a hreofer net/l2ta href="+code=Lkerttl_conne8        3a href=kerttl_conne8 ef="net/l2tp/l2tp_2t/cersifydud_dheck sum class,aunneine" nam>
 L682">vNULs.12"/a4 /udp.c_*n4 codep/l2tp_core.c#L792" 4d
 L749c#L781247a href=12pdrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrass_>ek     2/a>        3a  t      f (3a hreof
3a  t   href=)walacode, ef">payloadir6e t      f (3a hreofir6e t  to>1>aunneine" nam>
 L682">vNULs.12"/a4  *a hreNU4scodep/l2tp_core.c#L792" 4d
 L749a hre13a8a href=13/#37;u,). PPPPPPPPP4">>>>>>>> >>sizeofrs.12" class="srir6e t      f (3a hreofir6e t  to>1),yload_hooIPPROTO_5" 3/a>(3a href="+IP4n&q12l p>149/a>,l(3struct a href=5     olt*n5m>
 L792">v7922/a>       5 spav50a hre1253a href=12ode_i" claslass="li/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol5 /a_>ek   5 codeo    apav class="com5ent">50>->1241a href=12 ek     2/a>        3a ol5  3a href=5codestats" class="sref">s5tats350lass=#endifersifydud_klist_l         f (3a h5 33a href=5cref=v6867/aencap7" id
 L65 43a href=5ca>)(l ef="net/l2tp/l2tp_2tAF_INET    f (3a hreofAF_INETinfo>    m>
 L786">v7SOCK_DGRAM    f (3a hreofSOCK_DGRAMinfo> et/l2tp/l2tp_2tIPPROTO_seam    f (3a hreofIPPROTO_seamto>1>aunneine" nam>
 L682">vNULs.12"/a5 53a href=5c>
 L792">v7922/a>       5tats350>->1235a href=12am>
 L794">>>>>>>>>>>>>>>>>>>t/tsiing">"om cv7823wala       
m cvs2tp_7aunneine" nam>
 L682">vNULs.12"/a5 63a href=5ccodep/l2tp_core.c#L792" 5d
 L750>->1246a href=12="+>3spav cef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=5 73a href=5ccodep/l2tp_core.c#L792" 5>,>50c#L781247a href=12pdrrrrrrrrrrrrrrrrr/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol5 83a href=5ccodep/l2tp_core.c#L792" 5tats350>->1248a href=12.12"_i" class="sref"5&q13  p>1353/a>l
m cv7823wala       
m cvs2tpd_old_/a_>ek     2/a>        3a ol5f">13 e=>1509>,-la href="net/l2tp/l25p_cor51>->1283a href=12">/* SGt w2TP ieader5to go7 oo"5          apav class="com5ent">51uct a1231a href=12"line" nam>r class="sref13mem92/a>        3a hrmem92/p_core.c#Lwrite_l="+_br3/ire t      f (3a hreofire t  to>1> 0nesizeofrs.12" class="srire t      f (3a hreofire t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a5tp/l2tp_cn5m>
 L792">v7922/a>       5 spav51>->1242a href=12ef="+code=h+f=1312"_i" claire t      f (3a hreofire t  to>1.ass="line" nam>2">vNfamilf="+code=L2tp_ce2">vNfamilfnet/l2ta href="+code=LAF_INET    f (3a hreofAF_INETinfo7aunneine" nam>
 L682">vNULs.12"/a5t33a href=5cunneo    apav class="com5ent">51uct a1233a href=12ook"+code=h+f=1312"_i" claire t      f (3a hreofire t  to>1.ass="line" nam>2">vN t      f (3a hreof2">vN t  infol2ta href="+code=Lcfg> -l
 L682">vNULs.12"/a5t43a href=53   lass="sref">sess.123/5>,>51>->1244a href=12" class="lief=1312"_i" claire t      f (3a hreofire t  to>1.ass="line" nam>2">vNconn_ib"  892/a>      2">vNconn_ibnet/l2ta href="+code=Lp_cinf_ib"  892/a>      p_cinf_ibinfo7aunneine" nam>
 L682">vNULs.12"/a5a href="ka5rcodep/l2tp_core.c#L792" 5d
 L751>->1235a href=12am>
 L794">s.12" class="srer     f (3a hreofer net/l2ta href="+code=Lkerttl_bind" class="line" kerttl_bindef="net/l2tp/l2tp_2t/cersifydud_dheck sum class, ass_>ek     2/a>        3a  t      f (3a hreof
3a  t   href=)walacode, ef">payloadire t      f (3a hreofire t  to>1>aunneine" nam>
 L682">vNULs.12"/a5a63a href=5acodep/l2tp_core.c#L792" 5d
 L751>->1236a href=125" class="line" nammmmmmmmmmmsizeofrs.12" class="srire t      f (3a hreofire t  to>1)_7aunneine" nam>
 L682">vNULs.12"/a5t73a href=5pcodep/l2tp_core.c#L792" 5d
 L751a hre1327a href=13DATTTTTTTTTef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=5e=L2tp_ces5.12" p/l2tp_core.c#L792" 5d
 L751a hre13a8a href=13/#37;u,). PPPPPPPPP/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol5 q13  p>1351/a>,l2">vNfamilf="+code=L2tp_ce2">vNfamilfnet/l2ta href="+code=LAF_INET    f (3a hreofAF_INETinfo7aunneine" nam>
 L682">vNULs.12"/a5">p13cod>152ev2 l1.ass="line" nam>2">vN t      f (3a hreof2">vN t  infol2ta href="+code=Lcfg> -l
 L682">vNULs.12"/a5"p/l2tp_cn5>
 L7,2">vNconn_ib"  892/a>      2">vNconn_ibnet/l2ta href="+code=Lpeer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfo7aunneine" nam>
 L682">vNULs.12"/a5687" clam>5>   stats" class="sref">s5tats352uct a1233a href=12ook" class=assng3fup.n&q13er     f (3a hreofer net/l2ta href="+code=Lkerttl_conne8        3a href=kerttl_conne8 ef="net/l2tp/l2tp_2t/cersifydud_dheck sum class, ass_>ek     2/a>        3a  t      f (3a hreof
3a  t   href=)walacode, ef">payloadire t      f (3a hreofire t  to>1>aunneine" nam>
 L682">vNULs.12"/a5"43a href=52a>)(l(3a href="+IP5eklist_l  5>   stats" class="sref">s5tats352>->1235a href=12am>
 L794">ef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=5e63a href=5e++olass="sref">sess.123/5>,>52>->1236a href=125" class="line" nam/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol5"L687" clt5 unne:ss="sref">sess.123/5>,>53a hre1327a href=13DATtersifydud_klist_l         f (3a h5ref="kasrc5de]olass="sref">sess.123/5>,>53a hre13a8a href=13/#3breakd_old_/a_>ek     2/a>        3a ol5de=L2tklis5="srstats" class="sref">s5tats35a>->1329a href=1312"_i" class="sref">5ess1312">1529>,-la href="net/l2tp/l25p_cor5.c#L781333a hrdefault/ENCAPTYPE_5" 3/a>(3a href="+code=5e>p13cod>153"   3"sref">skb3/a>, 3si5eof3s5ruct a1231a href=12"li/* SPofnt o 32TP ieaoueck sum class="sruifydud_old_/a_>ek     2/a>        3a ol5_V4_CSUM h5eosolass="sref">sess.123/5>,>53>->1242a hrtersifydud_klist_l         f (3a h5SUM_COMPLE5Ecode="sref">skb3/a>, 3si5eof3s53>->1283a href=12>/* SCeck irotocol.i5,udp_s="co5e, 0stats" class="sref">s5tats353>->ofnt o 32TP ieaoueck sum class="sruifydu/ENCAPTYPE_5" 3/a>(3a href="+code=5eklist_l  5acode,ats" class="sref">s5tats35a>->1235a href=113 3a ength" claer     f (3a hreofer net/ldeine0_1e.c#Le.c#L    g     ifnt !/cersifydud_dheck sum classe" nam>
 L687">v6867/aencap7" id
 L65odof t_dad5acode,ats" class="sref">s5tats353>->1236a href=125" a href="+code=L_cer_releas > -l(3a href="+IP5ode=L2taga5>   stats" class="sref">s5tats353a hre1327a href=13DATlass="line" nam>
m cv7823wala       
m cvs2tp=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a5"lcheck>  5in= 0oats" class="sref">s5tats353a hre13a8a hrtersifydud_klist_l         f (3a h5Se=L2tklis50>   tats" class="sref">s5tats353>->1329a href=1312"_i" class="sref">5="net/l2t}5et/llass="sref">sess.123/5>,>54c#L781333a hrreturn=assng3fup.n&q13er     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a5KSUM_PARTI5s>   tats" class="sref">s5tats35a>->tersifydud_klist_l         f (3a h5     3a 895 >   tats" class="sref">s5tats35a>->ersifydud_klist_l         f (3a h5 UM_COMPLE5>   stats" class="sref">s5tats354uct a1312a hss_2tos8all2/a>        t/l_ctats_kef="+code=L2tp_ce2t/l_ctats_kef#L781ass="line" nam>2">vNum ctt_ctats"  892/a>      2">vNum ctt_ctatsnet/7aunneine" nam>
 L682">vNULs.12"/a5Kudp_s="co5acode,ats" class="sref">s5tats354>->1254a href=12m class="sref">sisca5odof t_dad5acode,ats" class="sref">s5tats354>->ef=13f="+code=ptr" 2tp_core.c#Lc6/a> > -l       n2/a>        3a hrntt href=a href="+code=Ln2/a>        3a hrntt hre,ref=13f="+code=ptr" fb"  892/a>      fd hre,ref=13f="+code=ptr" versioer pavceto diel versioeinfo> et/l2tp/l2tp_2tu32s="sref11+co>11u3a hre1et/l2tp/l2tp_2tp_cinf_ib"  892/a>      p_cinf_ibinfo>    m>
 L786">v7u32s="sref11+co>11u3a hre1et/l2tp/l2tp_2tpeer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfo> ss_2tos8all2/a>        3a e.c#L c_cfg> -l -lsisca5odof t_dad5e, 0stats" class="sref">s5tats35a>-> nam>
 L687">v6867/aencap7" id
 L65/* Skip ires 3a e.c#L c> -lv7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a5olcheck>  5breaktats" class="sref">s5tats354a hre13a8a href=13f="+code=ptr" er     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a5oe=L2tklis54/a>,l/* Skip ireslt/l2tsifydud_dheck sum ctt href=a href="+code=L_cersifydud_dheck sum class=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a5ENCAPTYPE_5 code:ss="sref">sess.123/5>,>53a hre1253a href=13ent">/* Skip ireslt/lsifydud_dheck sum class==a href="+code=L_rsifydud_dheck suclass=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a5ESUM_PARTI5breaktats" class="sref">s5tats355uct a1231a href=13ent">/* Skip ires 3a en2/a>        3a hr 3a en2/lass==a href="+code=Lpss="sref11+co>11p"net/7aunneine" nam>
 L682">vNULs.12"/a5E    3a 895href=/* Skip ires 3a elass=_typ > -lv"sref">ve12ver>128>);{l
 L680">v6883nel37aunneine" nam>
 L682">vNULs.12"/a5EUM_COMPLE55a> -la href="net/l2tp/l25p_cor55>->1283a href=12>/* SCeck irotocol.i5  3a href=5codestats" class="sref">s5tats355>->1244a hr1265a href=12cookie_le"srGet1ref="+_br>/lt/l2tperom1ref=fd, which was opened bywnd wess.12 13tra>131a> -l15oa> -lats" class="sref">s5tats355 No t1265a href=12cookie_leref=13DATl1ref=ecod1d9ceRnne, da L6ni If not specified, c6/a> 3awnd wess.12 13tra>131a> -ls5tats355>->11d9a href=118" class="ef=13DATl1kerttl/lt/l2tisl2tos89, alld
 L7attached somme2"s_need5aa href="n5 code:ss="sref">sess.123/5>,>55" cla1267a href=12acket won"ef=13DATl3wnd wess.12 13tra>131a> -ls5tats355a hre13a8a href=13 3a ength" clafb"  892/a>      fd hreldeine0_1 nam>
 L687">v6867/aencap7" id
 L65Ees12.12>155/a>,l ef="net/l2tp/l2tp_2tp_cinf_ib"  892/a>      p_cinf_ibinfo>    m>
 L786">v7peer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfo> a href="+code=Lcfg> -lpayload/cersifydud_dheck sum classoad_hooIPPROTO_5" 3/a>(3a href="+IP5f (3a hrer5v>   tats" class="sref">s5tats356a hre1253a href=12odeef=13 3a ength" claer     f (3a hreofer net/ldeine0_dud_decv_somre/a>(3struct a href=5IZ12ass>125sa>;l
 L682">vNULs.12"/a5c#Lxmit  85>   stats" class="sref">s5tats356>->1242a hrt else1 nam>
 L687">v6867/aencap7" id
 L65n&q12tpa>156a> -la href="net/l2tp/l25p_cor56uct a1233a href=12ookassng3fup.n&q13er     f (3a hreofer net/l2t-assng3fup.n&q13EBADF    f (3a hreofEBADFnet/7aunneine" nam>
 L682">vNULs.12"/a5c 3a href=5m>
 L792">v7922/a>       5 spav56>->1244a href=12" ca href="+code=L_cersifydud_dheck sum class=class="/a_uscl_>vum cfd_lookuv7823wala       
m cfd_lookuvef="net/l2tp/l2tp_2tfb"  892/a>      fd hre,ralacode, ef">payloader     f (3a hreofer net/oad_hooIPPROTO_5" 3/a>(3a href="+IP5f"_12m c>15          apav class="com5ent">56>->1235a href=12am>ef=1!et/l2tp/l2tp_2t/cersifydud_dheck sum classe" nam>
 L687">v6867/aencap7" id
 L657>,>v7a_s=5m>
 L792">v7922/a>       5 spav56>->1246a href=12="+>3spav cassng3fup.n&q13pr_er     f (3a hreofpr_er ef="ne267a href=12ef=ing">"p_cl %hu: 
m cfd_lookuv(fd=%d)rreturned %d\n"wnd wes>aunneine" nam>
 L682">vNULs.12"/a5 L6125" >156/a>;l/l2tp_core.c#L792" 5d
 L756a hre1327a href=13DATf=12="+>3spav cassng3fup.n&q13p_cinf_ib"  892/a>      p_cinf_ibinfo>    m>
 L786">v7fb"  892/a>      fd hre,rde, ef">payloader     f (3a hreofer net/oad_hooIPPROTO_5" 3/a>(3a href="+IP5flcheck>  5          apav class="com5ent">56a hre13a8a href=13/#37;u,). P/* SPofnt o 32TP ieaer     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a5ces12.12>15o         apav class="com5ent">56>->1239a href=12diataunneine" nam>
 L682">vNULs.12"/a5_*l2tos89"5          apav class="com5ent">57a hre1253a hrtaunneine" nam>
 L682">vNULs.12"/a5_Z12ass>125m>
 L792">v7922/a>       5 spav57" cla12c1a href=12"line" nam>
 L790">v5   3a href5"codeo    apav class="com5ent">57>->1242a hra href="+code=L_rsifydud_dheck suclass=class="/a_uscl_>v/cersifydud_dheck sum classhref=a href="+code=L_rsifydud_dheck suclass7aunneine" nam>
 L682">vNULs.12"/a5_&q12tpa>15a> -lass="sref">sess.123/5>,>57>->1283a href=12>/* SCeck irotocol.i5+code=L2tp5cunnetats" class="sref">s5tats357>->1244a href=13 3a ength" clacfg> -lv7a        3a href="_uscl_>v_dud_decv_somre/a>(3struct a href=5f">12de=>157a> -lats" class="sref">s5tats357>->1235a href=12am>et/l2tp/l2tp_2t.c#L787" id
 L687" class="lin=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a5_>,>v7a_s=5aunnetats" class="sref">s5tats357>->_old_/a_>ek     2/a>        3a ol5  *a hreNU5scodeo    apav class="com5ent">57a hre1327a hr1265a href=12cookie_le"srQuick sanity checksTl3wnd wess.12 13tra>131a> -ls5tats357a hre13a8a hrswitch 13 3a ength" claec#L787" id
 L687" class="line" nam>
 L687">v6867/aencap7" id
 L65sre12="+>157/a>,lve12ver>128>);{l
 L680">v6883nel3/ENCAPTYPE_5" 3/a>(3a href="+code=5687" clam>5>   stats" class="sref">s5tats358a hre1253a href=12odeassng3fup.n&q13er     f (3a hreofer net/l2t-assng3fup.n&q13EPROTONOSUPPORT    f (3a hreofEPROTONOSUPPORT"lin7aunneine" nam>
 L682">vNULs.12"/a5*la12">/>158ev2 lvIPPROTO_128>);{l
 L687">v6867/aencap7" id
 L65omme2"s_*n5m>
 L792">v7922/a>       5 spav58>->1242a href=12ef="+code=h+f=1312"_i" clapr_er     f (3a hreofpr_er ef="ne267a href=12ef=ing">"p_cl %hu: fd %d wrong pr* Sco#,P/*  %d, expected %d\n"wnd wes>aunneine" nam>
 L682">vNULs.12"/a5o&q12tpa>15unnestats" class="sref">s5tats358uct a1233a href=12ook" class=+code=h+f=1312"_i" clap_cinf_ib"  892/a>      p_cinf_ibinfo>    m>
 L786">v7fb"  892/a>      fd hre,rde, ef">payload_rsifydud_dheck suclasshref=a href="+code=L_r_pr* Sco#7823wala       _r_pr* Sco# hre> et/l2tp/l2tp_2tIPPROTO_128>);{l
 L682">vNULs.12"/a5*code=L2tp58a>)(l
 L682">vNULs.12"/a57" clencap5lasolass="sref">sess.123/5>,>58>->1235a href=12am>taunneine" nam>
 L682">vNULs.12"/a5o>,>v7a_s=5 code:ss="sref">sess.123/5>,>58>->1246a href=12="+breakd_old_/a_>ek     2/a>        3a ol5o *a hreNU5m>
 L792">v7922/a>       5 spav58a hre1327a href=12vers.12" class="sref">ve12ver>I8>);{l
 L680">v6I3nel3/ENCAPTYPE_5" 3/a>(3a href="+code=5o     3a e5einetp/l2tp_core.c#L792" 5d
 L758a hre13a8a href=13/#3assng3fup.n&q13er     f (3a hreofer net/l2t-assng3fup.n&q13EPROTONOSUPPORT    f (3a hreofEPROTONOSUPPORT"lin7aunneine" nam>
 L682">vNULs.12"/a5*re12="+>15scodep/l2tp_core.c#L792" 5d
 L758 No t1229a href=1212"ef=13 3a ength" cla_rsifydud_dheck suclasshref=a href="+code=L_r_pr* Sco#7823wala       _r_pr* Sco# hre !class="/a_uscl_>vIPPROTO_seam    f (3a hreofIPPROTO_seamto>1e" nam>
 L687">v6867/aencap7" id
 L65ef="net/l25breaktats" class="sref">s5tats359a hre1253a href=12ode_i" clas+f=1312"_i" clapr_er     f (3a hreofpr_er ef="ne267a href=12ef=ing">"p_cl %hu: fd %d wrong pr* Sco#,P/*  %d, expected %d\n"wnd wes>aunneine" nam>
 L682">vNULs.12"/a5ENCAPTYPE_5 code:ss="sref">sess.123/5>,>59>->1241a href=12 3spav cccccccc+f=1312"_i" clap_cinf_ib"  892/a>      p_cinf_ibinfo>    m>
 L786">v7fb"  892/a>      fd hre,rde, ef">payload_rsifydud_dheck suclasshref=a href="+code=L_r_pr* Sco#7823wala       _r_pr* Sco# hre> et/l2tp/l2tp_2tIPPROTO_seam    f (3a hreofIPPROTO_seamto>1e7aunneine" nam>
 L682">vNULs.12"/a5ef="net/l25breaktats" class="sref">s5tats359>->1242a href=12ef="+code=h/* SPofnt o 32TP ieaer     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a5E&q12tpa>15href=
 L682">vNULs.12"/a5"sr12ef=>159a>)(lek     2/a>        3a ol5  ="+>vt*n5m>
 L792">v7922/a>       5 spav59>->1235a hrtaunneine" nam>
 L682">vNULs.12"/a5">,>v7a_s=5scodep/l2tp_core.c#L792" 5d
 L759>->_old_/a_>ek     2/a>        3a ol5 /udp.c_*n5 codep/l2tp_core.c#L792" 5d
 L759a hre1327a hr1265a href=12cookie_le"srCheck"ef=this/lt/l2tphas already been prepped l3wnd wess.12 13tra>131a> -lpayload_rsifydud_dheck suclasshref=a href="+code=L_r_ecod_data7823wala       _r_ecod_datanet/7aunneine" nam>
 L682">vNULs.12"/a5Ere12="+>159/a>,lv7a        3a href="_uscl_>v_" nam>
 L687">v6867/aencap7" id
 L66     olt*n6m>
 L792">v7922/a>       6 spav60a hre1253a href=12ode1265a href=12cookie_le"srThis/lt/l2tphas already been prepped l3wnd wess.12 13tra>131a> -l60>->1241a href=12 
 L682">vNULs.12"/a6  3a href=6codestats" class="sref">s6tats360>->1242a href=12ef=/* SPofnt o 32TP ieaer     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a6 33a href=6cref=
 L682">vNULs.12"/a6 43a href=6ca>)(lsisca6 53a href=6c>
 L792">v7922/a>       6tats360>->1235a hra href="+code=Lore.c#7823wala       ore.c#s2tp=cla href="+code=Lkzalloc7823wala       kzallocef="nsizeofrss_2tos8all2/a>        3a e.c#L c> -l1e7aunneine" nam>
 L682">vNULs.12"/a6 63a href=6ccodep/l2tp_core.c#L792" 6d
 L760>->1246a href=13 3a ength" claore.c#7823wala       ore.c#s2tp==class="/a_uscl_>v7a        3a href="_uscl_>v_" nam>
 L687">v6867/aencap7" id
 L66 73a href=6ccodep/l2tp_core.c#L792" 6>,>60c#L781247a href=12pdrassng3fup.n&q13er     f (3a hreofer net/l2t-assng3fup.n&q13ENOMEM    f (3a hreofENOMEMnet/7aunneine" nam>
 L682">vNULs.12"/a6 83a href=6ccodep/l2tp_core.c#L792" 6tats360a hre13a8a href=13/#3/* SPofnt o 32TP ieaer     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a6 93a href=6c/a>,l
 L682">vNULs.12"/a6f">13 e=>1609>,-la href="net/l2tp/l26p_cor61>->1283a href=12">/* SGt w2TP ieader6to go7 oo"6          apav class="com6ent">61uct a1231a hr3 3a ength" claore.c#7823wala       ore.c#s2tphref=a href="+code=Lversioer pavceto diel versioeinfo=cla href="+code=Lversioer pavceto diel versioeinfo7aunneine" nam>
 L682">vNULs.12"/a6tp/l2tp_cn6m>
 L792">v7922/a>       6 spav61>->1242a hra href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=Lp_cinf_ib"  892/a>      p_cinf_ibinfol2ta href="+code=Lp_cinf_ib"  892/a>      p_cinf_ibinfo7aunneine" nam>
 L682">vNULs.12"/a6t33a href=6cunneo    apav class="com6ent">61uct a1233a hra href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=Lpeer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfol2ta href="+code=Lpeer_p_cinf_ib"  892/a>      peer_p_cinf_ibinfo7aunneine" nam>
 L682">vNULs.12"/a6t43a href=63   lass="sref">sess.123/6>,>61>->1244a hra href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=Ldebug> -lDEFAULT>DEBUG_FLAGS>);{lDEFAULT>DEBUG_FLAGSinfo7aunneine" nam>
 L682">vNULs.12"/a6t53a href=6rcodep/l2tp_core.c#L792" 6d
 L761>->aunneine" nam>
 L682">vNULs.12"/a6t63a href=6acodep/l2tp_core.c#L792" 6d
 L761>->1236a hra href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=Lmagic7823wala       magicinfol2ta href="+code=Lseam>TUNNE _MAGIC>);{lTUNNE _MAGICinfo7aunneine" nam>
 L682">vNULs.12"/a6t73a href=6pcodep/l2tp_core.c#L792" 6d
 L761a hre1327a hra href="+code=L_printf7823wala       _printfef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Lc#L77823wala       c#L7s2tp[0], e267a href=12ef=ing">"p_cl %u"wnd wes>ta href="+code=Lp_cinf_ib"  892/a>      p_cinf_ibinfoe7aunneine" nam>
 L682">vNULs.12"/a6e=L2tp_ces6.12" p/l2tp_core.c#L792" 6d
 L761a hre13a8a hra href="+code=Lrw2t/l_ini/a>        3a hrrw2t/l_ini/ef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Lhlist_lcersifydud_dheck shlist_lcerinfoe7aunneine" nam>
 L682">vNULs.12"/a6e93a href=61/a>,l131a> -lp13cod>162ev2 l        3a hrntt hre7aunneine" nam>
 L682">vNULs.12"/a6"p/l2tp_cn6>
 L7,11p"net/l2ta href="+code=L2tp_cpertt/a>        3a hr 3a epertt/ef="ne href="+code=Ln2/a>        3a hrntt hree7aunneine" nam>
 L682">vNULs.12"/a6687" clam>6>   stats" class="sref">s6tats362>->1283a href=12>/* SCeck irotocol.i6"43a href=62a>)(l -lv7a        3a href="_uscl_>v_dud_decv_somre/a>(3struct a href=6eklist_l  6>   stats" class="sref">s6tats362>->1235a href=12am>a href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=Ldebug> -l -l
 L682">vNULs.12"/a6663a href=6e++olass="sref">sess.123/6>,>62>->_old_/a_>ek     2/a>        3a ol6"L687" clt6 unne:ss="sref">sess.123/6>,>62a hre1327a hr1265a href=12cookie_le"srMark/lt/l2tpas an lass=sulatioe/lt/l2ti See =13/ipv4/udp.cPl3wnd wess.12 13tra>131a> -lsess.123/6>,>62a hre13a8a hra href="+code=Lore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_core.c#L787" id
 L687" class="linl2ta href="+code=L.c#L787" id
 L687" class="lin7aunneine" nam>
 L682">vNULs.12"/a6de=L2tklis6="srstats" class="sref">s6tats362 No t1229a href=13 3a ength" cla.c#L787" id
 L687" class="linl2class="/a_uscl_>v"sref">ve12ver>128>);{l
 L680">v6883nel3_" nam>
 L687">v6867/aencap7" id
 L66ess1312">1629>,-la href="net/l2tp/l26p_cor63a hre1253a href=12ode1265a href=12cookie_le"srMark/lt/l2tpas an lass=sulatioe/lt/l2ti See =13/ipv4/udp.cPl3wnd wess.12 13tra>131a> -lskb3/a>, 3si6eof3s6ruct a1231a href=12"liass="/a_uscl_>v hre_rsifydud_dheck s hre_ref="ne href="+code=L_rsifydud_dheck suclass)tchet/l2tp/l2tp_core.c#L7_typ > -l);{l
 L682">vNULs.12"/a6_V4_CSUM h6eosolass="sref">sess.123/6>,>63>->1242a href=12ef=ass="/a_uscl_>v hre_rsifydud_dheck s hre_ref="ne href="+code=L_rsifydud_dheck suclass)tchet/l2tp/l2tp_core.c#L7_rcv> -l -l
 L682">vNULs.12"/a6_87" clam>6Ecode="sref">skb3/a>, 3si6eof3s63c#L78#ef=et/l2tp/l2tp_2tIS_ENABLED    f (3a hreofIS_ENABLEDef="net/l2tp/l2tp_2tpayFIG_IPV6    f (3a hreofpayFIG_IPV6s2tp_dud_decv_somre/a>(3struct a href=6,udp_s="co6e, 0stats" class="sref">s6tats363>->1244a href=12" cef=13 3a ength" cla_rsifydud_dheck suclasshref=a href="+code=L_r_familf="+code=L2tp_ce_r_familf"linl2class="/a_uscl_>vPF_INET6    f (3a hreofPF_INET6info_dud_decv_somre/a>(3struct a href=6,klist_l  6acode,ats" class="sref">s6tats363>->1235a href=12am>
 L794">s.12" class="sr hrv6elass=_enabl > -l
 L682">vNULs.12"/a6odof t_dad6acode,ats" class="sref">s6tats363>->1236a href=125" else_old_/a_>ek     2/a>        3a ol6ode=L2taga6>   stats" class="sref">s6tats363a hre#endifersifydud_klist_l         f (3a h6"lcheck>  6in= 0oats" class="sref">s6tats363a hre13a8a href=13/#3assng3fup.n&q13 hrelass=_enabl > -l
 L682">vNULs.12"/a6oe=L2tklis60>   tats" class="sref">s6tats363 No t1229a hrtaunneine" nam>
 L682">vNULs.12"/a6="net/l2t}6et/llass="sref">sess.123/6>,>64>->1283a href=12">/* SGt w2TP ieader6KSUM_PARTI6s>   tats" class="sref">s6tats364uct a1231a hr3 3a ength" cla_rsifydud_dheck suclasshref=a href="+code=L_r_ecod_data7823wala       _r_ecod_datanet/l2ta href="+code=Lp_cinf7823wala       ore.c#s2tp7aunneine" nam>
 L682">vNULs.12"/a6     3a 896 >   tats" class="sref">s6tats36a>->ersifydud_klist_l         f (3a h6 UM_COMPLE6>   stats" class="sref">s6tats364uct a1233a hra265a href=12cookie_le"srHook oe/ref="+_br>/lt/l2tpdess_2toor/lt/rea3 we c5a hreanuvefd wess.12 13tra>131a> -ls6tats364>->11d9a href=118" class="ef=13DATl1ef=thf="+_br>/lt/l2tpgoes awayisl2tos89, alld
 L7attached somme2"s_need6odof t_dad6acode,ats" class="sref">s6tats364 No t1265a href=12cookie_leref=13DATl3wnd wess.12 13tra>131a> -ls6tats364>->1236a hra href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=Lolde_r_dess_2to7823wala       olde_r_dess_2tonet/l2ta href="+code=L_rsifydud_dheck suclasshref=a href="+code=L_r_dess_2to7823wala       _r_dess_2tonet/7aunneine" nam>
 L682">vNULs.12"/a6 de=L2taga6t/l2tpayload2tp_core.c#_dess_2to7823wala       2tp_core.c#_dess_2tonet/7aunneine" nam>
 L682">vNULs.12"/a6 lcheck>  6breaktats" class="sref">s6tats364a hre13a8a hra href="+code=Lore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_core_cersifydud_dheck sum class=class="/a_uscl_>vursifydud_dheck suclass7aunneine" nam>
 L682">vNULs.12"/a6oe=L2tklis64/a>,l      fd hrelclass="/a_uscl_>vfb"  892/a>      fd hre7aunneine" nam>
 L682">vNULs.12"/a6ENCAPTYPE_6 code:ss="sref">sess.123/6>,>63a hre1253a hrde, ef">payload2m cdere_tt_ctats_and_c#L77823wala       2m cdere_tt_ctats_and_c#L7ef="nalacode, ef">payload_rsifydud_dheck suclasshref=a href="+code=L_r_lcersifydud_dheck s_r_lcerlass.ass="line" nam>slcersifydud_dheck s_lcerlass,ralacode, ef">payload2">vNum ctt_ctats"  892/a>      2">vNum ctt_ctatsnet/, e267a href=12ef=ing">"2">vNum c"wnd wese7aunneine" nam>
 L682">vNULs.12"/a6ESUM_PARTI6breaktats" class="sref">s6tats365" cla12c1a href=12"line" nam>
 L790">v6E    3a 896href=vGFP_ATOMIC>);{l
 L682">vNULs.12"/a6EUM_COMPLE65a> -la href="net/l2tp/l26p_cor65>->1283a href=12>/* SCeck irotocol.i6  3a href=6codestats" class="sref">s6tats365>->1244a hr1265a href=12cookie_le"srAdd="+_br>/to our listTl3wnd wess.12 13tra>131a> -l16oa> -lats" class="sref">s6tats365>->1235a hra href="+code=LINIT_LIST_HEAD    f (3a hreofINIT_LIST_HEADef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Llist"  892/a>      2ist hree7aunneine" nam>
 L682">vNULs.12"/a6ddof t_dad6codestats" class="sref">s6tats365>->1236a hra href="+code=Latomic_inc7823wala       atomic_incef="nalacode, ef">payload2tp_core.c#_couno7823wala       2tp_core.c#_couno hree7aunneine" nam>
 L682">vNULs.12"/a6dde=L2taga6 code:ss="sref">sess.123/6>,>65" claaunneine" nam>
 L682">vNULs.12"/a6dlcheck>  6codestats" class="sref">s6tats365a hre13a8a hr1265a href=12cookie_le"srBump=thf=ineerlase couno.rThe "+_br>/context ispdeletedwnd wess.12 13tra>131a> -l131a> -ls6tats366a hre1265a href=12cookie_leref=13DATl3wnd wess.12 13tra>131a> -l
 L682">vNULs.12"/a6c#Lxmit  86>   stats" class="sref">s6tats366>->1242a hra href="+code=L_pin_lcer_bh7823wala       _pin_lcer_bhef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a6cUM_COMPLE66a> -la href="net/l2tp/l26p_cor66uct a1233a hra href="+code=Llist_add_rcu"  892/a>      2ist_add_rcuef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Llist"  892/a>      2ist hre,ralacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a6c 3a href=6m>
 L792">v7922/a>       6 spav66>->1244a hra href="+code=L_pin_unlcer_bh7823wala       _pin_unlcer_bhef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a6c"_12m c>16          apav class="com6ent">66>->aunneine" nam>
 L682">vNULs.12"/a67>,>v7a_s=6m>
 L792">v7922/a>       6 spav66>->1236a hra href="+code=Ler     f (3a hreofer net/l2t07aunneine" nam>
 L682">vNULs.12"/a6cde=L2taga66/a>;l/l2tp_core.c#L792" 6d
 L766a hrea href="+code=Ler     f (3a hreofer net//ENCAPTYPE_5" 3/a>(3a href="+code=6flcheck>  6          apav class="com6ent">66a hre13a8a href=13 3a ength" claore.c#v7823wala       ore.c#vlasso1254a href=12m class="sref">sisca6ces12.12>16o         apav class="com6ent">66>->1239a href=12dia=a href="+code=Lore.c#v7823wala       ore.c#vlassl2ta href="+code=Lp_cinf7823wala       ore.c#s2tp7aunneine" nam>
 L682">vNULs.12"/a6_*l2tos89"6          apav class="com6ent">67>->1283a href=12">/* SGt w2TP ieader6_Z12ass>126m>
 L792">v7922/a>       6 spav671 hre13a8a hr1265a href=12cookie_le"srIf "+_br>'s/lt/l2tpwas c6/a> d by=thf=kerttl, it doesn'twnd wess.12 13tra>131a> -l67>->11d9a href=118" class="ef=13DATl1 have a fileisl2tos89, alld
 L7attached somme2"s_need6_&q12tpa>16a> -lass="sref">sess.123/6>,>67>->1265a href=12cookie_leref=13DATl3wnd wess.12 13tra>131a> -ls6tats367>->1244a href=13 3a ength" cla_cersifydud_dheck sum class=e.c#Le.c#L    g     ifnt !/cersifydud_dheck sum classtchet/l2tp/l2tp_corefil > -lsisca6f">12de=>167a> -lats" class="sref">s6tats367>->1235a href=12am>et/l2tp/l2tp_2t
m cfd_pueck sum class="s
m cfd_pueef="ne href="+code=L_cersifydud_dheck sum classoad_hooIPPROTO_5" 3/a>(3a href="+IP6_>,>v7a_s=6aunnetats" class="sref">s6tats367>->_old_/a_>ek     2/a>        3a ol6  *a hreNU6scodeo    apav class="com6ent">67a hre1327a hrreturn=assng3fup.n&q13er     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a6      3a e6 unnetats" class="sref">s6tats367a hretaunneine" nam>
 L682">vNULs.12"/a6sre12="+>167/a>,l > -l(3a href="+IP6687" clam>6>   stats" class="sref">s6tats368>->1283a href=12">/* SGt w2TP ieader6*la12">/>168ev2 l
 L792">v7922/a>       6 spav68>->11d9a href=118" class="l3wnd wess.12 13tra>131a> -ls6tats368uct aef=13f="+code=ptr" 2tp_core.c#Ldelete7823wala       2tp_core.c#_deleteef="nef=13ent">/* Skip ires 3a e.c#L c> -lsisca6*code=L2tp68a>)(lv6867/aencap7" id
 L667" clencap6lasolass="sref">sess.123/6>,>68>->1235a href=13f="+code=ptr" er     f (3a hreofer net/l2t-assng3fup.n&q13EBADF    f (3a hreofEBADFnet/7aunneine" nam>
 L682">vNULs.12"/a6o>,>v7a_s=6 code:ss="sref">sess.123/6>,>68>->1246a href=13ent">/* Skip ireslt/l2tsifydud_dheck sum ctt href=a href="+code=L_cersifydud_dheck sum class=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a6o *a hreNU6m>
 L792">v7922/a>       6 spav68" cla1317a href=13ent">/* Skip ireslt/lsifydud_dheck sum class==a href="+code=L_rsifydud_dheck suclass=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a6o     3a e6einetp/l2tp_core.c#L792" 6d
 L768a hreaunneine" nam>
 L682">vNULs.12"/a6ore12="+>16scodep/l2tp_core.c#L792" 6d
 L768 No t1229a hra href="+code=L_rsifydud_dheck suclass=class="/a_uscl_>v2tp_core.c#_lt/l_lookuv7823wala       2tp_core.c#_lt/l_lookuvef="net/l2tp/l2tp_2tore.c#7823wala       ore.c#s2tpe7aunneine" nam>
 L682">vNULs.12"/a6ef="net/l26breaktats" class="sref">s6tats369a hre1253a href=1!et/l2tp/l2tp_2t/rsifydud_dheck suclass)aunneine" nam>
 L682">vNULs.12"/a6ela12">/>16 code:ss="sref">sess.123/6>,>69>->1241a href=12 s6tats369>->ersifydud_klist_l         f (3a h6E&q12tpa>16href=vursifydud_dheck suclasshref=a href="+code=L_r_lt/l2tsifydud_dheck sur_lt/l2tfydud_old_/a_>ek     2/a>        3a ol6ecode=L2tp69a>)(l
 L792">v7922/a>       6 spav69>->aunneine" nam>
 L682">vNULs.12"/a6">,>v7a_s=6scodep/l2tp_core.c#L792" 6d
 L769>->1236a hra265a href=12cookie_le"srForce=thf="+_br>/lt/l2tp SPclose.rThis/will evie_uallywnd wess.12 13tra>131a> -l/ SPbe deleted via=thf==orma>/lt/l2tpclosewnd wess.12 13tra>131a> -l/lt/l2tisl2tos89, alld
 L7attached somme2"s_need6Ere12="+>169/a>,l
 L792">v7922/a>       7 spav70a hre1253a hrde, ef">payloader     f (3a hreofer net/l2ta href="+code=L922t_shutdowss="sref11+co>11922t_shutdowsef="ne href="+code=L_cersifydud_dheck sum class, 2ed_old_/a_>ek     2/a>        3a ol7 /a_>ek   7 codeo    apav class="com7ent">70" cla12c1a href=12"line" nam>
 L790">v7  3a href=7codestats" class="sref">s7tats370>->1242a hr1265a href=12cookie_le"srIf "hf="+_br>'s/lt/l2tpwas c6/a> d by=thf=kerttl,wnd wess.12 13tra>131a> -l->1265a href=12cookie_leref=13DATlRclose=thf=lt/l2tpherf=lince=thf=lt/l2tpwas notwnd wess.12 13tra>131a> -l->11d9a href=118" class="ef=13DATl1c6/a> d by=ecod1d9ceisl2tos89, alld
 L7attached somme2"s_need7 53a href=7c>
 L792">v7922/a>       7tats370 No t1265a href=12cookie_leref=13DATl3wnd wess.12 13tra>131a> -l->1246a href=13 3a ength" cla/cersifydud_dheck sum classtchet/l2tp/l2tp_corefil > -lv7a        3a href="_uscl_>v_s.12 13tra>131a> -l,>70c#L781247a href=12pdrassng3fup.n&q13er     f (3a hreofer net/l2ta href="+code=L922t_releas > -l(3a href="+IP7 83a href=7ccodep/l2tp_core.c#L792" 7tats370a hreaunneine" nam>
 L682">vNULs.12"/a7 93a href=7c/a>,l(3a href="+IP7f">13 e=>1709>,-la href="net/l2tp/l27p_cor71>->ofnt o 32TP ieaoueck sum class="sruifydu/ENCAPTYPE_5" 3/a>(3a href="+code=7to go7 oo"7          apav class="com7ent">71uct a1231a hrreturn=assng3fup.n&q13er     f (3a hreofer net/7aunneine" nam>
 L682">vNULs.12"/a7tp/l2tp_cn7m>
 L792">v7922/a>       7 spav71>->taunneine" nam>
 L682">vNULs.12"/a7t33a href=7cunneo    apav class="com7ent">71uct aassng3fup.n&q13EXPORT_SYMBOL_GP       3a href="EXPORT_SYMBOL_GP ef="ne href="+code=L2tp_core.c#_delete7823wala       2tp_core.c#_deleteef=")ad_hooIPPROTO_5" 3/a>(3a href="+IP7f43a href=73   lass="sref">sess.123/7>,>71>->1254a href=12m class="sref">sisca7t53a href=7rcodep/l2tp_core.c#L792" 7d
 L771 No t1265a href=12cookie_le"srReally kill thf=lessioeisl2tos89, alld
 L7attached somme2"s_need7t63a href=7acodep/l2tp_core.c#L792" 7d
 L771>->11d9a href=118" class="l3wnd wess.12 13tra>131a> -l/* Skip ires 3a elessioe7823wala       2tp_clessioelass==a href="+code=L_essioe7823wala       lessioelass_s.12 13tra>131a> -l
 L687">v6867/aencap7" id
 L67e93a href=71/a>,l/* Skip ires 3a e.c#L c> -l(3a href="+IP7 *a hreNUL7codeop/l2tp_core.c#L792" 7d
 L772>->1283a href=12">/* SGt w2TP ieader7">p13cod>172ev2 lpayload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corep/l_couno7823wala       p/l_counolass_ !cl0)ad_hooIPPROTO_5" 3/a>(3a href="+IP7"p/l2tp_cn7>
 L7,7>   stats" class="sref">s7tats372uct a1233a hra href="+code=Lore.c#7823wala       ore.c#s2tp=class="/a_uscl_>vuessioe7823wala       lessioelasstchet/l2tp/l2tp_coreore.c#7823wala       ore.c#s2tpad_hooIPPROTO_5" 3/a>(3a href="+IP7 43a href=72a>)(lv7a        3a href="_uscl_>v_" nam>
 L687">v6867/aencap7" id
 L67eklist_l  7>   stats" class="sref">s7tats372>->1235a href=12am>a href="+code=LBUG_ONsifydud_dheck sBUG_ONef="n3 3a ength" claore.c#7823wala       ore.c#s2tphref=a href="+code=Lmagic7823wala       magicinfol!class="/a_uscl_>vseam>TUNNE _MAGIC>);{lTUNNE _MAGICinfo)ad_hooIPPROTO_5" 3/a>(3a href="+IP7"63a href=7e++olass="sref">sess.123/7>,>72>->_old_/a_>ek     2/a>        3a ol7"L687" clt7 unne:ss="sref">sess.123/7>,>72c#L781247a href=12pdra265a href=12cookie_le"srDelete thf=lessioeperom1ref=hash"l3wnd wess.12 13tra>131a> -lsess.123/7>,>72a hre13a8a href=13/#3assng3fup.n&q13write_lcer_bh7823wala       write_lcer_bhef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Lhlist_lcersifydud_dheck shlist_lcerinfoe7aunneine" nam>
 L682">vNULs.12"/a7de=L2tklis7="srstats" class="sref">s7tats372 No t1229a href=1212"assng3fup.n&q13hlist_dc#_ini/a>        3a hrhlist_dc#_ini/ef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corehlistsifydud_dheck shlists2tpe7aunneine" nam>
 L682">vNULs.12"/a7ess1312">1729>,-la href="net/l2tp/l27p_cor73a hre1253a href=12ode1ssng3fup.n&q13write_unlcer_bh7823wala       write_unlcer_bhef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Lhlist_lcersifydud_dheck shlist_lcerinfoe7aunneine" nam>
 L682">vNULs.12"/a7e>p13cod>173"   3"sref">skb3/a>, 3si7eof3s73" cla12c1a href=12"line" nam>
 L790">v7_V4_CSUM h7eosolass="sref">sess.123/7>,>73>->1242a href=12ef=a265a href=12cookie_le"srUnef=k erom1ref=global=hash"if not seamv2"l3wnd wess.12 13tra>131a> -l7Ecode="sref">skb3/a>, 3si7eof3s73uct a1233a href=12ookef=13 3a ength" claore.c#7823wala       ore.c#s2tphref=a href="+code=Lversioer pavceto diel versioeinfo=!class="/a_uscl_>vseam>HDR_VER_2>);{lHDR_VER_2l_>v_" nam>
 L687">v6867/aencap7" id
 L67,udp_s="co7e, 0stats" class="sref">s7tats373>->1244a href=12" cccccccccef=13ent">/* Skip ires 3a en2/a>        3a hr 3a en2/lass==a href="+code=Lpss="sref11+co>11p"net/l2ta href="+code=L2tp_cpertt/a>        3a hr 3a epertt/ef="ne href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=L        3a hr 3a en2/lasse7aunneine" nam>
 L682">vNULs.12"/a7eklist_l  7acode,ats" class="sref">s7tats373>->aunneine" nam>
 L682">vNULs.12"/a7odof t_dad7acode,ats" class="sref">s7tats373>->1236a href=125" ef=12ode1ssng3fup.n&q13_pin_lcer_bh7823wala       _pin_lcer_bhef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a7eL687" clt7>   stats" class="sref">s7tats373a hre1327a href=13DATf=12="+>assng3fup.n&q13hlist_dc#_ini/_rcu"  892/a>      hlist_dc#_ini/_rcuef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_coreglobal_hlistsifydud_dheck sglobal_hlistlasse7aunneine" nam>
 L682">vNULs.12"/a7e=L2tp_ces7in= 0oats" class="sref">s7tats373a hre13a8a href=13/#3ef=12ode1ssng3fup.n&q13_pin_unlcer_bh7823wala       _pin_unlcer_bhef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a7ee=L2tklis70>   tats" class="sref">s7tats373 No t1229a href=1212"ef=12ode1ssng3fup.n&q13_ynchronize_rcu"  892/a>      _ynchronize_rcuef="ne7aunneine" nam>
 L682">vNULs.12"/a7="net/l2t}7et/llass="sref">sess.123/7>,>74a hre1253a href=12odetaunneine" nam>
 L682">vNULs.12"/a7KSUM_PARTI7s>   tats" class="sref">s7tats374" cla12c1a href=12"line" nam>
 L790">v7     3a 897 >   tats" class="sref">s7tats374>->1242a href=12ef=ef=13 3a ength" cla/essioe7823wala       lessioelasstchet/l2tp/l2tp_corelessioe_ib"  892/a>      lessioe_ibinfo=!cl0_s.12 13tra>131a> -ls7tats374uct a1233a href=12ook" class=3 3a ength" claatomic_dec7823wala       atomic_decef="nalacode, ef">payload
 L682">vNULs.12"/a7Kudp_s="co7acode,ats" class="sref">s7tats374>->1254a href=12m class="sref">sisca7odof t_dad7acode,ats" class="sref">s7tats374>->1235a href=12am>et/l2tp/l2tp_2t
m c_pueck sum class="s
m c_pueef="ne href="+code=Lore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_core_cersifydud_dheck sum classe7aunneine" nam>
 L682">vNULs.12"/a7Kdof t_dad7e, 0stats" class="sref">s7tats374>->_old_/a_>ek     2/a>        3a ol7 de=L2taga7t/l2t  7breaktats" class="sref">s7tats374a hre1267a href=12acket won"ef=13DATTTTTTTTT*/is/thf=reft=lessioepoe/ref="+_br>isl2tos89, alld
 L7attached somme2"s_need7oe=L2tklis74/a>,lsess.123/7>,>75a hre1253a href=12ode1ssng3fup.n&q13uessioe7823wala       lessioelasstchet/l2tp/l2tp_coreore.c#7823wala       ore.c#s2tp=class="/a_uscl_>v7a        3a href="_uscl_>v7aunneine" nam>
 L682">vNULs.12"/a7ESUM_PARTI7breaktats" class="sref">s7tats375uct a1231a href=12"liass="/a_uscl_>v2tp_core.c#_dec_ encouno7823wala       2tp_core.c#_dec_ encounoef="ne href="+code=Lore.c#7823wala       ore.c#s2tpe7aunneine" nam>
 L682">vNULs.12"/a7E    3a 897href=
 L682">vNULs.12"/a7EUM_COMPLE75a> -la href="net/l2tp/l27p_cor75>->1283a href=12>/* SCeck irotocol.i7  3a href=7codestats" class="sref">s7tats375>->1244a hra href="+code=Lkfree7823wala       kfreeef="na href="+code=L_essioe7823wala       lessioelass_7aunneine" nam>
 L682">vNULs.12"/a7Edof t_dad7oa> -lats" class="sref">s7tats375>->aunneine" nam>
 L682">vNULs.12"/a7ddof t_dad7codestats" class="sref">s7tats375>->1236a hrreturn7aunneine" nam>
 L682">vNULs.12"/a7Ede=L2taga7 code:ss="sref">sess.123/7>,>75" clataunneine" nam>
 L682">vNULs.12"/a7Elcheck>  7codestats" class="sref">s7tats375a hreassng3fup.n&q13EXPORT_SYMBOL_GP       3a href="EXPORT_SYMBOL_GP ef="ne href="+code=L2tp_clessioe_free7823wala       2tp_clessioe_freeef="_7aunneine" nam>
 L682">vNULs.12"/a7Ee=L2tklis75/a>,ls7tats376a hre1265a href=12cookie_le"srThis/functioe/is/us d by=thf==12ef=k SESSION_DELETE cookand and bywnd wess.12 13tra>131a> -l->1265a href=12cookie_le hrpseudowire modulesisl2tos89, alld
 L7attached somme2"s_need7c#Lxmit  87>   stats" class="sref">s7tats376>->11d9a href=118" class="l3wnd wess.12 13tra>131a> -l/* Skip ires 3a elessioe7823wala       2tp_clessioelass==a href="+code=L_essioe7823wala       lessioelass_s.12 13tra>131a> -lv7922/a>       7 spav76>-> nam>
 L687">v6867/aencap7" id
 L67c"_12m c>17          apav class="com7ent">76>->1235a href=13 3a ength" cla/essioe7823wala       lessioelasstchet/l2tp/l2tp_corelessioe_close"  892/a>      lessioe_closewnre !class="/a_uscl_>v7a        3a href="_uscl_>v_dud_decv_somre/a>(3struct a href=77>,>v7a_s=7m>
 L792">v7922/a>       7 spav76>->1236a href=125" (=a href="+code=L_essioe7823wala       lessioelasstchet/l2tp/l2tp_corelessioe_close"  892/a>      lessioe_closewnre)na href="+code=L_essioe7823wala       lessioelass_7aunneine" nam>
 L682">vNULs.12"/a7cde=L2taga76/a>;l/l2tp_core.c#L792" 7d
 L776" claaunneine" nam>
 L682">vNULs.12"/a7flcheck>  7          apav class="com7ent">76a hre13a8a hra href="+code=L2tp_clessioe_dec_ encouno7823wala       2tp_clessioe_dec_ encounoef="na href="+code=L_essioe7823wala       lessioelass_7aunneine" nam>
 L682">vNULs.12"/a7ces12.12>17o         apav class="com7ent">76c#L7813 9a href=13 e=nength" class="sr7_*l2tos89"7          apav class="com7ent">770->1236a hrreturnt07aunneine" nam>
 L682">vNULs.12"/a7_Z12ass>127m>
 L792">v7922/a>       7 spav771 hretaunneine" nam>
 L682">vNULs.12"/a7   3a href7"codeo    apav class="com7ent">77>->1ssng3fup.n&q13EXPORT_SYMBOL_GP       3a href="EXPORT_SYMBOL_GP ef="ne href="+code=L2tp_clessioe_delete7823wala       2tp_clessioe_deleteef="_7aunneine" nam>
 L682">vNULs.12"/a7_&q12tpa>17a> -lass="sref">sess.123/7>,>77>->1283a href=12>/* SCeck irotocol.i7+code=L2tp7cunnetats" class="sref">s7tats377>->1254a href=12m class="sref">sisca7f">12de=>177a> -lats" class="sref">s7tats377 No t1265a href=12cookie_le"srWe comepherf=whenever a=lessioe's/lendcleq, cookie_leeporwnd wess.12 13tra>131a> -ls7tats377>->11d9a href=118" class="l l2specific_leepparsreters arf=l2tisl2tos89, alld
 L7attached somme2"s_need7  *a hreNU7scodeo    apav class="com7ent">77" cla1267a href=12acket won"l3wnd wess.12 13tra>131a> -ls7tats377a hrestatic voidra href="+code=L2tp_clessioe__tt_header_lee7823wala       2tp_clessioe__tt_header_leeef="nef=13ent">/* Skip ires 3a elessioe7823wala       2tp_clessioelass==a href="+code=L_essioe7823wala       lessioelass,ref=13f="+code=ptr" versioer pavceto diel versioeinfo_dud_decv_somre/a>(3struct a href=7sre12="+>177/a>,lv6867/aencap7" id
 L67687" clam>7>   stats" class="sref">s7tats378a hre1253a href=1a href="+code=Lversioer pavceto diel versioeinfo=2class="/a_uscl_>v"srefHDR_VER_2>);{lHDR_VER_2l_>v_" nam>
 L687">v6867/aencap7" id
 L67*la12">/>178ev2 l
 L682">vNULs.12"/a7omme2"s_*n7m>
 L792">v7922/a>       7 spav78>->1242a href=12ef=ef=13 3a ength" cla/essioe7823wala       lessioelasstchet/l2tp/l2tp_corelendcleq7823wala       lendcleqinfo_dud_decv_somre/a>(3struct a href=7o&q12tpa>17unnestats" class="sref">s7tats378uct a1233a href=12ook" class=3 3a ength" cla_essioe7823wala       lessioelasstchet/l2tp/l2tp_corehdr_lee7823wala       hdr_lees2tp=+= 47aunneine" nam>
 L682">vNULs.12"/a7ocode=L2tp78a>)(l
 L687">v6867/aencap7" id
 L67*">12de=>17lasolass="sref">sess.123/7>,>78>->1235a href=12am>et/l2tp/l2tp_2t
essioe7823wala       lessioelasstchet/l2tp/l2tp_corehdr_lee7823wala       hdr_lees2tp=cl4 +>et/l2tp/l2tp_2t
essioe7823wala       lessioelasstchet/l2tp/l2tp_corecookie_lee7823wala       cookie_lees2tp=+>et/l2tp/l2tp_2t
essioe7823wala       lessioelasstchet/l2tp/l2tp_corel2specific_lee7823wala       2tspecific_lees2tp=+>et/l2tp/l2tp_2t
essioe7823wala       lessioelasstchet/l2tp/l2tp_coreoffs2/a>        3a hroffs2/l_>v7aunneine" nam>
 L682">vNULs.12"/a7o>,>v7a_s=7 code:ss="sref">sess.123/7>,>78>->1236a href=125" ef=13 3a ength" cla/essioe7823wala       lessioelasstchet/l2tp/l2tp_coreore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_core.c#L787" id
 L687" class="linl2class="/a_uscl_>v"sref">ve12ver>128>);{l
 L680">v6883nel3_aunneine" nam>
 L682">vNULs.12"/a7o *a hreNU7m>
 L792">v7922/a>       7 spav78a hre1327a href=13DATf=12="+>assng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corehdr_lee7823wala       hdr_lees2tp=+= 47aunneine" nam>
 L682">vNULs.12"/a7o     3a e7einetp/l2tp_core.c#L792" 7d
 L778a hre13a8a hrtaunneine" nam>
 L682">vNULs.12"/a7ore12="+>17scodep/l2tp_core.c#L792" 7d
 L778c#L7813 9a href=13 e=nength" class="sr7ef="net/l27breaktats" class="sref">s7tats379a hretaunneine" nam>
 L682">vNULs.12"/a7ela12">/>17 code:ss="sref">sess.123/7>,>79" cla12c1a href=12"line" nam>
 L790">v7ef="net/l27breaktats" class="sref">s7tats379>->ef=13ent">/* Skip ires 3a elessioe7823wala       2tp_clessioelass==a href="+code=L2tp_clessioe_c6/a> > -l -l/* Skip ires 3a e.c#L c> -lta href="+code=Lu32>);{l->1/l2tp/l2tp_corelessioe_ib"  892/a>      lessioe_ibinfo>ta href="+code=Lu32>);{l->1/l2tp/l2tp_corepeer_lessioe_ib"  892/a>      peer_lessioe_iblass,ref=13ent">/* Skip ires 3a elessioe_cfg> -l -l
 L682">vNULs.12"/a7E&q12tpa>17href=v6867/aencap7" id
 L67ecode=L2tp79a>)(l/* Skip ires 3a elessioe7823wala       2tp_clessioelass==a href="+code=L_essioe7823wala       lessioelass7aunneine" nam>
 L682">vNULs.12"/a7e" clencap7m>
 L792">v7922/a>       7 spav79>->aunneine" nam>
 L682">vNULs.12"/a7">,>v7a_s=7scodep/l2tp_core.c#L792" 7d
 L779>->1236a hra href="+code=L_essioe7823wala       lessioelass=class="/a_uscl_>vkzalloc7823wala       kzallocef="neiz ofnef=13ent">/* Skip ires 3a elessioe7823wala       2tp_clessioelass)=+>et/l2tp/l2tp_2tpriv_siz > -l
 L682">vNULs.12"/a7 /udp.c_*n7 codep/l2tp_core.c#L792" 7d
 L779a hre1327a href=13 3a ength" cla/essioe7823wala       lessioelass=!class="/a_uscl_>v7a        3a href="_uscl_>v_" nam>
 L687">v6867/aencap7" id
 L67      3a e7scodep/l2tp_core.c#L792" 7d
 L779a hre13a8a href=13/#3assng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_coremagic7823wala       magicinfolclass="/a_uscl_>v"srefSESSION_MAGIC>);{lSESSION_MAGIClass7aunneine" nam>
 L682">vNULs.12"/a7ere12="+>179/a>,lvore.c#7823wala       ore.c#s2tpad_hooIPPROTO_5" 3/a>(3a href="+IP8     olt*n8m>
 L792">v7922/a>       8 spav80>->1283a href=12">/* SGt w2TP ieader8 /a_>ek   8 codeo    apav class="com8ent">80uct a1231a href=12"liass="/a_uscl_>v_essioe7823wala       lessioelasstchet/l2tp/l2tp_corelessioe_ib"  892/a>      lessioe_ibinfo=class="/a_uscl_>vuessioe_ib"  892/a>      lessioe_ibinfoad_hooIPPROTO_5" 3/a>(3a href="+IP8 2a_>ek   8 reaktats" class="sref">s8tats380>->1242a href=12ef=ass="/a_uscl_>v_essioe7823wala       lessioelasstchet/l2tp/l2tp_corepeer_lessioe_ib"  892/a>      peer_lessioe_iblass=class="/a_uscl_>vpeer_lessioe_ib"  892/a>      peer_lessioe_iblassad_hooIPPROTO_5" 3/a>(3a href="+IP8 3a_>ek   8 ref=v_essioe7823wala       lessioelasstchet/l2tp/l2tp_coren     f (3a hreofn net/l2t07aunneine" nam>
 L682">vNULs.12"/a8 43a href=8ca>)(lsisca8 53a href=8c>
 L792">v7922/a>       8tats380>->1235a href=12am>et/l2tp/l2tp_2t
printf7823wala       lprintfef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_core>       f (3a hreofnaL7ef="[0], e267a href=12ef=ing">"less %u/%u"wnd wes,1254a href=12m class="sref">sisca8 63a href=8ccodep/l2tp_core.c#L792" 8d
 L780>->1236a href=125" ef=12ode1ssng3fup.n&q13ore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_coreore.c#_ib"  892/a>      ore.c#_iblass,ret/l2tp/l2tp_2t_essioe7823wala       lessioelasstchet/l2tp/l2tp_corelessioe_ib"  892/a>      lessioe_ibinfo_7aunneine" nam>
 L682">vNULs.12"/a8 73a href=8ccodep/l2tp_core.c#L792" 8>,>80" claaunneine" nam>
 L682">vNULs.12"/a8 83a href=8ccodep/l2tp_core.c#L792" 8tats380a hre13a8a href=13/#3assng3fup.n&q13_kb_queue_head_ini/a>        3a hr_kb_queue_head_ini/ef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corereorder_q7823wala       reorder_qinfo_7aunneine" nam>
 L682">vNULs.12"/a8 93a href=8c/a>,l13 e=>1809>,-la href="net/l2tp/l28p_cor81a hre1253a href=12ode1ssng3fup.n&q13INIT_HLIST_NODE7823wala       INIT_HLIST_NODEef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corehlistsifydud_dheck shlists2tpe7aunneine" nam>
 L682">vNULs.12"/a8to go7 oo"8          apav class="com8ent">81uct a1231a href=12"liass="/a_uscl_>vINIT_HLIST_NODE7823wala       INIT_HLIST_NODEef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_coreglobal_hlistsifydud_dheck sglobal_hlistlasse7aunneine" nam>
 L682">vNULs.12"/a8tp/l2tp_cn8m>
 L792">v7922/a>       8 spav81>->ersifydud_klist_l         f (3a h8t33a href=8cunneo    apav class="com8ent">81uct a1233a href=12ooka265a href=12cookie_le"srInherit debug optioes erom1r+_br>/l3wnd wess.12 13tra>131a> -lsess.123/8>,>81>->1244a href=12" cde, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_coredebug7823wala       debugs2tp=class="/a_uscl_>vore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_coredebug7823wala       debugs2tp7aunneine" nam>
 L682">vNULs.12"/a8t53a href=8rcodep/l2tp_core.c#L792" 8d
 L781>->aunneine" nam>
 L682">vNULs.12"/a8t63a href=8acodep/l2tp_core.c#L792" 8d
 L781>->1236a href=125" ef=13 3a ength" clacfg> -l
 L687">v6867/aencap7" id
 L68t73a href=8pcodep/l2tp_core.c#L792" 8d
 L781a hre1327a href=13DATf=12="+>assng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corepwtyp > -lvcfg> -l
 L682">vNULs.12"/a8t83a href=8.12" p/l2tp_core.c#L792" 8d
 L781a hre13a8a href=13/#3ef=12ode1ssng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_coredebug7823wala       debugs2tp=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8t93a href=81/a>,l      mtus2tp=class="/a_uscl_>vcfg> -l      mtus2tp7aunneine" nam>
 L682">vNULs.12"/a8 *a hreNUL8codeop/l2tp_core.c#L792" 8d
 L782a hre1253a href=12odeef=12ode1ssng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_coremru"  892/a>      mrus2tp=class="/a_uscl_>vcfg> -l      mrus2tp7aunneine" nam>
 L682">vNULs.12"/a8 o go7 oo"82ev2 lvcfg> -l
 L682">vNULs.12"/a8 p/l2tp_cn8>
 L7,vcfg> -l
 L682">vNULs.12"/a8 33a href=8>   stats" class="sref">s8tats382uct a1233a href=12ook" class=3 3a ength" cla_essioe7823wala       lessioelasstchet/l2tp/l2tp_corelns_mcor7823wala       2ns_mcorinfo=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8 43a href=82a>)(lpayload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corereorder_timeoueck sum class="sreorder_timeoueinfo=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8 53a href=8>   stats" class="sref">s8tats382>->1235a href=12am>ccccccccde, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_coreoffs2/a>        3a hroffs2/l_>v=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8"63a href=8e++olass="sref">sess.123/8>,>82>->1236a href=125" ef=12ode1ssng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corel2specific_typ > -lvcfg> -l
 L682">vNULs.12"/a8"73a href=8 unne:ss="sref">sess.123/8>,>82c#L781247a href=12pdref=12ode1ssng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corel2specific_lee7823wala       2tspecific_lees2tp=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8"83a href=8de]olass="sref">sess.123/8>,>82a hre13a8a href=13/#3ef=12ode1ssng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corecookie_lee7823wala       cookie_lees2tp=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8"93a href=8="srstats" class="sref">s8tats382 No t1229a href=1212"ef=12ode1ssng3fup.n&q13memcpy"  892/a>      memcpyef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corecookie7823wala       cookieef="[0], alacode, ef">payloadcfg> -lfg hretchet/l2tp/l2tp_corecookie_lee7823wala       cookie_lees2tpe7aunneine" nam>
 L682">vNULs.12"/a8ess1312">1829>,-la href="net/l2tp/l28p_cor83a hre1253a href=12odeef=12ode1ssng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corepeer_cookie_lee7823wala       peer_cookie_lees2tp=class="/a_uscl_>vcfg> -l
 L682">vNULs.12"/a8eo go7 oo"83"   3"sref">skb3/a>, 3si8eof3s83uct a1231a href=12"lief=12ode1ssng3fup.n&q13memcpy"  892/a>      memcpyef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corepeer_cookie7823wala       peer_cookieef="[0], alacode, ef">payloadcfg> -lfg hretchet/l2tp/l2tp_corepeer_cookie_lee7823wala       peer_cookie_lees2tpe7aunneine" nam>
 L682">vNULs.12"/a8ep/l2tp_cn8eosolass="sref">sess.123/8>,>83>->1242a href=12ef=taunneine" nam>
 L682">vNULs.12"/a8_87" clam>8Ecode="sref">skb3/a>, 3si8eof3s83>->1283a href=12>/* SCeck irotocol.i8,udp_s="co8e, 0stats" class="sref">s8tats383>->1244a href=12" cef=13 3a ength" claore.c#7823wala       ore.c#s2tphref=a href="+code=Lversioer pavceto diel versioeinfo=2class="/a_uscl_>v"srefHDR_VER_2>);{lHDR_VER_2l_>v_1283a href=12>/* SCeck irotocol.i8,53a href=8acode,ats" class="sref">s8tats383>->1235a href=12am>ccccccccde, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corebuild_header7823wala       build_headers2tp=class="/a_uscl_>veck ibuild_eck v2_header7823wala       eck ibuild_eck v2_headers2tp7aunneine" nam>
 L682">vNULs.12"/a8e63a href=8acode,ats" class="sref">s8tats383>->1236a href=125" elseaunneine" nam>
 L682">vNULs.12"/a8e73a href=8>   stats" class="sref">s8tats383a hre1327a href=13DATf=12="+>assng3fup.n&q13_essioe7823wala       lessioelasstchet/l2tp/l2tp_corebuild_header7823wala       build_headers2tp=class="/a_uscl_>veck ibuild_eck v3_header7823wala       eck ibuild_eck v3_headers2tp7aunneine" nam>
 L682">vNULs.12"/a8e83a href=8in= 0oats" class="sref">s8tats383a hreaunneine" nam>
 L682">vNULs.12"/a8ee=L2tklis80>   tats" class="sref">s8tats383 No t1229a href=1212"ass="/a_uscl_>veck ilessioe__tt_header_lee7823wala       2tp_clessioe__tt_header_leeef="nassng3fup.n&q13_essioe7823wala       lessioelass, ass="/a_uscl_>vore.c#7823wala       ore.c#s2tphref=a href="+code=Lversioer pavceto diel versioeinfoe7aunneine" nam>
 L682">vNULs.12"/a8="net/l2t}8et/llass="sref">sess.123/8>,>84>->1283a href=12">/* SGt w2TP ieader8KSUM_PARTI8s>   tats" class="sref">s8tats384uct a1231a href=12"lia265a href=12cookie_le"srBump=thf= hrerence=couno.rThf=lessioepcontext is deletedwnd wess.12 13tra>131a> -ls8tats384>->11d9a href=118" class="""""""""""""""""* only when=this drops/ SPzeroisl2tos89, alld
 L7attached somme2"s_need8 UM_COMPLE8>   stats" class="sref">s8tats384>->1265a href=12cookie_leref=13DAT""""""""*3wnd wess.12 13tra>131a> -ls8tats384>->1244a href=12" cde, ef">payload2tp_clessioe_inc_ encouno7823wala       2tp_clessioe_inc_ encounoef="nassng3fup.n&q13_essioe7823wala       lessioelasse7aunneine" nam>
 L682">vNULs.12"/a8=53a href=8acode,ats" class="sref">s8tats384>->1235a href=12am>et/l2tp/l2tp_2t2tp_core.c#_inc_ encouno7823wala       2tp_core.c#_inc_ encounoef="nassng3fup.n&q13ore.c#7823wala       ore.c#s2tpe7aunneine" nam>
 L682">vNULs.12"/a8Kdof t_dad8e, 0stats" class="sref">s8tats384>->_old_/a_>ek     2/a>        3a ol8 de=L2taga8t/l2ts8tats384a hre13a8a href=13/#3assng3fup.n&q13_m c_holb"  892/a>      lm c_holbef="nassng3fup.n&q13ore.c#7823wala       ore.c#s2tptchet/l2tp/l2tp_core_cersifydud_dheck sum classe7aunneine" nam>
 L682">vNULs.12"/a8oe=L2tklis84/a>,lsess.123/8>,>85a hre1253a href=12ode1265a href=12cookie_le"srAdd=lessioep SP"hf="+_br>'s/hash"list *3wnd wess.12 13tra>131a> -ls8tats385uct a1231a href=12"liass="/a_uscl_>vwrite_lcer_bh7823wala       write_lcer_bhef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Lhlist_lcersifydud_dheck shlist_lcerinfoe7aunneine" nam>
 L682">vNULs.12"/a8E    3a 898href=vhlist_add_headsifydud_dheck shlist_add_headef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_corehlistsifydud_dheck shlists2tp,1254a href=12m class="sref">sisca8EUM_COMPLE85a> -la href="net/l2tp/l28p_cor85uct a1233a href=12ook" class=f=12" cde, ef">payload2tp_clessioe_id_hash7823wala       2tp_clessioe_id_hashef="nassng3fup.n&q13ore.c#7823wala       ore.c#s2tp,ret/l2tp/l2tp_2t_essioe_ib"  892/a>      lessioe_ibinfo_e7aunneine" nam>
 L682">vNULs.12"/a8Eudp_s="co8codestats" class="sref">s8tats385>->1244a href=12" cde, ef">payloadwrite_unlcer_bh7823wala       write_unlcer_bhef="nalacode, ef">payloadore.c#7823wala       ore.c#s2tphref=a href="+code=Lhlist_lcersifydud_dheck shlist_lcerinfoe7aunneine" nam>
 L682">vNULs.12"/a8Edof t_dad8oa> -lats" class="sref">s8tats385>->aunneine" nam>
 L682">vNULs.12"/a8ddof t_dad8codestats" class="sref">s8tats385>->1236a href=125" 1265a href=12cookie_le"srAndp SP"hf=global=lessioeplist if seamv3 *3wnd wess.12 13tra>131a> -lsess.123/8>,>85c#L781247a href=12pdref=13 3a ength" claore.c#7823wala       ore.c#s2tphref=a href="+code=Lversioer pavceto diel versioeinfo=!class="/a_uscl_>vseam>HDR_VER_2>);{lHDR_VER_2l_>v_" nam>
 L687">v6867/aencap7" id
 L68Elcheck>  8codestats" class="sref">s8tats385a hre13a8a href=13/#3ef=12odeef=13ent">/* Skip ires 3a en2/a>        3a hr 3a en2/lass==a href="+code=Lpss="sref11+co>11p"net/l2ta href="+code=L2tp_cpertt/a>        3a hr 3a epertt/ef="ne href="+code=Lore.c#7823wala       ore.c#s2tphref=a href="+code=L        3a hr 3a en2/lasse7aunneine" nam>
 L682">vNULs.12"/a8Ee=L2tklis85/a>,ls8tats386a hre1253a href=12odeef=12ode1ssng3fup.n&q13_pin_lcer_bh7823wala       _pin_lcer_bhef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a8IZ12ass>128sa>;l      hlist_add_head_rcuef="nalacode, ef">payload_essioe7823wala       lessioelasstchet/l2tp/l2tp_coreglobal_hlistsifydud_dheck sglobal_hlistlass,1254a href=12m class="sref">sisca8c#Lxmit  88>   stats" class="sref">s8tats386>->1242a href=12ef=ef=12ode href=12"lief=12ode1ssng3fup.n&q132tp_clessioe_id_hash_2>);{l11p"net/,ret/l2tp/l2tp_2t_essioe_ib"  892/a>      lessioe_ibinfo_e7aunneine" nam>
 L682">vNULs.12"/a8cUM_COMPLE86a> -la href="net/l2tp/l28p_cor86uct a1233a href=12ook" class=3 3a ength" cla_pin_unlcer_bh7823wala       _pin_unlcer_bhef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a8c 3a href=8m>
 L792">v7922/a>       8 spav86>->1244a href=12" ctaunneine" nam>
 L682">vNULs.12"/a8c"_12m c>18          apav class="com8ent">86>->aunneine" nam>
 L682">vNULs.12"/a87>,>v7a_s=8m>
 L792">v7922/a>       8 spav86>->1236a href=125" a265a href=12cookie_le"srIgnore managekie_=lessioepin=lessioepcoue_=value *3wnd wess.12 13tra>131a> -l      lessioe_ibinfo=!cl0_s.12 13tra>131a> -l86a hre13a8a href=13/#3ef=12ode1ssng3fup.n&q13atomic_inc7823wala       atomic_incef="nalacode, ef">payload
 L682">vNULs.12"/a8ces12.12>18o         apav class="com8ent">86 No t1229a hrtaunneine" nam>
 L682">vNULs.12"/a8_*l2tos89"8          apav class="com8ent">87>->1283a href=12">/* SGt w2TP ieader8_Z12ass>128m>
 L792">v7922/a>       8 spav87uct a1231a hrreturn=assng3fup.n&q13_essioe7823wala       lessioelass7aunneine" nam>
 L682">vNULs.12"/a8   3a href8"codeo    apav class="com8ent">87>->taunneine" nam>
 L682">vNULs.12"/a8_&q12tpa>18a> -lass="sref">sess.123/8>,>87uct aassng3fup.n&q13EXPORT_SYMBOL_GP       3a href="EXPORT_SYMBOL_GP ef="ne href="+code=L2tp_clessioe_c6/a> > -l
 L682">vNULs.12"/a8+code=L2tp8cunnetats" class="sref">s8tats387>->1254a href=12m class="sref">sisca8f">12de=>187a> -lats" class="sref">s8tats387 No t1265a href=12cookie_le"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssswnd wess.12 13tra>131a> -ls8tats387>->11d9a href=118" class="l Init and cleanupwnd wess.12 13tra>131a> -l87" cla1267a href=12acket won"lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll3wnd wess.12 13tra>131a> -ls8tats387a hreaunneine" nam>
 L682">vNULs.12"/a8sre12="+>187/a>,l        3a hr_en2/_ini/ct a1ef=13f="+code=ptr" 2tp_cini/_n2/a>        3a hr 3a eini/_n2/ef="nef=13ent">/* Skip iresn2/a>        3a hrn2/lass==a href="+code=Ln2/a>        3a hrn2/lass_s.12 13tra>131a> -l8>   stats" class="sref">s8tats388a hre nam>
 L687">v6867/aencap7" id
 L68*la12">/>188ev2 l/* Skip ires 3a en2/a>        3a hr 3a en2/lass==a href="+code=Lpss="sref11+co>11p"net/l2ta href="+code=Ln2/_generic7823wala       n2/_genericef="ne href="+code=Ln2/a>        3a hrn2/lass,ret/l2tp/l2tp_2t 3a en2/_ib"  892/a>       3a en2/_ibef="e7aunneine" nam>
 L682">vNULs.12"/a8omme2"s_*n8m>
 L792">v7922/a>       8 spav88>->1242a href=13f="+code=ptr" hash7823wala       hashef="7aunneine" nam>
 L682">vNULs.12"/a8o&q12tpa>18unnestats" class="sref">s8tats388>->1283a href=12>/* SCeck irotocol.i8ocode=L2tp88a>)(lpayloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a8o">12de=>18lasolass="sref">sess.123/8>,>88>->1235a hr1ssng3fup.n&q13_pin_lcer_ini/a>        3a hr_pin_lcer_ini/ef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a8o>,>v7a_s=8 code:ss="sref">sess.123/8>,>88>->_old_/a_>ek     2/a>        3a ol8o *a hreNU8m>
 L792">v7922/a>       8 spav88a hre1327a hrfor=13 3a ength" clahash7823wala       hashef="l2t0713f="+code=ptr" hash7823wala       hashef=" <713f="+code=ptr" seam>HASH_SIZE_2>);{lHASH_SIZE_2ef="713f="+code=ptr" hash7823wala       hashef="++_s.12 13tra>131a> -lpayloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a8ore12="+>18scodep/l2tp_core.c#L792" 8d
 L788c#L7813 9a href=13 e=nength" class="sr8ef="net/l28breaktats" class="sref">s8tats3890->1235a hr1ssng3fup.n&q13_pin_lcer_ini/a>        3a hr_pin_lcer_ini/ef="nalacode, ef">payloadpss="sref11+co>11p"net/href=a href="+code=L
 L682">vNULs.12"/a8ela12">/>18 code:ss="sref">sess.123/8>,>89" cla12c1a href=12"line" nam>
 L790">v8ef="net/l28breaktats" class="sref">s8tats389>->1242a hrreturnt07aunneine" nam>
 L682">vNULs.12"/a8E&q12tpa>18href=
 L682">vNULs.12"/a8ecode=L2tp89a>)(lsisca8e" clencap8m>
 L792">v7922/a>       8 spav89>->static ef=13ent">/* Skip irespertt/_operatioess="sref11+co>11pertt/_operatioes->1et/l2tp/l2tp_2t 3a en2/_opss="sref11+co>11 3a en2/_opsef="l2t nam>
 L687">v6867/aencap7" id
 L68">,>v7a_s=8scodep/l2tp_core.c#L792" 8d
 L789>->1236a hr.et/l2tp/l2tp_2tini/a>        3a hrini/ct a12ta href="+code=L2tp_cini/_n2/a>        3a hr 3a eini/_n2/ef=",1254a href=12m class="sref">sisca8 /udp.c_*n8 codep/l2tp_core.c#L792" 8d
 L789a hre1327a hr.et/l2tp/l2tp_2tib"  892/a>      ibinfo= 12talacode, ef">payload       3a en2/_ibef=",1254a href=12m class="sref">sisca8      3a e8scodep/l2tp_core.c#L792" 8d
 L789a hre13a8a hr.et/l2tp/l2tp_2tsiz > -l/* Skip ires 3a en2/a>        3a hr 3a en2/lasse,1254a href=12m class="sref">sisca8 re12="+>189/a>,l
 L682">vNULs.12"/a9     olt*n9m>
 L792">v7922/a>       9 spav90>->1283a href=12">/* SGt w2TP ieader9 /a_>ek   9 codeo    apav class="com9ent">90uct astatic ef=13f="+code=ptr" __ini/a>        3a hr_eini/ct a1a href="+code=L2tp_cini/a>        3a hr 3a eini/ef="nvoid_s.12 13tra>131a> -ls9tats390>-> nam>
 L687">v6867/aencap7" id
 L69 3a_>ek   9 ref=
 L682">vNULs.12"/a9 43a href=9ca>)(lsisca9 53a href=9c>
 L792">v7922/a>       9tats390>->1235a hr1ssng3fup.n&q13rc7823wala       rcinfolcl1ssng3fup.n&q13registerepertt/_devic > -lpayload
 L682">vNULs.12"/a9 63a href=9ccodep/l2tp_core.c#L792" 823wa8rtp/l8tp_co5a href=12am>et/l2tp/l2tp_2t
printf">vNULs.12ef="net/l22="+>17scodep/l2ref=8acodep/l2tp_tp_core.c#67/ae0core.c#L792" 8d
 L786goto23wala       rcil2tp_corereorder_t class="sreorder_timeoueinfo7aunneine" na9>
 L682">v9ULs.12"/a8 83a href=8ccod9p/l2t90lass="sref">s8tats387a hreaunneine" na9>
 L682">v9ULs.12"/a8 93a href=8c/a>9l       9tats390>->12pri/afoirespertt/_operari/afoala   a hreofnaL7ef="[0], e267a SIZE nein driver,=12ef=s\not;less %ua       hashef=" <7DRV;{l<;{lHASH_SIZE_DRV;{l<;{l11 3a en2/_opsef="e7aunneine" nam e=nength"9class="sr8f">13 e=>1809>,9la hr91922/a>       9 spav90>->1283a href=12>
 L682">v9ULs.12"/a8to go7 oo"8    9     9pav cl3wala       rcil2tp_corereorder_t class=:>       9 spav90>->1283a href=12>a> -l
 9792">91lass="sref">s8tats38a8rtp/l8tp_co5a href=12am>et/l2tp/l2tpo>11 3a en2/_opsef="e7aunneine" nam 867/aencap  f (3a h8t33a href=8cunn9o    91="net/l2tp/l28p_cor89uct ataunneine" na91a> -lv9ULs.12"/a8t53a href=8rcod9p/l2t91922/a>      s7tats377a hrestatic__ex=13f="+code=ptr" __ex=1a>        3a hr_eini/ct aex=13f="+code=ptr" /ct aex=1       3a hr 3a eini/ef="nvoid_s.12 13tra>13>
 L682">v9ULs.12"/a8t63a href=8acod9p/l2t9_core."sref">s9tats390>-> nam>
 L687">v6867/aenca97" id
 L68t73a href=8pcod9p/l2t9_core.c#L792"      3a hr_einiunnfolcl1ssng3fup.n&q13registerepertt/_unnfolcl1ssng3fup.n&q13registerepertt/_devic ef="nalacode, ef">payload
 L682">v9ULs.12"/a8t83a href=8.12"9p/l2t9_core./l2tp/l28p_cor89uct ataunneine" na91
 L682">v9ULs.12"/a8t93a href=81/a>9l
 L682">v9ULs.12"/a8 *a hreNUL8code9p/l2t9_core.rtt/_devic ef="okie_la1a href="+code=L2tpokie_la1a hef="EXPORT_SYMBOL_GP ef="1a href="+code=L2tp_cini/a>     co>11 3a en2/_opsef="e7aunneine" nam>
 L682">v9ULs.12"/a8 o go7 oo"82ev29l11 3a en2/_opsef="e7aunneine" nam>a> -l
 L9,       8 spav81>->ersifydud_kl9>
 L682">v9ULs.12"/a8 33a href=8>   9tats"92ef">sess.123/8>,>8MODULE_AUTHOR3f="+code=ptr" MODULE_AUTHORala   a hreofnaL7ef="[0], e267a Jf=8s Chapmhre3waljchapmhr@katalix.com="srot;less %co>11 3a en2/_opsef="e7aunneine" nam>a> -l)9lHASH_MODULE_DESCRIPT{l
 L682">v9ULs.12"/a8 53a href=8>   9tats"9class=ess.123/8>,>8MODULE_LICENSEptr" seam>HASH_MODULE_LICENSEala   a hreofnaL7ef="[0], e267a GPLot;less %co>11 3a en2/_opsef="e7aunneine" nam>
 L682">v9ULs.12"/a8"63a href=8e++o9ass="9ref">sess.123/8>,>8MODULE_{l<;{lHASH_MODULE_{l<;{lHASH_SIZE_DRV;{l<;{l11 3a en2/_opsef="e7aunneine" nam>
 L682">v9ULs.12"/a8"73a href=8 unn9:ss="92core.c#L792" 8>,>80" claaunneine" na9>
 L682">v9ULs.12"/a8"83a href=8de]o9ass="9ref">s


thf=original LXR softwcifiby=12co#L792" 8>http://sourceforge.,>projects/lxs">LXR >87"ua> yn2/a> """""exng3i" clal ersioeriby=#L792" 8>mailto:lxs@83aux.no" /xs@83aux.non2/a.
/xs.83aux.no kindly hoslt/lby=#L792" 8>http://www.redpill-83apro.no" Redpill L3apro ASn2/a> provider of L3auxce=csult[0]ef=11="sref11+c serq13rc si_le"1995.