linux/net/llc/llc_c_ac.c
<<
>>
Prefs
   1/*
   2 * llc_c_ac.c - actions performed during connection state transition.
   3 *
   4 * Description:
   5 *   Functions in this module are implementation of connection component actions
   6 *   Details of actions can be found in IEEE-802.2 standard document.
   7 *   All functions have one connection and one event as input argument. All of
   8 *   them return 0 On success and 1 otherwise.
   9 *
  10 * Copyright (c) 1997 by Procom Technology, Inc.
  11 *               2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
  12 *
  13 * This program can be redistributed or modified under the terms of the
  14 * GNU General Public License as published by the Free Software Foundation.
  15 * This program is distributed without any warranty or implied warranty
  16 * of merchantability or fitness for a particular purpose.
  17 *
  18 * See the GNU General Public License for more details.
  19 */
  20#include <linux/netdevice.h>
  21#include <linux/slab.h>
  22#include <net/llc_conn.h>
  23#include <net/llc_sap.h>
  24#include <net/sock.h>
  25#include <net/llc_c_ev.h>
  26#include <net/llc_c_ac.h>
  27#include <net/llc_c_st.h>
  28#include <net/llc_pdu.h>
  29#include <net/llc.h>
  30
  31
  32static int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb);
  33static void llc_process_tmr_ev(struct sock *sk, struct sk_buff *skb);
  34static int llc_conn_ac_data_confirm(struct sock *sk, struct sk_buff *uccess0 6_  
  
  32static int llc_connnpnn_looku_confirm(struct sock *sk, struct sk_buff *skb);
  31
  32static int sock *
                                               sk, struct sk_buff *skb);
  30
  32static int llc_set_p_flagnc_confirm(struct sock *sk, struct sk_buff *skb);
  30
 defcla, struct sk_b0  30
  30
>static int llc_clear_remotesresy_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *  30
        if (ck *sk_-a.comk * {  30
                mk * mk *skb);
                sk, struct pdu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
  30
                mk *sk_-a.comk *);
                mk *sk_(&omk *sk_-a.comk *sk_.mk *sk_>skb);
                mk *b=, struct sk_(ck *sk_>skb);
                mk *lresend_i>edu_as_cmd_vs_by_1" class="sref">lresend_i>edu_as_cmd>sk_(ck *, 0>skb);
        }kb);
           them skb);
}kb);
  30
>static int llc_cde=lind_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
  30
        ff *b=, struct skb);
           them skb);
}kb);
  30
>static int llc_cde=lac_data_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
  30
        ff *b=, struct skb);
           them skb);
}kb);
  30
  34static int llc_conn_ac_data_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
  30
        ff *b=, struct skb);
           them skb);
}kb);
  30
>static int llc_conn_ind_confirm(struct sock *sk, struct sk_buff *  30
{  30
        ff *lrtn_edus_tmr_ev" class="sref">lrtn_edu>sk_(ck *skb);
           them skb);
}kb);
  30
>static int llc_cisc_ind_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
        ff * mk *);
        >static int );
  30
        if (ck * {  30
                sk, struct edu_uns_tmr_ev" class="sredu_un>sk_buff *sk_b=, struct edu_un_hdrode=sock" classef">edu_un_hdr>sk_(ck *skb);
  30
                if (ck *sk_(ck *sk_> &o&o  30
                    ff *sk_(ck *sk_> &o&o  30
                    ff *sk_(ck *sk_> ==, struct   30
                        ff *skb);
                else if (ck *sk_(ck *sk_> &o&o  30
                           ff *sk_(ck *sk_> &o&o  30
                           ff *sk_(ck *sk_> ==, struct   30
                        ff *skb);
        } else if (ck *  30
                ff *skb);
        elsekb);
                tic int skb);
        if (!tic int  {  30
                mk *);
                mk *b=, struct );
        }kb);
           themtic int );
}kb);
  30
>static int llc_cisc_ac_data_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
  30
        ff *);
        ff *b=, struct );
           them0skb);
}kb);
  31
>static int llc_rst_ind_confirm(struct sock *sk, struct sk_buff *  30
{  30
        ff * mk *);
        >static int );
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
        sk, struct edu_uns_tmr_ev" class="sredu_un>sk_buff *sk_b=, struct edu_un_hdrode=sock" classef">edu_un_hdr>sk_(ck *skb);
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *net/1lc31">  31
        switch (ck * {  30
        casa, struct 
                if (ck *sk_(ck *sk_> &o&o  30
                    ff *sk_(ck *sk_> &o&o  30
                    ff *sk_(ck *sk_> ==, struct  {  30
                        ff *);
                        ff *);
                } else if (ck *sk_(ck *sk_> &o&o  30
                           ff *sk_(ck *sk_> &o&o  30
                           ff *sk_(ck *sk_> ==, struct  {  30
                        ff *);
                        ff *);
                }kb);
                breakskb);
        casa, struct 
        casa, struct 
        casa, struct 
        casa, struct 
                if (ck *sk_-a.comk * a.co mk *sk_-a.comk * {  30
                        ff *);
                        ff *);
                }kb);
                breakskb);
        }kb);
        if (!tic int  {  30
                tic int );
                mk *b=, struct );
        }kb);
           themtic int );
}kb);
  30
>static int llc_rst_ac_data_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct cde=lnecti_ess_tmr_ev" class="srcde=lnecti_es>sk_buff *cde=less_tmr_ev" class="srcde=less_tmrck *skb);
  30
        ff *);
        ff *b=, struct );
           them0skb);
}kb);
  31
>static int llc_clear_remotesresy_if_f_eqnc_confirm(struct sock *
                                            sk, struct sk_buff *  30
{  30
        sk, struct pdu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
  30
        if (ck *sk_(ck *sk_> &o&o  30
            ff *sk_(ck *sk_> &o&o  30
            ff *sk_(ck *sk_> &o&o, struct ncode=sock" classef">nc>sk_(ck *  30
                mk *llc_clear_remotesresy_vs_by_1" class="sref">llc_clear_remotesresy>sk_(ck *skb);
           them0skb);
}kb);
  31
>static int sock *
                                               sk, struct sk_buff *  31
{  30
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *  30
        if (ck *sk_-a.comk *sk_b== 2>  31
                mk *sk_(&omk *sk_-a.comk *sk_.mk *sk_>skb);
           them0skb);
}kb);
  31
>static int sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  30
                 struct edu_headeocinits_tmr_ev" classef">edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                                    ck *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                ff *edu_init_as_cisc_amds_tmr_ev" classef">edu_init_as_cisc_amd>sk_(ck *skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
                mk *llc_set_p_flagnc_confck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
  30
>static int sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *skb);
  30
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
                tic int  mk *sk_skb);
  30
                mk * *sk_>skb);
                mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
net/23529">                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                ff *edu_init_as_cm_rsps_tmr_ev" classef">edu_init_as_cm_rsp>sk_(ck * *sk_>skb);
                 struct  *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
  30
>static int llc_send_cm_rsp_f_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *skb);
  30
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  31
                mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_cm_rsp>sk_(ck *skb);
                tic int  *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
  30
>static int sock *sk, struct sk_buff *  30
{  30
        mk * mk *sk_skb);
        >static int );
        sk, struct sk_buff *);
        sk, struct edu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *  30
        ff *sk_-a.comk *edu_hdrode=sock" classrx>edu_hdr>sk_b=,*((ck * *)ff *sk_>skb);
        if (ck *sk_(ck *sk_>>  30
                mk * *sk_>skb);
        elsekb);
                mk *sk_b=,0skb);
        ff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *);
                               sizeoffirm(struct frmr_info>sk_>>skb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  30
                tic int edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                                    tic int sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_frmr_rsp>sk_(ck * *sk_, mk *sk_, mk *sk_-a.comk *sk_"  31
                                         tic int sk_-a.comk *sk_, mk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
  30
>static int llc_resend_frmr_rsp_f_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *);
                                               sizeoffirm(struct frmr_info>sk_>>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
                sk, struct edu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=,firm(struct sk_-a.comk *edu_hdrode=sock" classrx>edu_hdr>sk_skb);
  31
                mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_frmr_rsp>sk_(ck * *sk_, 0, mk *sk_-a.comk *sk_"  31
                                         mk *sk_-a.comk *sk_, mk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
kb);
>static int sock *sk, struct sk_buff *  30
net/33529">{  30
        ff * mk *sk_skb);
        >static int );
        sk, struct sk_buff *);
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *  30
        ff * *sk_>skb);
        ff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *);
                               sizeoffirm(struct frmr_info>sk_>>skb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
                sk, struct edu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
  31
                mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_frmr_rsp>sk_(ck * *sk_, mk *sk_, mk *sk_-a.comk *sk_"  31
                                         mk *sk_-a.comk *sk_, mk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_i_amd_p_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
        mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                            mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
        ff *edu_init_as_i_amds_tmr_ev" classef">edu_init_as_i_amd>sk_(ck * *sk_-a.comk *sk_" mk *sk_-a.comk *sk_>skb);
        mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
        if (ck *sk_(!ck *> {  30
                mk *lsend_edu>sk_(ck *skb);
                tic int llc_inc_vs_by_c>sk_(ck *skb);
        }kb);
           themtic int );
}kb);
  30
static >static int llc_send_i_amd_p_set_0s_tmr_ev" class="sref">llc_send_i_amd_p_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  30
        mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                            mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
        mk *edu_init_as_i_amds_tmr_ev" classef">edu_init_as_i_amd>sk_(ck * *sk_-a.comk *sk_" mk *sk_-a.comk *sk_>skb);
        mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
        if (ck *sk_(!ck *> {  30
                mk *lsend_edu>sk_(ck *skb);
                mk *llc_inc_vs_by_c>sk_(ck *skb);
        }kb);
           themtic int );
}kb);
  31
>static int llc_send_i_xxx_x_set_0s_tmr_ev" class="sref">llc_send_i_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
        mk *edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                            mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
        ff *edu_init_as_i_amds_tmr_ev" classef">edu_init_as_i_amd>sk_(ck * *sk_-a.comk *sk_" mk *sk_-a.comk *sk_>skb);
        mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
        if (ck *sk_(!ck *> {  30
                mk *lsend_edu>sk_(ck *skb);
                mk *llc_inc_vs_by_c>sk_(ck *skb);
        }kb);
           them0skb);
}kb);
kb);
>static int llc_resend_i_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct edu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
        ck * mk *sk_b=, struct sk_(ck *sk_>skb);
kb);
        mk *lresend_i_edu_as_amds_tmr_ev" classef">ef">lresend_i_edu_as_amd>sk_(ck *sk_, 0>skb);
           them0skb);
}kb);
kb);
>static int ode=llc_resend_i_xxx_x_set_0_orlsend_rr_confirm(struct sock *);
                                                sk, struct sk_buff *  30
{  30
        mk * mk *sk_skb);
        sk, struct edu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *skb);
kb);
        >f (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
net/43529">kb);
                tic int edu_headeocinit>sk_(ck * * *sk_-a.comk *sk_.mk *sk_"  31
                                    tic int sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(!ck *>kb);
                        mk *lsend_edu>sk_(ck *skb);
                elsekb);
                        mk *skb);
        }kb);
        if (ck * {  30
                mk *sk_b=, struct sk_(ck *sk_>skb);
                mk *);
                mk *lresend_i_edu_as_amds_tmr_ev" classef">ef">lresend_i_edu_as_amd>sk_(ck *sk_, 0>skb);
        }kb);
           themtic int );
}kb);
kb);
>static int llc_resend_i_rsp_f_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct edu_sns_tmr_ev" class="sredu_sn>sk_buff *sk_b=, struct edu_sn_hdrode=sock" classef">edu_sn_hdr>sk_(ck *skb);
        ff * mk *sk_b=, struct sk_(ck *sk_>skb);
  31
        ck *ef">lresend_i_edu_as_rsps_tmr_ev" classef">ef">lresend_i_edu_as_rsp>sk_(ck *sk_, 1>skb);
           them0skb);
}kb);
kb);
>static int llc_send_rej_amd_p_set_c_vs_by_1" class="sref">llc_send_rej_amd_p_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
  31
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  30
                tic int edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    tic int sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rej_amd>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ff *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rej_rsp_f_set_c_vs_by_1" class="sref">llc_send_rej_rsp_f_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rej_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                tic int lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ff *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rej_xxx_x_set_0s_tmr_ev" class="sref">llc_send_rej_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        >f (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                tic int edu_init_as_rej_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                tic int lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ff *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rnr_amd_p_set_c_confirm(struct sock *sk, struct sk_buff *  30
net/53529">{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        >f (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rnr_amd>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        mk *skb);
        goto mk *skb);
}kb);
  31
>static int llc_send_rnr_rsp_f_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rnr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rnr_xxx_x_set_0s_tmr_ev" class="sref">llc_send_rnr_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
  31
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  30
                tic int edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    tic int sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rnr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_set_remotesresy_vs_by_1" class="sref">llc_set_remotesresy_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *kb);
        >f (!mk *sk_-a.comk * {  30
                tic int sk_-a.comk *);
                mk *sk_(&omk *sk_-a.comk *sk_.mk *sk_"  31
                         mk * + tic int sk_-a.comk *sk_.mk *skb);
        }kb);
           them0skb);
}kb);
  31
>static int llc_opt_send_rnr_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        >static int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rnr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
net/63529">mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rr_amd_p_set_c_vs_by_1" class="sref">llc_send_rr_amd_p_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
  31
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  30
                tic int edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    tic int sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rr_amd>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rr_rsp_f_set_c_vs_by_1" class="sref">llc_send_rr_rsp_f_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
                mk * mk *sk_b=,1skb);
kb);
                tic int edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    tic int sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rr_rsp>sk_(ck * *sk_, mk *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
  30
>static int llc_send_ack_rsp_f_set_c_vs_by_1" class="sref">llc_send_ack_rsp_f_set_c_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                tic int lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_rr_xxx_x_set_0s_tmr_ev" class="sref">llc_send_rr_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
  30
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                tic int edu_init_as_rr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
net/73529">        ck *skb);
        goto mk *skb);
}kb);
kb);
>static int llc_send_ack_xxx_x_set_0s_tmr_ev" class="sref">llc_send_ack_xxx_x_set_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
  31
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_rr_rsp>sk_(ck * *sk_-a.comk *sk_>skb);
                tic int  *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
kb);
void mk *sock *ck * mk *  30
{  30
        istatic int sk_b=, struct ncode=sock" classef">nc>sk_(ck * *);
kb);
        ck *ncode=sock" classef">nc>sk_(ck *);
kb);
        if (ck *sk_>  30
                mk *}kb);
kb);
>static int llc_send_sabme_amd_p_set_xs_tmr_ev" class="sref">llc_send_sabme_amd_p_set_x_confirm(struct sock *sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
kb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
                ck * uff *sk_b=, struct sk_-a.comk *sk_.mk *sk_skb);
kb);
                if (ck *sk_-a.comk *  30
                        ck *sk_b=, struct sk_-a.comk *);
                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_sabme_amd>sk_(ck *skb);
                mk * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                tic int lsend_edu>sk_(ck *skb);
                mk *        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
  30
>static int llc_send_ua_rsp_f_set_pode=sock" classef">ef">llc_send_ua_rsp_f_set_p_confirm(struct sock *sk, struct sk_buff *  30
{  30
        ck * mk *sk_skb);
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *sk_, 0>skb);
  31
        ck *edu_de hre_pf_bits_tmr_ev" classef">edu_de hre_pf_bit>sk_(ck * *sk_>skb);
        if (ck * {  30
                sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
                mk * *sk_-a.comk *                mk *edu_headeocinit>sk_(ck * *sk_, mk *sk_-a.comk *sk_.mk *sk_"  31
                                    mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
                mk *edu_init_as_ua_rsp>sk_(ck * *sk_>skb);
                tic int  *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
                if (ck *sk_(ck *>  30
                        goto mk *sk_skb);
                mk *lsend_edu>sk_(ck *skb);
        }kb);
mk *:  30
           themtic int );
mk *sk_:  30
        ck *skb);
        goto mk *skb);
}kb);
  31
>static int llc_set_s_flag_0s_tmr_ev" class="sref">llc_set_s_flag_0_confirm(struct sock *sk, struct sk_buff *  30
{  30
         struct ncode=sock" classef">nc>sk_(ck *);
           them0skb);
}kb);
kb);
>static int llc_set_s_flag_c_vs_by_1" class="sref">llc_set_s_flag_c_confirm(struct sock *sk, struct sk_buff *  30
net/83529">{  30
         struct ncode=sock" classef">nc>sk_(ck *);
           them0skb);
}kb);
kb);
>static int llc_start_p_timerode=sock" classe"sref">llc_start_p_timer_confirm(struct sock *sk, struct sk_buff *  30
{  30
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *kb);
        ck *lset_p_flagode=sock" class="+code=lset_p_flag_confck *        mk * *sk_-a.comk *sk_.mk *sk_"  31
                  mk * + mk *sk_-a.comk *sk_.mk *skb);
           them0skb);
}kb);
kb);
/**kb);
 *      ="sref">llc_send_ack_if_needed - check if ack is neededkb);
 *      @sk: current ef">ection skurisrspan>kb);
 *      @skb: current eventsrspan>kb);
 *srspan>kb);
 *      Checks number of   ceived PDUs which have not been acknowledged, yet,srspan>kb);
mspanid="L30"comment"> *      If number of them   aches to "npta"(Number of PDUs To Acknowledge) thensrspan>kb);
mspanid="L30"comment"> *      sends aniRR   sponse as acknowledgement for them.  R  thes 0 forsrspan>kb);
mspanid="L30"comment"> *      success, 1 otherwise.srspan>kb);
mspanid="L30"comment"> */srspan>kb);
>static int llc_send_ack_if_needed_vs_by_1" class="sref">llc_send_ack_if_needed_confirm(struct sock *sk, struct sk_buff *  30
{  30
        mk * mk *sk_skb);
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *kb);
        mk *edu_de hre_pf_bits_tmr_ev" classef">edu_de hre_pf_bit>sk_(ck * *sk_>skb);
         struct sk_-a.comk * |=, struct sk_ &o,1skb);
        if (!mk *sk_-a.comk *sk_> {  30
                mk *sk_-a.comk *sk_b=, struct sk_-a.comk *sk_skb);
                mk *sk_-a.comk *sk_ =,1skb);
                mk *sk_-a.comk * =, struct sk_ &o,1skb);
        }kb);
        if (((ck *sk_-a.comk *sk_ - mk *sk_-a.comk *sk_b+ 1 + mk *  30
                        %o, struct  a.co=, struct sk_-a.comk *sk_> {  30
                mk *skb);
                mk *sk_-a.comk *sk_   =,0skb);
                tic int sk_-a.comk *             =,0skb);
                mk *skb);
        }kb);
           them0skb);
}kb);
kb);
/**kb);
 *      ="+code=llc_rst_sendack_flag - resets ack_must_be_send flag_cspan>kb);
 *      @sk: current ef">ection skurisrspan>kb);
 *      @skb: current eventsrspan>kb);
mspanid="L30"comment"> *srspan>kb);
mspanid="L30"comment"> *      This action resets ack_must_be_send flag of given ef">ection, this flag_cspan>kb);
mspanid="L30"comment"> *      indicates if there is any PDU which has not been acknowledged yet.srspan>kb);
mspanid="L30"comment"> *      R  thes 0 for success, 1 otherwise.srspan>kb);
 */srspan>kb);
>static int llc_rst_sendack_flagode=sock" class="+code=llc_rst_sendack_flag_confirm(struct sock *sk, struct sk_buff *  30
{  30
         struct ncode=sock" classef">nc>sk_(ck *sk_ =, struct ncode=sock" classef">nc>sk_(ck * =,0skb);
           them0skb);
}kb);
kb);
mspanid="L30"comment">/**kb);
mspanid="L30"comment"> *      ="+code=llc_send_i_rsp_f_set_ackpe - acknowledge   ceived PDUskb);
mspanid="L30"comment"> *      @sk: current ef">ection skurisrspan>kb);
 *      @skb: current eventsrspan>kb);
 *srspan>kb);
 *      Sends aniI   sponse PDU with f-bit set to ack_pe flag as acknowledge tosrspan>kb);
 *      all   ceived PDUs which have not been acknowledged, yet. ack_pe flag iskb);
 *      set to one if one PDU with p-bit set to one is   ceived.  R  thes 0 forsrspan>kb);
 *      success, 1 otherwise.srspan>kb);
mspanid="L30"comment"> */srspan>kb);
static istatic int sock *);
                                              sk, struct sk_buff *  30
{  30
        istatic int );
        sk, struct n"+code=sock" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *        sk, struct napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
kb);
        ck *edu_headeocinit>sk_(ck * *sk_-a.comk *sk_.mk *sk_"  31
                             struct sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
         struct edu_init_as_i_amds_tmr_ev" classef">edu_init_as_i_amd>sk_(ck *sk_-a.comk *, mk *sk_-a.comk *sk_, mk *sk_-a.comk *sk_>skb);
        ck * *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
        if (ck *sk_(!mk *> {  30
                mk *lsend_edu>sk_(ck *skb);
                mk *llc_inc_vs_by_c>sk_(ck *skb);
        }kb);

);
mk<9a> *   92>);
   92id="L30"comment"> *      sukb);
}kb92id="L30"comment"> *      If number c_send_i_rsp_f_set_k_(ded<-RR   sponsI-formatp-bitflag a ceived PDxn>kb);
  392id="L30"comment"> *      This actiont ef">ection skurisrspan>kb<);
>st92id="L30"comment"> *      ="+code=llent eventsrspan>kb<);
{  92id="L30"comment"> *      @sk:/a>);
   93id="L30"comment"> *      @skb: currn resets ackR   sponsI-formatp-bitedge tosrspan>kb);
   93id="L30"comment"> *      ="sref">lleen acknowledged, yet,srspan>kb);
}kb93id="L30"comment"> *      Sends aniIets ackthem   achement for them.s decreasesg_cspantechn ints callb);
kb<93id="L30"comment"> *      all   ceivpiggy bemeing. for success, 1 otherwise.srspan>kb);
>st93id="L30"comment"> *      set );
net/83529">{  90
t (struct sock *sk, struct sk_buff *  30
   9     s   93   sk, struct n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *}kb93>);
kb<93   if (ck *sk_-a.comk *sk_> {  30
>st94           mk *skb);
{  94           tic int sk_-a.comk *sk_> {  30);
    9    sk, stc int sk_-a.comk * =,0skb);
kb<94   }kb);
< elsea href="net/llc/llcL89c_ac.c#L94" id="L39" class="line"8 name84429">   94           mk *llc_set_s_flag_0f_si_x_confirm< a>(st href="+code=sk" class="sref, mk *skb);
   94      themtic int    94a>);
   94/a>
}kb94id="L30"comment"> *      ="kb);
kb<94id="L30"comment"> *      @sk: currec_set_s_flag_0f_set_ackpe_confckkbkbge  b);
/**is actiont ef">ection skurisrspan>kb<);
 *      ="sref">llent eventsrspan>kb<);
 *      @sk:/a>);
 *      @skb: currn resets ackR   sponse as acknowl set to ack_pe flag as acknowled/a>);
 *srspan>kbkb);
 *      Checks nums any PDU which. g iskbf there is aap-biten awledgDUs which set/a>);
msp9nid="L30"comment"> *      If number to one is   ceiv. for success, 1 otherwise.srspan>kb);
msp9nid="L30"comment"> *      send);
msp9nid="Latic int sock *);
msp95           mk *sk_buff *  30
>st9tic in{  96           tit );
   96   sk, struct napode=sockk" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *   9    sk, struct n"+cod_buff" class="sref">sk_buff *alloc_fr"liode=sock" classef">alloc_fr"li>sk_(ck *sk_-a.comk *kb<9a>);
   9    mk * {  30
   96           tic int napode=sock" classef">nap>sk_buff *sk_b=, struct sk_-a.comk *sk_skb);
   96/a>
   9            mk *edu_headeocinit>sk_(ck * *sk_skb);
> *sk_.mk *sk_"  31
   9            mk *sk_-a.comk *sk_.mk *sk_" mk *sk_>skb);
   9            mk *sk_(et_ackclassef">edu_headeociniamd>sk_(et_ack> * *sk_-a.comk * =,0skbsk_-a.comk *sk_>skb);
   97           tic int  *mlc_hdocinits_tmr_ev" classef">mlc_hdocinit>sk_(ck * *sk_-a.comk * *sk_-a.comk *sk_.mk *sk_>skb);
   97   sk, stc int sk_(ck *>  30
   9                    %o, str> *sk_skb);
   9            mk *lsend_edu>sk_(ck *skb);
   9            mk   9       hrefn="+code=sv" classout29">:  30
   97      them0skb); hrefr"ode=sock" classrcsref>>  30   9    }k hreffreiode=sock" classfrei>sk_skb);
   9       them0sk hreffreiode=soode=skb" classkfrei_="+>sk_(ck *skb);
}kb98           mk> *skb);
kb<9a>);
< *      ="kb);
 *      @sk: currec_send_rr_rsalui_confck);
 *      @skb: currentef">ection skurisrspan>kb<);
msp9nid="L30"comment"> *srspan>kb<: current eventsrspan>kb<);
msp9nid="L30"comment"> *      This/a>);
msp9nid="L30"comment"> *      indicates Afte);
msp9nid="L30"comment"> *      R  thes 0 esb);
 */srspan>kbhes 0 ement for them.s decreases bycalureasing ach"(Number of. forsrspan>kb);
>st99id="L30"comment"> *      ="sref">ll otherwise.srspan>kb);
{  99id="L30"comment"> *      @sk:);
   9     satic int sock *sk, struct sk_buff *  30
   9      }kb);sock" cla58c_902ac.c#L19iE26="+code=llc_inc_npta_va2}kb98          f">nmr_ev"i26f="+code=sock" class="s2>skb);
kb<9a>);
   9    mk *skb *s1 *(struct sock *}kt/llc2t/89529">}kt/llckt/llc2te"8 name86629">   96           tic int napode=soc"+code=skb" clas9" clet evee8.c#L9enam2eda>(struct  *   96           tic int napode=soc_2_SEQ_NBR_MODULOode=sock" eda/pre>a>(struct kbhes 0 ement for the10an>>10af">sk_-a.comk *}kb93>);
{) ~ hrefef"ode=sock" c> *sk_-a.comk *10aaddr>sk_.mk *}_2_SEQ_NBR_MODULOode=sock" "=fmlcode=sock" class="line"86name86129">{) ~ hrefef"ode=sock" c> *sk_-a.comk *(struct  =,10a4s="line10aa href="+code=sk_buff" 10aa >10a   %o, str> *napode=soc"+code=skb" clas9" clet evee8.c#L9eeda>(struct   30
10as="sref, mk *sk10a6s="line10a}kb98          f">nmr_e10a}k>10a_c_ev.9" class="fref"84net/84529">  10a7s="line10a">kb<9a>);
>10a">sk_-a.comk *   94/a>
sock *10a"line"84name84829">}kb94id="L30"comment"> *    adj4nam#L199by_rr - ac/a>);
   94/a>
  30
10efsalui_confck);
/**is actiont ef">ection skurisrspan>kb<);
ncode=soc10uct>10ed="L30"comment"> *      ="sref">llent eventsrspan>kb<);
10e="line"85name85229">);
);
llent eventsrspan>kb<);
sk>10e"line"88name88329">);
 *>10ersalui_confckll otherwise.srspan>kb);
sk_"10ode>10e_c_ev89229">{  99id="L30"comment"> *adj4nam#L199by_rr);
   9     satic int sock *sk *10e7ef">sk_buff * * >10e/a mk *   9      }kb);sock" cla58c_902ac.c#L19iE26="+code=llc_10e9s="line10*10ecL84_ac.c#L284" id="L28" class="lin102ss="line10(ck *   9    mk *   9    mk *kb);
k#L9ef="net/l2cref="s="line"902ame902210(1s="line10(ck *sk_-a.comk *   9    mk *)>10(addr>sk_.mk *   9    mk *}kt/llckt/llc2te"8 f="net/l2cref="s="line"902ame902210(3s="line1012" class="line"1
10(likely>sk_(ck *}"+code=skb" clas9" clet evee8.c#L9enamf2s Afte}kt/llc2t/89529">}kt/llckt/llc2te"8 nam2eda>(struct );
}kb93>);
skmk<9a> *10(ddr>sk_.mk *}_2_SEQ_NBR_MODULOode=sock" "=ff2s Afte}_2_SEQ_NBR_MODULOode=sock" "-sock" classef">sk_-a.comk * =,1027s="line10    If number c_send_i_r10   >10(refack_pe=sk_buff" cle=sofr"o994" href2s Afte}kt/llc2t/89529">}kt/llckt/llc2te"8 n-=ock" classef">sk_-a.comk *  392id="L3010 na>10(/a mk *  1029s="line10 class="line"8 name8282910 cl>10( clas9nid=043efack_pe=sk_buff" classack_pe29"> =,103ss="line10llc_906ac.c#L198" id="L110llc>10llclas9nid=043994" href2s Afte}reate10lf">sk_-a.comka> *sk1032s="line10"> *      ="sref">lleen 10"> >10l2c_ev.9" class="fref"84net/84529">  1033s="line10> *      Sends aniIets a10> *>10l">sk_-a.comk * *    103id>10l"line"88name88329">   94/a>
   94/a>
10l"> *      @skb: currentef">ection sk);
  30
10l_k_(ded<-RR   sponsI-formatp-bitflag aa>urisrspan>kb<);
ncode=soc10uct>10l="line"88name88729">msp9nid="a>);
skb);
}kb94id="L30"commment"55" id/llcc_906akt/llc2ta>);
);
llent eventsrspan>kb<);
sk_-a.comk *10ssline"88name88329">);
10s">/**is actiont ef">ec">ll otherwise.srspan>kb);
sk_-a.comk *>10s2c_ev89229">{  99id="L30"comment"> *adj4nam#L199by_rnr);
   9     satic int sock *sk10ef=>10s3ef">sk_buff *   9      }kb);sock" cla58c_902ac.c#L19iE26="+code=llc_1045s="line10firm< a>(st href="+code=10fir>10s5>sk_-a.comk *10s  mk *}kb93>);
   9    mk *   94a>);
10sss="sref">sock *   9    mk *}kt/llckt/llc2te"8 f="net/l2cref="s="line"902ame90221049s="line10lc_8c_ac.c#L194" id="L2910lc_>10sddr>sk_.mk *}"+code=skb" clas9" clet evee8.c#L9enamf2s Afte}kt/llc2t/89529">}kt/llckt/llc2te"8 nam2eda>(struct  *      @sk: currec_set10> *>10>   %o, str> * *}kb93>);
sk10>f">sk_-a.comk *napode=soc_2_SEQ_NBR_MODULOode=sock" eda"+code=sk" class="sref">sk10>addr>sk_.mk * =,1053s="line10llc_906ac.c#L195" id="L310llc>10>likely>sk_(ck *napode=sockt/llc2t/89529">}kt/llckt/llc2te"8 eda"+code=sk" class="sref">sk *      @skb: currn r10t">>10>   %o, str> *  1055s="line10rspan>kb10>s="sref, mk *sk1056s="line10      Checks nums any PD10   >10>_c_ev.9" class="fref"84net/84529">  1057s="line10="L30"comment"> *      I10="L>10>">sk_-a.comk *   94/a>
10>"line"84name84829">}kb94id="L30"comment"> *    kt/ltx_win_size - ac/a>);
   94/a>
10 *      @skb: currentef">ection sk);
  30
10<">/**is actiont ef">ection skurisrspan>kb<);
10 *      ="sref">llent eventsrspan>kb<);
ncode=soc10uct>10<="line"85name85229">10<"line"88name88329">);
dcnamsing acheshref="net/larenoutstk_-a.comk * 9">}kbeciname83n29">  pode=Ihref="+code=sk_buff" 1010 *     >is aca>);
1p cl1061s="line10ef">  30
 *      @sk:/a>);
 *      @skb: currn resets ackR   sponse as acknowl set to ack_pe fss=2pode=sock" classnap>sk_skb);
sock *sk10ef=>10s3ef">sk_buff *   94a>

}"+cod" class="line"89net/89529class="line"89net/89529class="linass="line"89net/89529">}kb);sock" cla58c_902ac.c#L19iE26="+code=llc_1045s="line10firm< a>(st href="+code=10fir>10s5>sk_-a.comk *}"+coda>(st href="+coa> *(struct da>(st href="+coanet_ac       mk *10ef=>10s3ef">sk__queue_lenirm< ;
sk *     =socanet__q" class="sref">=socanet__q.comk *kb<kb<sk10s5>sk_k *(st href="+coanet_ac       mk * *
sk10s5>sk_k = */a)fu89net/89529">}_2_SEinef0ef="+code=sk" class="sref">sk10s5>sk_k *8c_902ac.c#L19iE2anet_ac       mk */a)an>kb);
  1057s="li7sk_skba>
   94/a>   94/ne"84name84829">}kb94id="L30"comment"> *  8 greate   94/a>
}ka href="+code=010 *  9nid">}">  184name84829">}kb94id="L30"comment"> *  8pan>kb<
10<">/**is actiont ef">ection skurisr8pan>kb<10 *      ="sref">llent eventsr8d/llchesb d="La href="net/llc/llc_b d=">/a) window size class="line"903a"comment"> *      ="sref">llent eventsr8amsing ach);
}kbeci9"> *      @skb: currn reseonf-a.comk1"comment"> *      ="sref">llent eventsr81061s="lin);
 *      @sk:/a>);
}e83n29">  0firm(st href="+code=10fir>10s">/**is actiont ef">ec">ll otherwise.s8/a)esets ackR   sponse as acknowl set to ack_pe fss=2pode=sock" classnap8sk_skb);
}ka href="+coc int }ka href="+cock" class="+code=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *   94);
}"+cod" class="line"89net/89529class="line"89net/89529class="linass="line"89net/89529">}kb);sock" cla58c_902ac.c#L19iE26="+code=llc_1045s="line10firm< a>(st href="+code=10fir>10s5>sk_-a.comk *kb<napodinef0ef="+code=sk" class="sref">sk10s5>sk_k +=kb<sk10s5>sk_k classef">sk_-a.comk *10aaddr>sk_.mk *sk10s5>sk_k =sk_-a.comk *(struct 
  1057s="li91061s="lin   /a)965" id="L9" class="line"86net/8652/a)sk_skbmk *sock *sk10ef=>10s3ef">sk_buff *   94ef">s1 */a)8, str94" id="L9" class="line"89name899 kt/ltx_wi cal2s Afu89net/89529">}wi ca>/a)89529">}"+cod" class="line"89net/89529class="line"89net/89529class="linass="line"89net/89529">}kb);sock" cla58c_902ac.c#L19iE26="+code=llc_1045s="line10firm< a>(st href="+code=10fir>10s5>sk_-a.comk *napode=s1c_2_S10;193" id="L29" class="line"83name83/1"83name83819">}kb93>);
napodinef0ef="+code=def_0sserurrn r10t">>10>  f_0sserirm< ;
sk *     =f_cycle_0sserurrn r10t">>10>=f_cycle_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *>10>  f_0sserirm< ;
sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *10a   %inef0ef="+code=def_0sserurrn r10t">>10>  f_0sserirm< ;
sk *     rejde=lt_0sserurrn r10t">>10>rejde=lt_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *
>10>  f_0sserirm< ;
sk *     srefa id=e_0sserurrn r10t">>10>srefa id=e_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *nmr1e10a}k>10a_c_e2te"8 eda"+code=sk" class="sref">sk *     et__lassef">sk_-a.comk * *sk_1060a}k>10a_c_e2te"8 eda"+code=sk" class="sref">sk *     et__lassef">sk_-a.comk *_1073name83819k *_1083name83819f">s1 *soc1 * *);
);
10s"_0ssersc int sock *sk10ef=>10s3ef">sk_buff *kb<);
kb<);
   96   sk, struct napode=sockk" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *);
>10>  f_0sserirm< ;
sk *     rejde=lt_0sserurrn r10t">>10>rejde=lt_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *kb);
>10>  f_0sserirm< ;
sk *     =f_cycle_0sserurrn r10t">>10>=f_cycle_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *>10>  f_0sserirm< ;
sk *     srefa id=e_0sserurrn r10t">>10>srefa id=e_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k * * >101/a mk1170a}k>10a_c_e2te"8 eda"+code=sk" class="sref">sk *     et__lassef">sk_-a.comk * *   9 1    sk *     et__lassef">sk_-a.comk *_1e10(ck1*}"+cod" classfack_pe=sk_buff" classack_pe29">_129">   9  1 mk * *   9    mk *   9    mk *1a *>10>ine"89name89 idr" cla_0sserck" class="+code=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *}kb93>1;
}kb);sock" cla58c_902ac.c#L19iE26="+code=llc_1045s="line10firm< a>(st href="+code=10fir>10s5>sk_-a.comk * =,1027s="line10   1If nu1260a}k>10a_c_e2te"8 eda"+codemod_0sserurrn r10t">>10>mod_0sserirm< ;
sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105/a> * +92te"8 eda"+code=sk" class="sref">sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=sexpiroc int  *_1529">  1021s="line10 class="line"8 n1me82812/a> * * =,103ss=1line10llc_906ac.c#L198" i1="L1112c#L965" id="L9" class="line"86net/861" mk<1s cal2s Afu89net/89529">}1eate<13L1985y_rnr"L39" class="line"89name89stdr" rejd0sserurrn r10t">>10>ine"89name89 idr" rejd0sserck" class="+code=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="line10"> *      ="sref1>llee13L1910r94" id="L9" class="line"89name81ne10> *   1  Sends aniIets a10> *>101">sk_13L196" id="L39" class="line"86name86229">   96   sk, struct napode=sockk" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck * *    103id>10l1ef10318name88329">>10>mod_0sserirm< ;
sk *     et__0sserurrn rrrn r10t">>10>rejde=lt_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *sk_"  31
);
sk *     et__0sserurrn rrrn r10t">>10>rejde=lt_0sser/105a hrefcoddrode=s0sserurrn r10t"href="expiro.comk * *  1057s="li7sk_skba>
1   94/a>1.c#L1910391="line10ref>skb);
);
1a href=RNR ">)s="line"89name89 idr" cla_0sserurrn r10t">mr_if_noclaunnin10emt>10srefack_r" cla_0sserurrn r10t">mr_if_noclaunnin1e=llc_inc_npta_valui_confck *sock *);
sk10ef=>10s3ef">sk_buff *sk1031s="lsk_-a.comk *   1  Sehref="net/1lc/llc_90_adj4nam#L199by_1nr"L314class="line"86name86229">   96   sk, struct napode=sockk" classef">n"+c>sk_buff *sk_b=, struct ncode=sock" classef">nc>sk_(ck *10s   %o, str91" id=14nid=lass="line"84name1 * *sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105/a> *>  30
<91 aluicntr&q.10hre>10s  mk *>10>mod_0sserirm< ;
sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105/a> *>  30
<91 a href="n1t/llc/remotet kb);
<14   >10(refack_pe=sk_buff" cle=sjiffiesc int sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=sexpiroc int  *_1529">  1021s="l529">   9 1  mk * =,103ss=1liner" mk1/s cal2s Afu89net/89529">1"+cod14 class="line"86net/861" mk<1s cae"83name83129">}kb93>);
10s"_0ssersc i10t">>10>ine"89name89 idr" cla_0sserckc i10t">>10>e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="l/l        1tic int  *   1  Se"> =,1053s1"line10llc_906ac.c#L195" 1d="L310llc>10>likelydef_0sserurrn r10t">>10>  f_0sserirm< ;
=, struct ncode=sock" classef">nc>sk_(ck *>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *napode=1ockt/1lc2t/89529">}ksk_buff" classack_pe29">_1529">  1021s="line10rspan1kb11>s="s1ef, mkpode=soc1058s="li1> =,103ss=1lineine10     1Checks nums any PD10   >11>_c_e159" class="line"83name1" classack1pe29nt"> *    1 I10="L>10>">sk_-a.comk *   9     satckc ip">>10>ine"89name89 idr" cla_0sserckc ip">>10>e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="l/    mk10>lc_8c_ac.c#L1941 id="159" class="line"89name89429">   9     1}kb);sock" cla58c_902ac.c#L19iE26="+code=llc_10e9s="line10*10ecL84_ac.c#L284" id="L28" class="lin102ss="line10(ck *1;
 *10t">>10>  f_0sserirm< ;
sk *     =f_cycle_0sserurrn r10t">>10>=f_cycle_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *scla_0ssetip""ne10emt>10srefack_">scla_0ssetip""ne1s_by_1" 10*10ecL84_ac.c#L284" id="L28" c, 0apode=soc1046s="li1199by_rr);1 =,1053s1="line10uct nc1de=so1622t/89529">}ksk_buff" classack_pe29">_1529">  1021s="l"> =,103ss=1lineef="net/la1enoutstk_-a.comk *19">}kbode=soc1058s="li1> =,103ss=1lineene10     1
 *  1   @sk"line"89name89329">   9     satckc i10t">>10>ine"89name89 idr" rejd0sserckc i10t">>10>e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="lomment"> *1     @skb: currn resets a1kR   1ponse ass="line"89name89429">   9     1a href="ne1/llc/llc_a>);
rn r7199by_1nr"L316e"8 eda"+code=sk" class="sre10t">>10>  f_0sserirm< ;
=, struct ncode=sock" classef">nc>sk_(ck *>10>rejde=lt_0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *kb);
a href="ne1/llc/llc_94a>
rn r8, str91" id=1682t/89529">}ksk_buff" classack_pe29">_1529">  1021s="l"e - ac/a>1/llc/llc_wia>
rn r89529">1"+cod1 classpode=soc1058s="li1> =,103ss=1linea href="ne1/llc/llc_/a);
>/a);9529">1"+cod17class="line"83name83/1"83name83819">}a href="ne1/llc/llc_/a);
>/a)1c#L1941 id="129" cl"line"89name89329">   9     satupd_nr_nt"> *e hrefack_pe=sk_b   9     satupd_nr_nt"> *e e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="la href="ne1/llc/llc_/a);
>/a)#L195" 1d="L31 "lineass="line"89name89429">   9     1a href="ne1/llc/llc_b a>
>/a)napode=1ockt/1lc2t/89inef0ef"line"89name89329">_1529">  1021s="la href="ne1/llc/llc_ch);
>/a)10rsp>11>s="s17ef0ef="+code=def_0sserurrn ruc/llc_90_a1/105a ute"8 eddef_0sserurrn run_1529">  1021s="la href="ne1/llc/llcLin);
>/a)fu89net18952917class="line"89net/89529class="line"89neksk__queue_lenir89nekdclassef">10ef=>10s3ea hanet_ac     clac.c#L19iE2sk__queue_len>189nek_hd>ine"89name89 idr" rk_hd>de=sock" classef">nc>s>sk_buff *_1529">  1021s="lamment"> *1/llc/llc_"L mk>/a)an>kb);
<1.9" class="fre9net/89529class="line"89net/89529class="linass="line"89net/89529">}kb);sock" cla58c_902ac.c#L19iE26="+code=llc_10e9s="line10*10ecL84_ac.c#L284" id="L28" class="lin102ss="line10(ck *   94/a>1a href="ne1/llc/llcL94/a>>/a)L193" i1="L2917e"8 eda"+code=sk" class="sref">sk *     et__lassef">sk_/10t_="+code=llc_send_i10t_="#L19iE26="+code=llc_10PDU_SUPV_GET_N"+code=llc_send_PDU_SUPV_GET_N"s_by_1" 10*10ecL8a hanet_ac     clac.c#L19lass="lin102ss="line10(ck *1/llc/llc_wi);
>/a)s="line184nam179"8 eda"+code=sk" class="sre10s"_0pe=sve_10ecL84_ac.c#L284" id="L28" c, =sk" class="sref">sk *     et__lassef">sk_/10t_="+code=llc_send_i10t_="#L19, +code=sk" class="sreun *} On loopbin > *);
1a href="ne1/llc/llcL/a);
>/a)L1910621="lin18ef0ef="+code=ode=sk" class="srefsk10s5>skdev  f_0sserirm< ;
10s5>sk"ne1"+code=llc_sesto"ne1"e=llia 10s5>skIFF_LOOPBACK+code=llc_sestoIFF_LOOPBACKf="+depode=sock" f2s Aftesk10s5>sksk_ry10su829ejde=lt_0sser/10_ry10su82#L19iE2" classack_pe29">_1529">  1021s="la href="ne1/llc/llc_b d=">/a) window1size 18c2t/89inef0ef="+code=sk" class="sref10t">>10>  f_0sserirm< ;
sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105k *sk10s5>skfailhredata0pe>=socanet__q.comfailhredata0pe>ref=apode=sock" f2s Afte} already, we did not accept data from upper layend or;hrefrff" 101p cl1061s="line101a href="ne1/llc/llc_"L);
>/a)esets a1kR   1ponse as acknowl set to ack_ppppppppppppppppppppppppp* (class=">  fullcomk> *1p cl1061s="line101a href="ne1/llc/llc_a>);
>/a)7199by_1nr"L3180uct ncode=soc10upppppppppppppppppppppppp* chre> *< data -a.cd=sk>inform/a10upper layennt ef">ec">ll otherwise.s810l"line"84name84829">}pppppppppppppppppppppppp* fss=2pode=sock" classnap8sk_skb);
1ae - ac/a>1/llc/llc_wi);
>/a)89529">1"+cod18skb" clas9" clet evee8.c#L9ensk" class="sref">sk10s5>skfailhredata0pe>=socanet__q.comfailhredata0pe>ref=iE2" classack_pe29">_1529">  1021s="la href="ne1/llc/llc_/a);
>/a);193" i1="L2919SEQ_NBR_MODULOode=sock" "linee"89name89329">   9     satdata0   firmhrefack_pe=sk_b   9     satdata0   firms_by_1" 10*10ecL84_ac.c#L284" id="L28" c, =sk" class="sre>s>sk_buff *_1529">  1021s="la href="ne1/llc/llc_/a);
>/a)hrefef"1napod19soc_2_SEQ_NBR_MODULOopode=soc1058s="li1> =,103ss=1linea href="ne1/llc/llc_/a);
>/a)#L195" 1d="L319llc>10>likely>sk_(ck =,103ss=1linea href="ne1/llc/llc_b );
>/a)napode=1ockt/1lc2t/89inef0ef="+code=k" "linee"89name89329">10t">>10>mod_0sserirm< ;
sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=s0sserurrn r10t">>10>0sser/105/a> *>  30
<91a href="ne1/llc/llc_cha>
>/a)10rsp>11>s="s19SEQ_NBR_MODULOode=sock" "linef0ef="+c=sjiffiesc int sk *     et__0sserurrn r10t">>10>et__0sser/105a hrefcoddrode=sexpiroc int  *sk10s5>skfailhredata0pe>=socanet__q.comfailhredata0pe>ref=apode=sock" f2s Afte/a)965" id1"L9" 19   >10(refack_pe=sk_bsk" class="srefustruct da>(st href="+coanet_ac       mf_bi29ejde=lt_0sser/f_bi2e=ll classack_pe29">_1529">  1021s="la> *   94/a>1s1 */a)8, str91" id=199529">}kt/llckt/llc2tsk__queue_len>189nek_pf_bi29ejde=lt_0sser/89nek_pf_bi2de=sock" classef">nc>s>sk_buff * *1/89529">}wi ca>/a)89529">1"+cod19skb" clas9" clet eveeode=sk" class="sreff_bi29ejde=lt_0sser/f_bi2e=ll == 1apode=sock" f2s Aftenapode=s1c_2_S10;193" i2="L2920SEQ_NBR_MODULOode=sock" "linee"89name89329">   k10s5>skfailhredata0pe>=socanet__q.comfailhredata0pe>ref=iE2" classack_pe29">_1529">  1021s="2kb93>);
   9     satdata0   firmhrefack_pe=sk_b   9     satdata0   firms_by_1" 10*10ecL84_ac.c#L284" id="L28" c, =sk" class="sre>s>sk_buff *_1529">  1021s="2a href="ne2/llc/llc_/19529"1}_2_SEQ_2BR_MO20llc>10>likely>sk_(ck =,103ss=1lin2a href="ne2/llc/llc_b1ff" 11aa >10a 2 Ŵnef0ef="+code=pode=soc1058s="li1> =,103ss=1lin2a4href="ne2/llc/llc_cha>
>/a)10rsp>12as9" 209" class="fref"84net/84529">  1057s="li91061s="lin   2a href="ne2/llc/llc_i1">nmr1e10a}k>12a_c_e20ref=apode=soc1058s="lin9sk_1060a}k>12a_c_e20ass="line"86net/8652/a)sk_skbmk<2a> *10srefack_">scla_0sersupd_p""ne1e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2s1 *soc1 * *);
sk__queue_lenir89nekdclassef">10ef=>10s3ea hanet_ac     clac.c#L19iE2sk__queue_len>189nek_hd>ine"89name89 idr" rk_hd>de=sock" classef">nc>s>sk_buff *_1529">  1021s="2210ecL8a hanet_ac     clac.c#L19lapode=sock" f2s Afte_1529">  1021s="2llc2ta>);
2a href=RR 1>);
189nek_pf_bi29ejde=lt_0sser/89nek_pf_bi2de=sock" classef">nc>s>sk_buff * *10srefack_">scla_0ssetip""ne1s_by_1" 10*10ecL84_ac.c#L284" id="L28" c, 0apode=soc1046s="li1199by_rr);1 >101/a mk1170a}k>12a_c_e21"8 namersp_f_set_f="nde=sock"e"89name89329">   9     satckc ip">>10>ine"89name89 idr" cla_0sserckc ip">>10>e=llc1" 10*10ecL84_ac.c#L284" id="L28" c, =sk" class="sre>s>sk_buff *_1529">  1021s="2}kt/llckt/llc2tpode=soc1058s="lin92"+cod2 classfack_pe=pode=soc1058s="lin9 * *  1057s="li91061s="lin   29    mk *1a *);
2/s cal2s A1u89ne12o, str92" id=2L9" cl"line"89name89329">   9     satcetidata0"ne1_2ine"89name89 idr" cla_0ssercetidata0"ne1_2e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2e"83name83229">}kb93>1;
=, struct ncode=sock" classef">nc>sk_(ck * =,1027s2"line10   1If nu1260a}k>12a_c_e229" class="fref"84net/84529">  1057s="li7sk_skba>
2r" mk2/s cal2s A1u89ne12L19"" i2="L1922ref=apode=soc1058s="lin7729">   94/a>2ine10 clas2="line"8 n1me82812/a> * * *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2l2s Afu89n2t/89529">}1eate<13L1985y_2nr"L32" clasode=sock" f2s Afte * 2    ="sref1>llee13L1910r92" id=23ef0ef="+code=sk" class="sref">sc, struct ncode=sock" classef">nc>sk_(ck *  1057s="li7sk_skba>
2nds aniIet2 a10> *>101">sk_13L196" i2="L392 class="line"8f"84net/84529">  1057s="li7sk_skba>
2ment"> *  2 103id>10l1ef10318name88329"> =,103ss=1lin23" d="L9" 2s="line10lc_89_ac.c#L394"2id="L23">}kbode=soc1058s="li1> =,103ss=1lin23aluicntr&2a>);
   9     satcetidata0"ne1_1ine"89name89 idr" cla_0ssercetidata0"ne1_1e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2l> =,1027s2t/llc/llc_90_ac.c#L1985" 2d="L923onse ass="line"89name89429">   9     2c, struct ncode=sock" classef">nc>sk_(ck *kb<}ksk_buff" classack_pe29">_1529">  1021s="2llc2ta>);
2a href=RNR "> =,103ss=1lin2t/a>);
2sk_-a.comk   9     satcetidata0"ne1_1_if_data0"ne1_eq_0ine"89name89 idr" cla_0ssercetidata0"ne1_1_if_data0"ne1_eq_0e=llc_inc_npta_valui_confck *sock *210>likely>sk_(ck<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<sk10ef=>10s3ef">sk_buff *sk1031s="2t/llc/llcL29c1010s   %o, str92" id=249" class="line"89name81L29" class1"li2c, struct ncode=sock" classef">nc>sk_(ck *sk1031s="2taluicntr&2.10hre>10s  mk *c, struct ncode=sock" classef">nc>sk_(ck *kb<  1057s="li7sk_skba>
29    mk   94/a>2529">   9 2  mk *2"+cod24c/a>)s="line"89name89 idr" cla_0sseruetip0"ne1_0ine"89name89 idr" cla_0ssercetip0"ne1_0e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2e"83name83229">}kb93>);
scla_0ssetip""ne10emt>10srefack_">scla_0ssetip""ne1s_by_1" 10*10ecL84_ac.c#L284" id="L28" c, 0apode=soc1046s="li1199by_rr);1 =,1053s2"line10llc_906ac.c#L195" 2d="L325class="line"8f"84net/84529">  1057s="li7sk_skba>
2   tic int2napode=2ockt/25ass="pode=soc1058s="li1> =,103ss=1lin2ine10rspan2kb12>s="s25">}kbode=soc1058s="li1> =,103ss=1lin2ine10     2Checks nums any PD10   >12>_c_e259" cla hricf"line"89name89329">r" cla_0ssercetip0"ne1_1ine"89name89 idr" cla_0ssercetip0"ne1_1e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2nt"> *    2 I10="L>10>">sk_-a.comk *   9     2/    mk10>lc_8c_ac.c#L1942 id="25e"8 eda"+code=sk" class="sref">cla_0ssetip""ne10emt>10srefack_">scla_0ssetip""ne1s_by_1" 10*10ecL84_ac.c#L284" id="L28" c, 1apode=soc1046s="li1199by_rr);1   9 2s="line10*}ksk_buff" classack_pe29">_1529">  1021s="2ze - ac/a>2;
 =,103ss=1lin22   9     satcetipe=ste_r/1050ine"89name89 idr" cla_0ssercetipe=ste_r/1050e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2<> =,1053s2="line10uct nc2de=so26"lineass="line"89name89429">   9     2">c, struct ncode=sock" classef">nc>sk_(ck *10srefack_pe=ste_r/105"ne1#L19iE2/84529">  1057s="li7sk_skba>
2ef="net/la2enoutstk_-a.comk *269" class="fref"84net/84529">  1057s="li91061s="lin   2ene10     2
 *  26ref=apode=soc1058s="lin9 *2     @skb: currn resets a2kR   26ass="line"86net/8652/a)sk_skbmk<2a href="ne2/llc/llc_a>);
rn r7199by_2nr"L326 class="line"89name89stopefef_0ssersceticause0"ne1_0ine"89name89 idr" cla_0sserceticause0"ne1_0e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2<29">   9 2/llc/llc_94a>
rn r8, str92" id=269" class="line"89name899 kt/ltx_wi ca2"e - ac/a>2/llc/llc_wia>
rn r89529">2"+cod269"8 eda"+code=sk" class="sref">c, struct ncode=sock" classef">nc>sk_(ck * *  1057s="li7sk_skba>
2a href="ne2/llc/llc_/a);
>/a);9529">2"+cod27SEQ_NBR_MODULf"84net/84529">  1057s="li91061s="lin   2a href="ne2/llc/llc_/a);
>/a)1c#L1942 id="279" clpode=soc1058s="lin9
>/a)napode=2ockt/279" cl"line"89name89329">   9     satceticause0"ne1_1ine"89name89 idr" cla_0sserceticause0"ne1_1e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2a href="ne2/llc/llc_ch);
>/a)10rsp>12>s="s27classode=sock" f2s Afte=, struct ncode=sock" classef">nc>sk_(ck * *kb< *2/llc/llc_"L mk>/a)an>kb);
<279" class="fref"84net/84529">  1057s="li7sk_skba>
2a href="ne2/llc/llc_a>a>
>/a)7comk *   94/a>2a href="ne2/llc/llcL94/a>>/a)L193" i2="L2927class="line"83name83/a) kt/ltx_wi);
2ae - ac/a>2/llc/llc_wi);
>/a)s="line284nam27c/a>)s="line"89name89 idr" cla_0sserueti10_ry10nt50ine"89name89 idr" cla_0ssercetipe_ry10nt50e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2a href="ne2/llc/llcL/a);
>/a);="line284nam28 clasode=sock" f2s Aftesc, struct ncode=sock" classef">nc>sk_(ck *_1529">  1021s="2a href="ne2/llc/llc_/a;
<>/a)L292" i2="L3928class="line"8f"84net/84529">  1057s="li7sk_skba>
2a href="ne2/llc/llc_b d=">/a) window2size 28ass="pode=soc1058s="li1> =,103ss=1lin2a href="ne2/llc/llc_ch);
>/a)a> *28">}kbode=soc1058s="li1> =,103ss=1lin2a href="ne2/llc/llc_in);
>/a)comment2> *  28  @sk"line"89name89329">   9     satincipe_ry10nt5by_1ine"89name89 idr" cla_0sserincipe_ry10nt5by_1e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2amment"> *2/llc/llc_"L);
>/a)esets a2kR   28onse ass="line"89name89429">   9     2a href="ne2/llc/llc_a>);
>/a)7199by_2nr"L328e"8 eda"+code=sk" class="sref">c, struct ncode=sock" classef">nc>sk_(ck *  1057s="li7sk_skba>
2a href="ne2/llc/llc_94);
>/a)8, str92" id=2882t/89529">}ksk_buff" classack_pe29">_1529">  1021s="2ae - ac/a>2/llc/llc_wi);
>/a)89529">2"+cod28classpode=soc1058s="li1> =,103ss=1lin2a href="ne2/llc/llc_/a);
>/a);193" i2="L2929class="line"83name83/1"83name83819">2a href="ne2/llc/llc_/a);
>/a)hrefef"2napod299" cl"line"89name89329">   9     satcetivr50ine"89name89 idr" cla_0ssercetivr50e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2a href="ne2/llc/llc_/a);
>/a)#L195" 2d="L329"lineass="line"89name89429">   9     2a href="ne2/llc/llc_b );
>/a)napode=2ockt/29ef0ef="+code=def_0sserurrn rf">c, struct ncode=sock" classef">nc>sk_(ck *_1529">  1021s="2a href="ne2/llc/llc_cha>
>/a)10rsp>12>s="s299" class="fref"84net/84529">  1057s="li91061s="lin   2a href="ne2/llc/llc_in   >/a)5comk */a)965" id2"L9" 29ass="line"86net/8652/a)sk_skbmk<2a> * *sock *sk10ef=>10s3ef">sk_buff *sk1031s="2a href="ne2href="+co94ef">/a)8, str92" id=299" class="line"89name899 kt/ltx_wi ca2ae - ac/a>2/89529">}wi ca>/a)89529">2"+cod299"8 eda"+code=sk" class="sref">c, struct ncode=sock" classef">nc>sk_(ck *ncf">c, struct ncode=sock" classef">nc>sk_(ck *napode=s1c_2_S10;193" i3="L2930SEQ_NBR_MODULf"84net/84529">  1057s="li91061s="lin   3kb93>);
10a 3 醽" cl"line"89name89329">   9     satcetivs50ine"89name89 idr" cla_0ssercetivs50e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="3a4href="ne3/llc/llc_cha>
>/a)10rsp>13as9" 30classode=sock" f2s Aftenmr1e10a}k>13a_c_e30e"8 eda"+code=sk" class="sref">=, struct ncode=sock" classef">nc>sk_(ck *_1529">  1021s="3href="net/3lc/llc_86"1">sk_1060a}k>13a_c_e309" class="fref"84net/84529">  1057s="li7sk_skba>
3a> *   94/a>3s1 *soc1 * *);
sock *sk10ef=>10s3ef">sk_buff *sk1031s="3sc, struct ncode=sock" classef">nc>sk_(ck *sc, struct ncode=sock" classef">nc>sk_(ck *  1057s="li7sk_skba>
3  1057s="li7sk_skba>
3llc2ta>);
3a href=RR 1> =,103ss=1lin3t/a>);
}kbode=soc1058s="li1> =,103ss=1lin3r" cla_0sserincivs5by_1ine"89name89 idr" cla_0sserincivs5by_1e=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="313a_c_e31onse ass="line"89name89429">   9     3coddrode=s3ck10a> >101/a mk1170a}k>13a_c_e31e"8 eda"+code=sk" class="sref">c, struct ncode=sock" classef">nc>sk_(ck *ncf">c, struct ncode=sock" classef">nc>sk_(ck *  1057s="li7sk_skba>
3<1 *}ksk_buff" classack_pe29">_1529">  1021s="3href="+cod3=10(ck>10(186c_a1189529">3"+cod31classpode=soc1058s="li1> =,103ss=1lin3/a> * *39    mkr" cla_0s>mr_me84on_c>sk_buff *mr_me84on_c>de=sounsigned longne"89name89329">>>10outidatask_buff *>10outidataf="+coe"89name89329">ustruct da>(st href="+coanet_ac       mtypesk_buff *ypeef="+code=skb1044s="l1ref">sk1031s="3/a hre10e33  mk *1a *   9     3/lc2ta>);
3/s cal2s A1u89ne12o, str93" id=32ef0ef="+code=_inc_npta_valui_confck *sock *>>10outidatask_buff *>10outidataf="+ classack_pe29">_1529">  1021s="3e"83name83329">}kb93>1;
10ef=>10s3ef">sk_buff *GFP_ATOMICsk_buff * =,1027s3"line10   1If nu1260a}k>13a_c_e329" class="free"89name89329">bh_lo>ket/89529class="linasbh_lo>ket/89de=sock" classef">nc>sk_(ck *sk_buff * * *}kt/llckt/llc2t9net/89529class="line"89nela_0ss hre_ev  f_0sserirm< ;89nela_0ss hre_evdclassef">10ef=>10s3eev  f_0sserirm< ;evdclasE26="+code=llc_10e9s=     ev  f_0sserirm< ;89nela_0sevdclaock" classef">nc>s>sk_buff *_1529">  1021s="310llc_906a3.c#L198" i1="L1112c#L965"3id="L32 class="line"86net/861" mk<1s c3l2s Afu89n3t/89529">}1eate<13L1985y_3nr"L333SEQ_NBR_MODULOode=socck" classef">nc>s>ruetiowner_"+code=llc_send_>s>ruetiowner_"dclaock" classef">nc>s>sk_buff * * 3    ="sref1>llee13L1910r93" id=33soc_2_SEQ_NBR_MODULOoef">10ef=>10s3eev  f_0sserirm< ;evdcla     et__0sserurrn rtypesk_buff *ypeef="sE26="+code=llc_10typesk_buff *ypeef="pode=soc1046s="li1199by_rr);1 *>101">sk_13L196" i3="L393 class="line"8da"+code=sk" class="sref">cprocesss>mr_ev  f_0sserirm< ;89neprocesss>mr_evde=sock" classef">nc>sk_(ck *_1529">  1021s="3ment"> *  3 103id>10l1ef10318name88339"> =,103ss=1lin33" d="L9" 3s="line10lc_89_ac.c#L394"3id="L33ef0ef="+code=def_0sserurrn rbh_unlo>ket/89529class="linasbh_unlo>ket/89de=sock" classef">nc>sk_(ck *);
 =,1027s3t/llc/llc_90_ac.c#L1985" 3d="L933ass="line"86net/8652/a)sk_skbmk<3r" cla_0s105a hrefcmr_m>sk_buff *de=sounsigned longne"89name89329">>>10outidatask_buff *>10outidataf="++code=skb1044s="l1ref">sk1031s="3.c#L1910393="line10ref>skb);
);
3a href=RNR ">cla_0s>mr_me84on_c>sk_buff *mr_me84on_c>de=soe"89name89329">>>10outidatask_buff *>10outidataf="+coe"89name89329">/a> CONN_EV_TYPE_P_TMRk_(ck * CONN_EV_TYPE_P_TMRf="+cpode=soc1046s="li1199by_rr);1);
sk_-a.comk1voidne"89name89329">r" cla_0sr/105cmr_m>sk_buff *de=sounsigned longne"89name89329">>>10outidatask_buff *>10outidataf="++code=skb1044s="l1ref">sk1031s="3t/llc/llcL39c1010s   %o, str93" id=349" class="line"89name81L29" class1"li3cla_0s>mr_me84on_c>sk_buff *mr_me84on_c>de=soe"89name89329">>>10outidatask_buff *>10outidataf="+coe"89name89329">/a> CONN_EV_TYPE_BUSY_TMRk_(ck * CONN_EV_TYPE_BUSY_TMRf="+cpode=soc1046s="li1199by_rr);110s  mk *kb);
<34ass="line"86net/8652/a)sk_skbmk<39    mkr" cla_0shrefcmr_m>sk_buff *de=sounsigned longne"89name89329">>>10outidatask_buff *>10outidataf="++code=skb1044s="l1ref">sk1031s="3tc#L1910393  mk *3"+cod349"8 eda"+code=sk" class="sref">cla_0s>mr_me84on_c>sk_buff *mr_me84on_c>de=soe"89name89329">>>10outidatask_buff *>10outidataf="+coe"89name89329">/a> CONN_EV_TYPE_ACK_TMRk_(ck * CONN_EV_TYPE_ACK_TMRf="+cpode=soc1046s="li1199by_rr);1}kb93>);
 =,1053s3"line10llc_906ac.c#L195" 3d="L335llc>1voidne"89name89329">r" cla_0s10t">mr_m>sk_buff *mr_m>de=sounsigned longne"89name89329">>>10outidatask_buff *>10outidataf="++code=skb1044s="l1ref">sk1031s="3   tic int3napode=3ockt/359" class="line"89name81L29" class1"li3ine10rspan3kb13>s="s35ef0ef="+code=def_0sserurrn rf">cla_0s>mr_me84on_c>sk_buff *mr_me84on_c>de=soe"89name89329">>>10outidatask_buff *>10outidataf="+coe"89name89329">/a> CONN_EV_TYPE_REJ_TMRk_(ck * CONN_EV_TYPE_REJ_TMRf="+cpode=soc1046s="li1199by_rr);113>_c_e35ref=apode=soc1058s="lin9 *    3 I10="L>10>">sk_-a.comk *mk<3/    mk10>lc_8c_ac.c#L1943 id="35 class="line"89name89stopefef_0ssersrstivsine"89name89 idr" cla_0sserrstivse=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="3"29">   9 3s="line10*3;
c, struct ncode=sock" classef">nc>sk_(ck *sc, struct ncode=sock" classef">nc>sk_(ck *cla_0sseruetivs5="+code=llc_send_i" cla_0sseruetivs5="e=llcck" classef">nc>sk_(ck *_1529">  1021s="3_1529">  1021s="3<> =,1053s3="line10uct nc3de=so36"linepode=soc1058s="lin9 *369" cls="line"89name89stopefef_0ssersupd_vsine"89name89 idr" cla_0sserupd_vse=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="3ene10     3
 *  36ref=aass="line"89name899 kt/ltx_wi ca3omment"> *3     @skb: currn resets a3kR   369" class="fre9net/89529class="line"89neksk__queue_lenir89nekdclassef">10ef=>10s3ea hanet_ac     clac.c#L19iE2sk__queue_len>189nek_hd>ine"89name89 idr" rk_hd>de=sock" classef">nc>s>sk_buff *_1529">  1021s="3a href="ne3/llc/llc_a>);
rn r7199by_3nr"L336e"8 eda"+code=sk" class="sreustruct da>(st href="+coanet_ac       m="+code=llc_send_="#L19iE26="+code=llc_10PDU_SUPV_GET_N"+code=llc_send_PDU_SUPV_GET_N"s_by_1" 10*10ecL8a hanet_ac     clac.c#L19lass="lin102ss="line10(ck *   9 3/llc/llc_94a>
rn r8, str93" id=36class="line"83name83/a) kt/ltx_wi);
3"e - ac/a>3/llc/llc_wia>
rn r89529">3"+cod369"8 eda"+codeode=sk" class="sref">s_circular_betwee>sk__queue_lenir89necircular_betwee>s_by_1" 10*10ecL8">sc, struct ncode=sock" classef">nc>sk_(ck *c, struct ncode=sock" classef">nc>sk_(ck *sk1031s="3a href="ne3/llc/llc_/a);
>/a);9529">3"+cod37SEQ_NBR_MODULOode=socck" classef">ncf">cla_0sseruetivs5="+code=llc_send_i" cla_0sseruetivs5="e=llcck" classef">nc>sk_(ck *_1529">  1021s="3a href="ne3/llc/llc_/a);
>/a)1c#L1943 id="37soc_2_SEQ_NBRsk_buff" classack_pe29">_1529">  1021s="3a href="ne3/llc/llc_/a);
>/a)#L195" 3d="L337"linepode=soc1058s="lin9}fss=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llcLin);
>/a)fu89net38952937e"8 e10l"line"84name84829">}* Non-standard actions; these not la_tained in IEEE specification; fond or;hrefrff" 101p cl1061s="line103amment"> *3/llc/llc_"L mk>/a)an>kb);
<37onse as acknowl set to ack_p* our own usaged or;hrefrff" 101p cl1061s="line103a href="ne3/llc/llc_a>a>
>/a)7comk *ncode=soc10u* fss=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llcL94/a>>/a)L193" i3="L29370ref>10l"line"84name84829">/*}fss=2pode=sock" classnap8sk_skb);
3ae - ac/a>3/llc/llc_wi);
>/a)s="line384nam37c/a>)as acknowl set to ack_p*      i" cla_0sdisc - pe=sves la_nection from SAP list -a.cfrees i2e=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llcL/a);
>/a);="line384nam38 clasas acknowl set to ack_p*      @sk:knoosed la_nectione=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llcL/a);
>/a)L1910623="lin38ef0efas acknowl set to ack_p*      @skb: occurred even2e=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_/a;
<>/a)L292" i3="L3938classncode=soc10u* fss=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_b d=">/a) window3size 389" cl"line"89name89329">   9     disc+code=llc_send_i" cla_0sdisce=llc_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="3a href="ne3/llc/llc_ch);
>/a)a> *38classode=sock" f2s Afte/* FIXME: this thing seems to walinto dieu* fss=2pode=sock" classnap8sk_skb);
3amment"> *3/llc/llc_"L);
>/a)esets a3kR   389" class="fref"84net/84529">  1057s="li7sk_skba>
3a href="ne3/llc/llc_a>);
>/a)7199by_3nr"L338ref=apode=soc1058s="lin7729">   94/a>3a href="ne3/llc/llc_94);
>/a)8, str93" id=38class="line"83name83/a) kt/ltx_wi);
3ae - ac/a>3/llc/llc_wi);
>/a)89529">3"+cod38c/a>)as acknowl set to ack_/*}fss=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_/a);
>/a);193" i3="L2939 clasas acknowl set to ack_p*      r" cla_0s10uet - peuets la_nectione=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_/a);
>/a)hrefef"3napod39ef0efas acknowl set to ack_p*      @sk : peueting la_nection.e=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_/a);
>/a)#L195" 3d="L339classncode=soc10u*      @skb: occurred even2.e=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_b );
>/a)napode=3ockt/39ef0efncode=soc10u*e=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_cha>
>/a)10rsp>13>s="s39classa   94/ne"84name84829"u*      Stop all >>10>s, empty all queues -a.c10uet all "ne1s.e=s=2pode=sock" classnap8sk_skb);
3a href="ne3/llc/llc_in   >/a)5comk *}* fss=2pode=sock" classnap8sk_skb);
3href="net/3lc/llc_86"L
/a)965" id3"L9" 39ass=""line"89name89329">   9     10uetsk_buff * *sock *sk10ef=>10s3ef">sk_buff *sk1031s="3a> */a)8, str93" id=399529">}kt/llc=sk" class="sref">c,  10uetsk_buff *nc>sk_(ck *  1057s="li7sk_skba>
3ae - ac/a>3/89529">}wi ca>/a)89529">3"+cod399"8 eda"+codef"84net/84529">  1057s="li7sk_skba>
4t napode=s1c_2_S10;193" i4="L2940classpode=soc1058s="lin9);
ncode=soc10/*}fss=2pode=sock" classnap8sk_skb);
4a href="ne4/llc/llc_b1ff" 11aa >10a 4 ຜef0efncode=soc10u*      r" clircular_betwee> - designates that b is betwee> a -a.cc or notfss=2pode=sock" classnap8sk_skb);
4a4href="ne4/llc/llc_cha>
>/a)10rsp>14as9" 40classa   94/ne"84name84829"u*      @a: lower boundfss=2pode=sock" classnap8sk_skb);
4a5href="ne4/llc/llc_in   >/a)5comk}*      @b: ele4829nto seeeodeis betwee> a -a.cbfss=2pode=sock" classnap8sk_skb);
4a6href="ne4/c/llc_86"L
/a)965" id4a_c_e40onse as acknowl set to ack_p*      @c: upper boundfss=2pode=sock" classnap8sk_skb);
4a7href="ne4/refn="+ca>mk<>/a)7199by_4="L19400uct ncode=soc10u*fss=2pode=sock" classnap8sk_skb);
4a8href="ne4/ref="+co94ef">/a)8, str94> *10l"line"84name84829">p*      This function designates that b is betwee> a -a.cc or not (for example,fss=2pode=sock" classnap8sk_skb);
4a9href="ne4/89529">}wi ca>/a)89529">4id="L40c/a>)as acknowl set to ack_p*      0 is betwee> 127 -a.c1). R"84nes 1eodeb is betwee> a -a.cc, 0fss=2pode=sock" classnap8sk_skb);
4);
4);
4s_circular_betwee>sk__queue_lenir89necircular_betwee>s_by_1" 10*10ecL8ustruct da>(st href="+coanet_ac       mask_buff *ustruct da>(st href="+coanet_ac       m>sk_buff *sk1031s="4llc2ta>);
4a href=RR 1>);
 *  1057s="li7sk_skba>
4 *  1057s="li7sk_skba>
4<6href="ne4c/llc_90_a1j4nam1160a}k>14a_c_e419" class="fref"84net6="+code=llc_10bsk_buff *  1057s="li7sk_skba>
4<7href="ne4ck10a> >101/a mk1170a}k>14a_c_e41ref=apode=soc1058s="lin7729">   94/a>4<1 *4"+cod41c/a>)as acknowl set to ack_/*}fss=2pode=sock" classnap8sk_skb);
4/a> * *mr_evi-o>>10> backendfss=2pode=sock" classnap8sk_skb);
49    mk);
4/a hre10e34  mk *1a *ncode=soc10u*      @skb: occurred even2e=s=2pode=sock" classnap8sk_skb);
4/lc2ta>);
4/s cal2s A1u89ne12o, str94" id=42ef0efncode=soc10u*e=s=2pode=sock" classnap8sk_skb);
4e"83name83429">}kb93>1;
>10> callback functions. Whe> la_nectione=s=2pode=sock" classnap8sk_skb);
4/a href10e4uot; mk}*      is busy (during sending a data fr *<) >>10> expiration even2 must bed or;hrefrff" 101p cl1061s="line104"> =,1027s4"line10   1If nu1260a}k>14a_c_e42onse as acknowl set to ack_p*      queued. Otherwise this even2 cackbe sen9nto la_nection s hre machf n.e=s=2pode=sock" classnap8sk_skb);
4;oddrode=s4/s cal2s A1u89ne12L19"" i4="L19420uct ncode=soc10u*      Queued even2s will process by r" cbacklog_rcv function aft0> sendinge=s=2pode=sock" classnap8sk_skb);
4;1 * * *10l"line"84name84829">p*      data fr *<.e=s=2pode=sock" classnap8sk_skb);
4;ref="+cod4.c#L198" i1="L1112c#L965"4id="L42c/a>)as acknowl set to ack_p* fss=2pode=sock" classnap8sk_skb);
4l2s Afu89n4t/89529">}1eate<13L1985y_4nr"L343SEQ_Na hricfvoidne"89name89329">r" cprocesss>mr_ev  f_0sserirm< ;89neprocesss>mr_evde=so_inc_npta_valui_confck *sock *sk10ef=>10s3ef">sk_buff *sk1031s="4ine10"> * 4    ="sref1>llee13L1910r94" id=43soc_2ass="line"89name81L29" class1"li4ia hre10e34 a10> *>101">sk_13L196" i4="L394 class="line"8ode=sk" class="sref">s_, struct ncode=sock" classef">nc>sk_(ck * *  4 103id>10l1ef10318name88349">ncKERN_WARNINGk_(ck *"%ys: >>10> called onknoosed la_nection\n"fss=2poc="line"83name83/1"83name83819">43" d="L9" 4s="line10lc_89_ac.c#L394"4id="L43ef0ef="+code="+code=da"+code=sk" class="sre__func__k_(ck *  1057s="li7sk_skba>
43aluicntr&4a>);
nc>s>sk_buff *_1529">  1021s="4l> =,1027s4t/llc/llc_90_ac.c#L1985" 4d="L9439" class="fre} else ode=sock" f2s Afte="+iowned5by_use"de=sock" classef">nc>sk_(ck *sk1031s="4i1 *skb);
}kt/llckt/llc2t="+code=sk" class="srefr" cla_0ss hre_processsk_buff *nc>sk_(ck *_1529">  1021s="4llc2ta>);
4a href=RNR ">);
 *nc>s>sk_buff */a> EVENTsk_buff * EVENTef="+ classack_pe29">_1529">  1021s="4sk_-a.comknc>sk_(ck *_1529">  1021s="4   94/a>4t/llc/llcL49c1010s   %o, str94" id=44ef0ef="+code=pode=soc1058s="li1> =,103ss=1lin4 =,103ss=1lin410s  mk *
The origin10ef="+code=xMR R" cla_0ss hre_processsk_buware0> sto  .e origin0ef="+code=xsubMR R" clasx .a sa href="+http://www.redpunc-a since 1995.e origin10/bodyin0/html
The