linux/net/sched/cls_basic.c
<<
>>
Prefs
   1/*
   2 * net/sched/cls_basic.c        Basic Packet Classifier.
   3 *
   4 *              This program is free software; you can redistribute it and/or
   5 *              modify it under the terms of the GNU General Public License
   6 *              as published by the Free Software Foundation; either version
   7 *              2 of the License, or (at your option) any later version.
   8 *
   9 * Authors:     Thomas Graf <tgraf@suug.ch>
  10 */
  11
  12#include <linux/module.h>
  13#include <linux/slab.h>
  14#include <linux/types.h>
  15#include <linux/kernel.h>
  16#include <linux/string.h>
  17#include <linux/errno.h>
  18#include <linux/rtnetlink.h>
  19#include <linux/skbuff.h>
  20#include <net/netlink.h>
  21#include <net/act_api.h>
  22#include <net/pkt_cls.h>
  23
  24struct basic_head {
  25        u32                     hgenerator;
  26        struct list_head        flist;
  27};

  v2.6.20="line" name="L27">  219" class="line" name="L19">  19basic_head {
fil.  20u32                     
leef">hgenerator
leef="net/sched/cls_basic.c#L27" id="L273 class="3ine" name="L21">  21  22   3<

    arch_resulator
               ode=list_head" reearch_resulator  24list_head        list_headnk    net/sched/cls_basic.c#L27" id="L273 class="3ine" name="L25">  25  26
  v2.6.20="line" name="L27">  2193 class="3ine" name="L27">  27  19
  v2.6.20="line" name="L27">  2194 class="4ine" name="L20">  20  21  22yarch_resulator< classc/span>y   34

    arch_resulator
         *ode=list_head" reearch_resulator   4  25basic_head  26basic_head {
basic_head<basic_head {
  27basic_head {
fil.
  v2.6.20="line" name="L27">  2194 class="4ine" name="L19">  19basic_head<flist;
list_headnk    )"net/sched/cls_basic.c#L25" id="L255 class="5ine" name="L20">  20  21  22   35
basic_head   45struc54                    if (ode=basic_head"/ef">basic_head   5<     55                            pre inuenet/sched/cls_basic.c#L26" id="L265 class="5ine" name="L26">  26
	basic_head  27
	<-1net/sched/cls_basic.c#L26" id="L265 class="5ine" name="L19">  19  20
  v2.6.20="line" name="L27">  2196 class="6ine" name="L21">  21
	">basic_head {
"">u32            ode=hgenerator" n>
leef">hgenerator
leef=")et/sched/cls_basic.c#L25" id="L256 class="6ine" name="L22">  22   36
list_head   46struc64 struct basic_head {
basic_head<basic_head {
   56     65 struct basic_head {
fil.   6<     66  >
  v2.6.20="line" name="L27">  2196 class="6ine" name="L27">  27basic_head<  2196 class="6ine" name="L2="inc42.6.67.30"68                    e;">
	<0ULnet/sched/cls_basic.c#L26" id="L266 class="6ine" name="L19">  19
  v2.6.20="line" name="L27">  2197 class="7ine" name="L20">  20basic_head<flist;
list_headnk    )  v2.6.20="line" name="L27">  2197 class="7ine" name="L21">  21
leef">hgenerator
leef=""=="ode=basic_head" n>
leef">hgenerator
leef=")et/sched/cls_basic.c#L25" id="L257 class="7ine" name="L22">  22list_head   37
   47struc74 struct 
	list_head   57     75    67     76  >
  v2.6.20="line" name="L27">  2197class="liine" name="L7">   7<};

	">basic_head {
pu>  19  20
  v2.6.20="line" name="L27">  2198 class="8ine" name="L21">  21
	">basic_head {
ini>  22   38
basic_head {
basic_head<   48struc84  >
  v2.6.20="line" name="L27">  2198class="l8ine" name="L5">   58     8  basic_head<basic_head<   68     86            if (ode=basic_head"="sref">basic_head<  2198class="l8ine" name="L7">   78};

	<-ode=basic_head"ENOBUFSarch_resulator   8<7.30"88 basic_head<flist;
  19basic_head<  20
	<0net/sched/cls_basic.c#L26" id="L269 class="9ine" name="L21">  21  22
  v2.6.20="line" name="L27">  2199class="l9ine" name="L3">   39
basic_head {
deletesfil.basic_head {
fil.  2199class="l9ine" name="L4">   49struc94 strnet/sched/cls_basic.c#L25" id="L259class="l9ine" name="L5">   59     9  basic_head   69     96    79};
   897.30"98    9<#incl99   10<#inc><#  >
  v2.6.20="line" name="L27">  21910 class="l0ine" name="L11">  1101inc><1  1202inc><2 strnet/sched/cls_basic.c#L25" id="L2510 class="l0ine" name="L13">  1303inc><3            ref="+code=list_head"  class="sref">basic_head {
basic_head<  1404inc><4 struct basic_head {
fil.  1505inc><5  >
  v2.6.20="line" name="L27">  21910 class="l0ine" name="L16">  1606inc><6 basic_head<flist;
list_headnk    )"net/sched/cls_basic.c#L25" id="L2510 class="l0ine" name="L17">  1707inc><7 struct list_headnk    )net/sched/cls_basic.c#L26" id="L2610 class="l0ine" name="L18">  1808inc><8                    ode=list_head"  classdeletesfil.basic_head {
deletesfil.  1909inc><9   10>basic_head<  11
1inc>11   12>#inc112  >
  v2.6.20="line" name="L27">  2191" class="lline" name="L13">  13>#inc113basic_head {
delete  14>#inc114 strnet/sched/cls_basic.c#L25" id="L251" class="lline" name="L15">  15>#inc115 struct basic_head {
basic_head<basic_head {
  16>#inc11  struct basic_head {
fil.basic_head {
fil.  17>#inc1ude &let/sched/cls_basic.c#L26" id="L251" class="lline" name="L18">  18>#inc118 basic_head<flist;
list_headnk    )et/sched/cls_basic.c#L26" id="L251" class="lline" name="L19">  19>#inc119   20#inc120                    href="+code=u32" class=tcf_te F_loc
ef">list_head  21#inc121                            ode=u32" class=classdelarch_resulatorlist_headnk    )net/sched/cls_basic.c#L26" id="L261" class="1line" name="L22">  22#inc12               list_head  23
basic_head {
deletesfil.  24stru124                            e;">
	<0net/sched/cls_basic.c#L26" id="L261" class="1line" name="L25">  25    125                    }et/sched/cls_basic.c#L26" id="L261" class="1line" name="L26">  26    126  >
  v2.6.20="line" name="L27">  2191" class="1line" name="L27">  27};
<127 struct 
	<-ode=basic_head"ENOENTarch_resulator
}et/sched/cls_basic.c#L26" id="L261" class="lline" name="L19">  19
  v2.6.20="line" name="L27">  21913 class="13ine" name="L20">  20  21u32    NLA_Usrref=h},et/sched/cls_basic.c#L25" id="L2513 class="13ine" name="L22">  22  13#
  24
  v2.6.20="line" name="L27">  21913 class="13ine" name="L25">  25basic_head {
fil.  26basic_heade basic_head  27basic_headflist;
ehref=")et/sched/cls_basic.c#L25" id="L2513 class="13ine" name="L2="inc42.6.137.30138 strnet/sched/cls_basic.c#L25" id="L2513 class="13ine" name="L19">  19basic_head  20basic_head  21  22
  v2.6.20="line" name="L27">  21914class="l14ine" name="L3">   314
basic_headbasic_headflist;
ehref=","& hde=basic_head"eef">basic_head {
exs_maparch_resulator< classexs_map    41basic_head  25
	basic_head  26
  v2.6.20="line" name="L27">  21914 class="14ine" name="L27">  27basic_headbasic_headbasic_head  19
	">basic_headref=net/sched/cls_basic.c#L27" id="L2715 class="15ine" name="L20">  20
  v2.6.20="line" name="L27">  21915 class="15ine" name="L21">  21  22basic_headu32    nla_get_"sr   315
basic_headbasic_heade    415stru154            }et/sched/cls_basic.c#L26" id="L2615class="l1iine" name="L5">   51<    155  >
  v2.6.20="line" name="L27">  21915 class="15ine" name="L26">  26basic_headbasic_head  27basic_head
  v2.6.20="line" name="L27">  21915 class="15ine" name="L19">  19
	<0net/sched/cls_basic.c#L26" id="L2616 class="16ine" name="L20">  20
ode=u32" class=er/ou>
	">basic_headref=:et/sched/cls_basic.c#L26" id="L2616 class="16ine" name="L21">  21basic_head  22
	basic_head   316
   416stru164  >
  v2.6.20="line" name="L27">  21916class="l16ine" name="L5">   516    165ref=reght. in+code=basic_head" classchangeef">basic_head< classchange   61<    166                            ref="+code=list_head" tcf_protoarch_resulatorbasic_heade u32            ode=hgenerator" n>
leef">hgenerator
leef=",et/sched/cls_basic.c#L25" id="L2516 class="16ine" name="L27">  27basic_head  19basic_head  20basic_head {
basic_head<basic_head {
  21basic_head  22basic_head {
fil.basic_head {
fil.   317
   417stru174            if (ode=basic_head"tcaarch_resulator  21917class="l17ine" name="L5">   517    175                    e;">
	<-ode=basic_head"EINVALarch_resulator   617    176  >
  v2.6.20="line" name="L27">  21917class="l1iine" name="L7">   71<};
<177 basic_headbasic_head  19basic_head  20
	basic_head  21  22   318

leef">hgenerator
leef=""& & ehde=basic_head"
arch_resulator
leef">hgenerator
leef=""!="ode=basic_head" n>
leef">hgenerator
leef=")et/sched/cls_basic.c#L25" id="L2518class="l18ine" name="L4">   418stru184                            e;">
	<-ode=basic_head"EINVALarch_resulator   518    185                    e;">
	basic_heade    618    186            }et/sched/cls_basic.c#L26" id="L2618class="l18ine" name="L7">   718};
<18de &let/sched/cls_basic.c#L26" id="L2518class="l1iine" name="L8">   81<7.30188 basic_head  19  20  21919 class="19ine" name="L21">  21
	">basic_headref=net/sched/cls_basic.c#L27" id="L2719 class="19ine" name="L22">  22
  v2.6.20="line" name="L27">  21919class="l19ine" name="L3">   319
basic_head   419stru194            if (ode=basic_head" n>
leef">hgenerator
leef=")et/sched/cls_basic.c#L25" id="L2519class="l19ine" name="L5">   519    195                    hde=basic_head"
arch_resulator
leef">hgenerator
leef=""="ode=basic_head" n>
leef">hgenerator
leef="net/sched/cls_basic.c#L26" id="L2519class="l19ine" name="L6">   619    196    719};
<197 struct    8197.30198                    do"net/sched/cls_basic.c#L25" id="L2519 class="liine" name="L19">  19##inc199 basic_head<hgenerator;
  10basic_head<hgenerator;
  11
	">basic_head {
"">basic_head<hgenerator;
  12
  v2.6.20="line" name="L27">  21920 class="20ine" name="L13">  13  14basic_headbasic_tring">"Insufficien+cnumber of /n>
les\n"  15
	">basic_headref=net/sched/cls_basic.c#L27" id="L2720 class="20ine" name="L16">  16  17  18
leef">hgenerator
leef=""="ode=basic_head" "sref">basic_head<hgenerator;
  19  10
  v2.6.20="line" name="L27">  2192" class="2iine" name="L11">  11basic_headbasic_heade   12#inc212            if (ode=basic_head"er/ef">basic_head  13#inc213                    gotocode=u32" class=er/ou>
	">basic_headref=net/sched/cls_basic.c#L27" id="L272" class="2line" name="L14">  14#inc214  >
  v2.6.20="line" name="L27">  2192" class="2line" name="L15">  15#inc215 struct list_head  16#inc216 basic_headlist_headnk    ,"& hde=basic_head"="sref">basic_head<flist;
  17#inc217 list_head  18#inc218   19#inc219  >
  v2.6.20="line" name="L27">  2192" class="2line" name="L20">  20#inc220            e;">
	<0net/sched/cls_basic.c#L26" id="L262" class="2line" name="L21">  21#inc221    ode=u32" class=er/ou>
	">basic_headref=:et/sched/cls_basic.c#L26" id="L262" class="2line" name="L22">  22#inc222            if (*ode=list_head" argarch_resulator  23
  24stru224  >
  v2.6.20="line" name="L27">  2192" class="2line" name="L25">  25    225            e;">
	basic_head  26    226  >
}et/sched/cls_basic.c#L26" id="L262" class="2line" name="L27">  27};
<22de &let/sched/cls_basic.c#L26" id="L252" class="2line" name="L2="inc42.6.227.302
	  >
reght. voidcode=list_head"  classwal
ef">list_headbasic_head  19
net/sched/cls_basic.c#L25" id="L2523 class="23ine" name="L20">  20basic_head {
basic_head<basic_head {
  21basic_head {
fil.  22
  v2.6.20="line" name="L27">  21923 class="2iine" name="L13">  13basic_head<flist;
list_headnk    )"net/sched/cls_basic.c#L25" id="L2523 class="23ine" name="L24">  24flist;
counrref=h="in ode=basic_head"argarch_resulator  25  26
  v2.6.20="line" name="L27">  21923 class="23ine" name="L27">  27  19  20  21  22flist;
counrref=++net/sched/cls_basic.c#L26" id="L2624 class="24ine" name="L3">   324
   42  25
  v2.6.20="line" name="L27">  21924 class="24ine" name="L26">  26
reght. in+code=basic_head" classdumparch_resulator< classdump  21924 class="24ine" name="L27">  27  19basic_head {
fil.basic_head {
fil.  20basic_headflist;
nehref="net/sched/cls_basic.c#L26" id="L2625 class="25ine" name="L21">  21  22  21925class="l25ine" name="L3">   325

	   425stru254  >
  v2.6.20="line" name="L27">  21925class="l2iine" name="L5">   52<    255 struct 
leef">hgenerator
leref=h="ode=list_head" 
arch_resulator
leef">hgenerator
leef="net/sched/cls_basic.c#L26" id="L2625 class="25ine" name="L26">  26
  v2.6.20="line" name="L27">  21925 class="25ine" name="L27">  27flist;
nehref="h="ode=list_head" nla_nehr_regrref">flist;
nla_nehr_regrrflist;
nehref="h=="ode=basic_head"NULLarch_resulator  21925 class="25ine" name="L19">  19hgenerator  20
  v2.6.20="line" name="L27">  21926 class="26ine" name="L21">  21basic_head  21926 class="26ine" name="L22">  22u32    nla_put_"srbasic_head  21926class="l26ine" name="L3">   326
hgenerator   426stru264  >
  v2.6.20="line" name="L27">  21926class="l26ine" name="L5">   526    265            if (ode=basic_head"tcf_exse_dumparch_resulator {
exs_maparch_resulator< classexs_map   21926 class="2iine" name="L6">   62<    266                ode=basic_head"tcf_em_te F_dumparch_resulator  27hgenerator
  v2.6.20="line" name="L27">  21926 class="26ine" name="L19">  19basic_headflist;
nehref=")net/sched/cls_basic.c#L27" id="L272  class="27ine" name="L20">  20
  v2.6.20="line" name="L27">  2192  class="27ine" name="L21">  21 {
exs_maparch_resulator< classexs_map   22hgenerator   327
   427stru274            e;">
	   527    275  >
  v2.6.20="line" name="L27">  21927class="l27ine" name="L6">   627    276  >
ode=u32" class=nla_put_failureef">hgenerator   72<};
<277 flist;
nehref=")net/sched/cls_basic.c#L27" id="L272  class="27ine" name="L2="inc42.6.277.30278            e;">
	<-1net/sched/cls_basic.c#L26" id="L2627 class="27ine" name="L19">  19  20
  v2.6.20="line" name="L27">  21928 class="28ine" name="L21">  21 _opearch_resulator _ope     ode=basic_head"__read_mostlyarch_resulator<__read_mostlyef="h="net/sched/cls_basic.c#L25" id="L2528 class="28ine" name="L22">  22basic_headbasic_tring">"" id="  21928class="l28ine" name="L3">   328
 {
ch_reifyarch_resulator {
ch_reify   21928class="l28ine" name="L4">   428stru284            .ode=basic_head"iniref">flist;
inir              <=ref="+code=basic_head"/a> {
iniref">flist;
/a> {
inir   21928class="l28ine" name="L5">   528    285            .ode=basic_head"derefoyarch_resulator {
derefoyarch_resulator {
derefoy   21928class="l28ine" name="L6">   628    286            .ode=basic_head""">
	">basic_head<""> {
"">
	">basic_head {
"">  21928class="l28ine" name="L7">   728};
<287            .ode=basic_head"pu>
	">basic_head {
pu>
	">basic_head {
pu>  21928 class="2iine" name="L8">   82<7.30288 basic_head {
changeef">basic_head< classchange  21928 class="28ine" name="L19">  19 {
deletearch_resulator {
delete  21929 class="29ine" name="L20">  20list_head {
wal
ef">list_head  21929 class="29ine" name="L21">  21 {
dumparch_resulator< classdump  21929 class="29ine" name="L22">  22basic_head  21929class="l29ine" name="L3">   329
   429stru294  >
  v2.6.20="line" name="L27">  21929class="l29ine" name="L5">   529    295ref=reght. in+code=basic_head"_
iniref">flist;
_
inir  ef">flist;
inirL27">    629    296    729};
<297 struct 
	 _opearch_resulator _ope    )net/sched/cls_basic.c#L27" id="L2729class="l29ine" name="L8">   8297.3029	  >
}et/sched/cls_basic.c#L26" id="L2629 class="2iine" name="L19">  19
  v2.6.20="line" name="L27">  21930 class="3iine" name="L10">  10flist;
_
exir  ef">flist;
exirL27">   11  12 _opearch_resulator _ope    )net/sched/cls_basic.c#L27" id="L2730 class="30ine" name="L13">  13  14
  v2.6.20="line" name="L27">  21930 class="30ine" name="L15">  15flist;
module
inir ef">flist;
inirL27">    6306inc306  >
ode=u32" class=module
exiref">flist;
module
exir ef">flist;
exirL27">    7307inc30de &lode=list_head" MODULE_LICENSEarch_resulatorbasic_tring">"GPL"  18
  v2.6.20="line" name="L27">  219309class="30ine" name="L19">  19


The original LXR software by the v2.6.20=http://sourceforge."linprojects/lx/e>LXR communiry lx/@"L1ux.no .
lx/."L1ux.no kinrly horeer by v2.6.20=http://www.redpill-"L1pro.no">Redpill LL1pro AS