linux/net/ipv4/fib_semantics.c
<<
>>
Prefs
   1/*
   2 * INET         An implementation of the TCP/IP protocol suite for the LINUX
   3 *              operating system.  INET is implemented using the  BSD Socket
   4 *              interface as the means of communication with the user level.
   5 *
   6 *              IPv4 Forwarding Information Base: semantics.
   7 *
   8 * Authors:     Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
   9 *
  10 *              This program is free software; you can redistribute it and/or
  11 *              modify it under the terms of the GNU General Public License
  12 *              as published by the Free Software Foundation; either version
  13 *              2 of the License, or (at your option) any later version.
  14 */
  15
  16#include <asm/uaccess.h>
  17#include <linux/bitops.h>
  18#include <linux/types.h>
  19#include <linux/kernel.h>
  20#include <linux/jiffies.h>
  21#include <linux/mm.h>
  22#include <linux/string.h>
  23#include <linux/socket.h>
  24#include <linux/sockios.h>
  25#include <linux/errno.h>
  26#include <linux/in.h>
  27#include <linux/inet.h>
  28#include <linux/inetdevice.h>
  29#include <linux/netdevice.h>
  30#include <linux/if_arp.h>
  31#include <linux/proc_fs.h>
  32#include <linux/skbuff.h>
  33#include <linux/init.h>
  34#include <linux/slab.h>
  35
  36#include <net/arp.h>
  37#include <net/ip.h>
  38#include <net/protocol.h>
  39#include <net/route.h>
  40#include <net/tcp.h>
  41#include <net/sock.h>
  42#include <net/ip_fib.h>
  43#include <net/netlink.h>
  44#include <net/nexthop.h>
  45
  46#include "fib_lookup.h"
  47
  48static DEFINE_SPINLOCK(fib_info_lock);
  49static struct hlist_head *fib_info_hash;
  50static struct hlist_head *fib_info_laddrhash;
  51static unsigned int fib_info_hash_size;
  52static unsigned int fib_info_cnt;
  53
  54#define DEVINDEX_HASHBITS 8
  55#define DEVINDEX_HASHSIZE (1U << DEVINDEX_HASHBITS)
  56static struct hlist_head fib_info_devhash[DEVINDEX_HASHSIZE];
  57
  58#ifdef CONFIG_IP_ROUTE_MULTIPATH
  59
  60static DEFINE_SPINLOCK(fib_multipath_lock);
  61
  62#define for_nexthops(fi) {                                              \
  63        int nhsel; const struct fib_nh *nh;                             \
  64        for (nhsel = 0, nh = (fi)->fib_nh;                              \
  65             nhsel < (fi)->fib_nhs;                                     \
  66             nh++, nhsel++)
  67
  68#define change_nexthops(fi) {                                           \
  69        int nhsel; struct fib_nh *nexthop_nh;                           \
  70        for (nhsel = 0, nexthop_nh = (struct fib_nh *)((fi)->fib_nh);   \
  71             nhsel < (fi)->fib_nhs;                                     \
  72             nexthop_nh++, nhsel++)
  73
  74#else /* CONFIG_IP_ROUTE_MULTIPATH */
  75
  76/* Hope, that gcc will optimize it to get rid of dummy loop */
  77
  78#define for_nexthops(fi) {                                              \
  79        int nhsel; const struct fib_nh *nh = (fi)->fib_nh;              \
  80        for (nhsel = 0; nhsel < 1; nhsel++)
  81
  82#define change_nexthops(fi) {                                           \
  83        int nhsel;                                                      \
  84        struct fib_nh *nexthop_nh = (struct fib_nh *)((fi)->fib_nh);    \
  85        for (nhsel = 0; nhsel < 1; nhsel++)
  86
  87#endif /* CONFIG_IP_ROUTE_MULTIPATH */
  88
  89#define endfor_nexthops(fi) }
  90
  91
  92const struct fib_prop fib_props[RTN_MAX + 1] = {
  93        [RTN_UNSPEC] = {
  94                .error  = 0,
  95                .scope  = RT_SCOPE_NOWHERE,
  96        },
  97        [RTN_UNICAST] = {
  98                .error  = 0,
  99                .scope  = RT_SCOPE_UNIVERSE,
 100        },
 101        [RTN_LOCAL] = {
 102                .error  = 0,
 103                .scope  = RT_SCOPE_HOST,
 104        },
 105        [RTN_BROADCAST] = {
 106                .error  = 0,
 107                .scope  = RT_SCOPE_LINK,
 108        },
 109        [RTN_ANYCAST] = {
 110                .error  = 0,
 111                .scope  = RT_SCOPE_LINK,
 112        },
 113        [RTN_MULTICAST] = {
 114                .error  = 0,
 115                .scope  = RT_SCOPE_UNIVERSE,
 116        },
 117        [RTN_BLACKHOLE] = {
 118                .error  = -EINVAL,
 119                .scope  = RT_SCOPE_UNIVERSE,
 120        },
 121        [RTN_UNREACHABLE] = {
 122                .error  = -EHOSTUNREACH,
 123                .scope  = RT_SCOPE_UNIVERSE,
 124        },
 125        [RTN_PROHIBIT] = {
 126                .error  = -EACCES,
 127                .scope  = RT_SCOPE_UNIVERSE,
 128        },
 129        [RTN_THROW] = {
 130                .error  = -EAGAIN,
 131                .scope  = RT_SCOPE_UNIVERSE,
 132        },
 133        [RTN_NAT] = {
 134                .error  = -EINVAL,
 135                .scope  = RT_SCOPE_NOWHERE,
 136        },
 137        [RTN_XRESOLVE] = {
 138                .error  = -EINVAL,
 139                .scope  = RT_SCOPE_NOWHERE,
 140        },
 141};
 142
 143static void rt_fibinfo_free(struct rtable __rcu **rtp)
 144{
 145        struct rtable *rt = rcu_dereference_protected(*rtp, 1);
 146
 147        if (!s.c#L21" id="L21" class="line" name="L7 href="+code=error" class="sref">error19" class="line;rtp)
  60static hlist_head1 15e" name="L141v4/fib_semantics.c#L88" iNot even needed : RCU_INIT_POINTER(*nam, NULL)">   9 *
f15GNU General Public License   9 *
fi1b_inf15 Foundation; either version   9 *
  15
DEVINDEX_1HASHB1TS5
DEVINDEX_1HASHS15"+code=rt" clr19" class="lindst"sref">rtable hlist_head1 1a href90
  58#ifdef CO1NFIG_158(struct  + 1] = {
__rcua href="+code=fi" class="sref">fi)-> **  6> 145        struct DEFINE_SPINL1OCKrt = fi)->DEVINDEX>];
(* + 1] = {
for_nexthops( 143static void nhsel; const 1struc1 nhselnhsass="line" name=ircu"sa href="net/ipv4/fibFNHE name_#L57" id="L57" clasFNHE name_#L57rcu"sclass="sref">nhsass="line" name=ircu"++)"> 138                .nhsel = 0, <1a hre16ef="+code=EINVAL" claclass="sref">__rcua href_exceL14" ="+code=fi" class="sr_exceL14" ef">fi)->nhsel < (1  16#include <(*rtp, 1);
DEVINDEX>];
 146
fib_nh; nhe="+code=fi" clasnhercu")"> 138                .change_next1hops<16ntics.c#L144" ifib_seVAL" claclass="sref">__rcua href_exceL14" ="+code=fi" class="sr_exceL14" ef">fi)->nhsel; struct1 nhsel = 0, <1a hre17ef="+code=EAGAIN" clasref" clr19" class="linn  (*rtp, 1);
 146
nhsel < (1  92const struct nexthop_nh<1/a>++1 rtable   74#else /* 1CONFIG_IP1_ROUTE_MULTIPATH */
rtable fib_nh; nhe="+code=fi" clasnhercu")s.c#L144" ifib_semantics.c#L14, 1);
  76/* Hope, 1that gcc 1will optimize it to get 1rid o17hsel" class="sref" clsref" clr19" class="linsnhe="+code=fi" clasnhercu"otected(*
for_nexthops(
nhsel; const 1struc1 rtable fib_nh;ass="sref">DEVINDEX>];
nhsel = 0; <1a hre1="+cod"0
  82#define change_next1hops<18cnt;
__rcu **rtp)
rtp)
 144{
nhsel;       1     1      > 138                .fib_nh *<1a hre1="+code=nextho                   cpu="net/ipv4/fib_cpue_prs.c#L144" ifib_semantics.c#L14, 1);
nhsel = 0; <1a hre18">  76/* Hope, 1s.c#L87" 1id="L87" class="line" na1me="L18hsel" class=">error19" class="line;lass="line" name="L144"> 144{

<18f="+code=RT_SCOPE_UNImantics.c#L144" ifib_semantics.c#L14, 1);
  89#define endfor_next1hops<18fib_nh;cpu="net/ipv4/fib_cpue_pr)"> 138                .rt = rcu_dereference_pr19#include <  92const struct fib_prop 1rcu_dereference_protected(*rtp, 1);
fib_nh;146" class="line" name="L14ef">fib_nh;cpu="net/ipv4/fib_cpue_pr)146"> 146
RTN_UNSPEC]1 = {
19f="+code=RT_SCOPE_UNI>errr19" class="line;error  =1 0,
<1 href="net/ipv4/fib_see=nhsclaected" class="sdst"sref">rtable scope  =1 
 ref="+code=rtabe=__rpercpu="net/ipv4/fib_e=__rpercpurcu" ef">fib_nh;146" class="line" name="Lrs.c#L144" ifib_semantics.c#L14, 1);
RTN_UNICAST] = 1

error  =1 0,
<19">  89#define scope  =1   15
__rcu fib_info_devhas ef">fi)->fib_info_devhashf">ef">reScu **RTN_LOCAL] 2 {
 138                .error  2 0,
<2 href="net/ipvclass="sref">__rcua hrHSIZ="+code=fi" class="HSIZef">fi)->otected(*err_of="net/ipv4/fib_conta>err_ofrcu" ef">fib_nh;af">fib_info_devhashf">ef">,vclass="sref">__rcua hrHSIZ="+code=fi" class="HSIZef">14ef">fib_nh;
scope  2   74#else /* 2fib_seman2ics.c#L105" id="L105" cl2ss="l2ne" name="L105ERE" class="srechaf">fi) {                                           \
/* 2f5b_seman2iass="sref">scope  =2T2 = {
fib_nh *)((reScu **error  2 0,
<2 href="net/ipv4/fib_see=nhsclaected" class="sdev_pu;fib_nh *)((rs.c#L144" ifib_semantics.c#L14, 1);
<2dnux/inet.class="sref">scope  2 fib_nh *)(( + 1] = {
 ** + 1] = {
fib_nh *)((RTN_ANYCAST] = 20f="+code=RT_SCOPE_NOWref="+code=rtable" class="sref_cpua> + 1] = {
fib_nh *)((error  2 0,
<2 href="net/ipv4/fib_ser19" class="linle" class="sref">rtable fib_nh *)((linux/mm.h<{
fi) }
 s.c#L144" ifib_semantics.c#L14, 1);
<2de=error"2ics.c#L113" id="L113" cl2ss="l21143"> 143static void RTN_MULTICA2T2 = {
/fib_semantics.c#L85" id=me="+code=fi" clas id=me90"> s.c#L144" ifib_semantics.c#L14, 1);
<2dib_seman2class="sref">error  2 0,
<2 href="net/ipv>errr19" class="linlass="line" name="L90">/fib_semantics.c#L85" idmetr, 1="+code=fi" clas idmetr, 1ref="!"sref">fib_nh;uics.c#L133"i" claune" nam*)aected" class="sdst"defaultdmetr, 1="+code=fi" cladst"defaultdmetr, 1rcu"reScu **scope  2 rtable fib_nh; ass="line" name="L90">/fib_semantics.c#L85" idmetr, 1="+code=fi" clas idmetr, 1ref= s.c#L144" ifib_semantics.c#L14, 1);
<2dnux/in.h"ics.c#L117" id="L117" cl2ss="l21 name="L97"> ref="+code=rtabksref">rtable fib_nh; ass="line" name="L90"> s.c#L144" ifib_semantics.c#L14, 1);
<2dnux/inet.class="sref">RTN_BLACKHO2E21
error  2 -  89#define scope  2 __rcua hrHSIZ="+code=fi" class="HSIZef">fi)->reScu **#else /* 2NREACHABL2" class="sref">RTN_UNREA2HABLE2/a>] = {
errr19" class="linlass="line" name="L90">/fib_semantics.c#L85" iddf">fib_info_devhas" iddf">90">ot= 0ics4#else /* 2de=error"2class="sref">error  2 -  4F=__ing alive ss="HSIZ %p\n href="5">  114ef">fib_nh; ass="line" name="L90"> s.c#L144" ifib_semantics.c#L14, 1);
<2de=scope"2class="sref">scope  2 RTN_PROHIBIT2/a>] 2 {
__rcua hrHSIZid="L53" class="line" name="L53">  --s.c#L144" ifib_semantics.c#L14, 1);
<2fnux/in.h"class="sref">error  2 -&qMULTIPATH
  89#define scope  2 fi) {                                           \
/* 2fib_seman2ics.c#L129" id="L129" cl2ss="l22ntics.c#L144" ifib_se>errr19" class="linss="sref">fib_nh *)((reScu **RTN_THROW] 2 {
/fib_semantics.c#L85" id=me="+code=fi" clas id=me90">/fib_semantics.c#L85href="+code=fi" clahref90">HERE" class="sres id=um_tb_nh_usernet/ipv4/fib_semanticum_tb_nh_usern">  --s.c#L144" ifib_semantics.c#L14, 1);
<2de=error"2class="sref">error  2 -fi) }
 s.c#L144" ifib_semantics.c#L14, 1);
<2de=scope"2class="sref">scope  2 /fib_semantics.c#L85
fib_nh; =__ref=SHSIZE
RTN_NAT] = {
2a hre2="net/".c#L144" ifib_semantics.c#L14, 1);
<2de=error"2class="sref">error  2 -5
scope  2 __rcua hrHSIZ="+code=fi" class="HSIZef">fi)->reScu **#else /* 2RESOLVE" 2lass="sref">RTN_XRESOLVE2/a>] 23f="+code=RT_SERE" class="srespine="L6_b>fib_nh *)((spine="L6_b>rcu" &_semantics.c#L85la"line" n#L61" id="L61" class="ine" n#L6rcu" s.c#L144" ifib_semantics.c#L14, 1);
<2dib_seman2class="sref">error  2 - &_&_ -tics.c#L139" id=lass="line" name="L90">/fib_semantics.c#L85" idt=__name" id="L61" class="t=__nam90">ot= 0ics4#else /* 2de=scope"2class="sref">scope  2 fib_nh;a[d" class="line" naa[d" rcu" &_semantics.c#L85lass="line" name="L90">/fib_semantics.c#L85ass=ass="sref">DEVINDEX_HAS>];
errr19" class="linlass="line" name="L90">/fib_semantics.c#L85" idpntisrc"sref">DEVINDEX_HASpntisrc90">reScu **fib_nh;a[d" class="line" naa[d" rcu" &_semantics.c#L85lass="line" name="L90">/fib_semantics.c#L85ass=lass="sref">DEVINDEX_HASl>];
fi) {                                           \
/* 2_fibinfo_2ree" class="sref">rt_fib2nfo_f24f="+code=RT_SCOPE_UNI4/fib_se>error19" class="linss="sref">fib_nh *)((reScu **rtable *2a hre24f="+code=RT_SCOPE_UNICOPE_NOWef">fib_nh;a[d" class="line" naa[d" rcu" &_semantics.c#L85ss="sref">fib_nh *)((DEVINDEXnh_ass=fi) }
 .c#L144" ifib_semantics.c#L14, 1);
<2fESOLVE" 2ine" name="L7 href="+cod2=erro24f="+code=RT_SCOPE_LINr19" class="linlass="line" name="L90">/fib_semantics.c#L85" iddf">fib_info_devhas" iddf">90">ot 1s.c#L144" ifib_semantics.c#L14, 1);
<2fib_seman2)
 s.c#L144" ifib_semantics.c#L14, 1);
<2 href="ne2/ipv4/fib_semantics.ipvm2 24f="+code=RT_S".c#L144" ifib_semantics.c#L14, 1);
<2ist_head"2 class="sref">hlist_head2 25e" name="L141vRE" class="srespineun="L6_b>fib_nh *)((spineun="L6_b>rcu" &_semantics.c#L85la"line" n#L61" id="L61" class="ine" n#L6rcu" s.c#L144" ifib_semantics.c#L14, 1);
<2ode=fib_i2nfo_hash_size" class="sr2ef">f25GNU G".c#L144" ifib_semantics.c#L14, 1);
<2ie=error"2nfo_cnt" class="sref">fi2b_inf25143"> 143static void fib_pHSIZ="+code=fi" class="HSIZef">fi)->,=nh" class="sref">nh = (fi)-> .c#L144" ifib_semantics.c#L14, 1);
<2.ics.c#L12" class="sref">DEVINDEX_2HASHB25L145"> 145        struct DEVINDEX_2HASHS25"+code=rt" clnh" class="sref">nh = (fi)->(*"net/ipv4/fib_semantics.c#L80" id="L80" class="line" 145        struct hlist_head2 25147"> 147        if (!s.c#L21" id="L22s.c#L58" 2id="L58" class="line" na2me="L25f="+code=RT_SERE" class="srefi) {                                              \
CO2NFIG_25ntics.c#L144" ifib_se>errr19" class="linsf="+code=fib_nh" class/fib_semantics.c#L85nh_oime" id="L61" clanh_oimref="!"s)->)->DEFINE_SPINL2OCKRT_SCOPE_NOWHERERTref="!"s)->RT_SCOPE_NOWHERERTref="|| 147        if (!s.c#L21" id="L22Ide=fib_i2id="L62" class="line" na2me="L26f="+c&qMULTIPATH
 147        if (!s.c#L21" id="L22scs.c#L142ss="sref">for_nexthops()->        if (!s.c#L21" id="L22Ifibinfo_2"sref">nhsel; const 2struc2 nhsel = 0, <2a hre26ef="+&qMULTIPATH
  89#define nhsel < (2fib_info_devhasnh_tb_nh90">"!"s)->fib_info_devhasnh_tb_nh90">"|| 147        if (!s.c#L21" id="L22Iib_seman2aalpha/uaccess.h|include2a/a> 2nhsel""net/i.c#L144" ifib_semantics.c#L14, 1);
<2e.c#L58" 2id="L68" class="line" na2me="L26f="+code=RT_SCOPE_UNIIIIIsref">fib_nh)sf="+code=fib_nh" class/fib_semantics.c#L85nh_flaga> + 1] = {
 + 1] = {
change_next2hops<26ntics.c#L144" ifib_seVAL" clamantic -1s.c#L144" ifib_semantics.c#L14, 1);
<2s.c#L60" 2"sref">nhsel; struct2 nhsel = 0, <2a hre27ef="+code=EAG}code=fi" class="sref">fi) }
 s.c#L144" ifib_semantics.c#L14, 1);
<2el" class2="sref">nhsel < (2nexthop_nh<2/a>++2   74#else /* 2CONFIG_IP2_ROUTE_MULTIPATH */
 .c#L144" ifib_semantics.c#L14, 1);
<2srtable" 2id="L76" class="line" na2me="L26">  7t 147        if (!s.c#L21" id="L22that gcc 2will optimize it to get 2rid o27hsel" class="unsignedm                   mas61" id="L61" clamas6(*  58#ifdef for_nexthops( ^8#ifdef nhsel; const 2struc27f="+code=RT_SCOPE_NOW#L90" id="L90" cva class="line" nava 90"> fib_fib_ected(*nhsel = 0; <2a hre28ef="+code=EAGAIN" cla#L90" id="L90" cva class="line" nava 90"> fib_fib_e#L90" id="L90" cDEVINDEX nameBIT" class="line" nDEVINDEX nameBIT"="+c * 2))) &_                mas61" id="L61" clamas6change_next2hops<28143"> 143static void nhsel;       2     28e(structsemantics.c#L85hnass="l+code=fi" clahnass=" namunsignedm                   " idine" ass=f ="+code=fi" class="ine" ass=f rcu" de=fib_props" class="sref">fib_pHSIZ="+code=fi" class="HSIZef">fi)-> .c#L144" ifib_semantics.c#L14, 1);
<2ib_nh" cl2ass="sref">fib_nh *<2a hre28L145"> 145        struct nhsel = 0; <2a hre285sel" class="unsignedm                   mas61" id="L61" clamas6 tected(*/fib_semantics.c#L85" id=hnet/ipv4/fib_semanticharcu"s.c#L144" ifib_semantics.c#L14, 1);
<2l.c#L78" 2P_ROUTE_MULTIPATH */
<28">  58#ifdef  ^te#L90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idv4/foco class="line" na" idv4/foco 90"> flb_f hre8) |ected(*/fib_semantics.c#L85" idf">RT_SCOPE_NOWHERE<" idf">RTrcu"s.c#L144" ifib_semantics.c#L14, 1);
<2l.c#L60" 2class="sref">endfor_next2hops<28 ^te#L90" id="L90" c__/ficT_SCOPE_NOWHERE<__/ficT90"> L90" id="L90" cuics.c#L133"i" claune" na)L90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idv4tisrc"sref">DEVINDEX_HASpntisrc90">s.c#L144" ifib_semantics.c#L14, 1);
<2s.c#L91" 2id="L91" class="line" na2me="L29e" name="L141vRE" class="sreva class="line" nava 90"> ^teL90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idv4iority"sref">DEVINDEX_HASpniority90">s.c#L144" ifib_semantics.c#L14, 1);
<2s.c#L82" 2id="L92" class="line" na2me="L291" name="L141vRE" class="srefi) {                                              \
fib_prop 2 ^teL90" id="L90" claiddfvindex_ass=f ="+code=fi" class="dfvindex_ass=f cs.c#r19" class="linsf="+code=fib_nh" class/fib_semantics.c#L85nh_oime" id="L61" clanh_oimref= s.c#L144" ifib_semantics.c#L14, 1);
<2PEC" clas2s="sref">RTN_UNSPEC]2 = {
29f="+code=RT_S}code=fi" class="sref">fi) }
 .c#L144" ifib_semantics.c#L14, 1);
<2=error" c2lass="sref">error  =2 0,
<29S5
scope  =2  ^a#L90" id="L90" cva class="line" nava 90"> fib_fib_e7) ^a#L90" id="L90" cva class="line" nava 90"> fib_fib_e12)) &_                mas61" id="L61" clamas6RTN_UNICAST] = 29">  58#ifdef error  =2 0,
<298(struct_props" class="sref">fib_pHSIZ="+code=fi" class="HSIZef">fi)->fib_pHSIZ="+code=fi" class="HSIZef">fi)-> .c#L144" ifib_semantics.c#L14, 1);
<2=.c#L60" 2lass="sref">scope  =2   6> 145        struct rt = [af">fib_info_devhash[af">ef">fi)->fib_info_devhashf">ef">s.c#L144" ifib_semantics.c#L14, 1);
<3OCAL" cla3s="sref">RTN_LOCAL] 3 {
rt = [n= [n= fi)->s.c#L144" ifib_semantics.c#L14, 1);
<3O2AL" cla3sss="sref">fib_prop 3 0,
<3 href="net/ipvclass="sref">__rcua hrHSIZ="+code=fi" class="HSIZef">fi)->s.c#L144" ifib_semantics.c#L14, 1);
<3O3AL" cla3s="sref">RTN_UNSPEC]3 DEVINDEX>];
error  =3ss="l30S5
scope  =3T30{
__rcuass="sref">DEVINDEX>];
(*)-> s.c#L144" ifib_semantics.c#L14, 1);
<3O6b_seman3is.c#L97" id="L97" class3 0,
<30 name="L97"> ref="+code=rtabaf">fib_info_devhashf">ef">ote&_semantics.c#L85la"line" ass="sref">DEVINDEX_HASine" ass=ef">t/ipv4/fib_semanass="sref">DEVINDEX>];
RTN_UNICAST  58#ifdef [sfibeach_entry"sref">DEVINDEXh[sfibeach_entrycs.c#L90" id="L90" class="line" name="L90">14ef">fib_nh;n= 14ef">fib_nh;af">fib_info_devhashf">ef">,vsemantics.c#L85la"lass="sref">DEVINDEX_HAS>];
        if (!s.c#L21" id="L23dnux/netd3ass="sref">RTN_ANYCAST] = 30f="+code=RT_SCOPE_NOW>error19" class="linsst_eqfib_info_devhasnst_eqcs.c#L90" id="L90" class="line" name="L90">/fib_semantics.c#L85" id=me="+code=fi" clas id=me90">14ef">fib_nh;nlass="line" name=n"L90">/fib_semantics.c#L85" id=me="+code=fi" clas id=me90">  .c#L144" ifib_semantics.c#L14, 1);
<3de=error"3class="sref">error  3 0,
<3 href="net/ipv4/fib_seeeeeeeeecontinues.c#L144" ifib_semantics.c#L14, 1);
<3dnux/mm.h3  class="fref">linux/mm.3<{
errr19" class="linlass="line" name="L90">/fib_semantics.c#L85" id=hnet/ipv4/fib_semanticharcu""!"s)->/fib_semantics.c#L85" id=hnet/ipv4/fib_semanticharcu" .c#L144" ifib_semantics.c#L14, 1);
<3d2AL" cla3ics.c#L113" id="L113" cl3ss="l31RTN_MULTICA3T31f="+code=RT_SCOPE_UNI>errr19" class="linslass="line" name=n"L90">/fib_semantics.c#L85" idv4/foco class="line" na" idv4/foco 90"> =teL90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idv4/foco class="line" na" idv4/foco 90"> famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3d4AL" cla3class="sref">error  3 0,
<31href="net/ipv4/fib_see=nhr19" class="linslass="line" name=n"L90">/fib_semantics.c#L85" idf">RT_SCOPE_NOWHERE<" idf">RTrcu" =teL90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idf">RT_SCOPE_NOWHERE<" idf">RTrcu" famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3d5b_seman3class="sref">scope  3 /fib_semantics.c#L85" idv4tisrc"sref">DEVINDEX_HASpntisrc90"> =teL90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idv4tisrc"sref">DEVINDEX_HASpntisrc90"> famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3d6b_seman3ics.c#L117" id="L117" cl3ss="l31href="net/ipv4/fib_see=nhr19" class="linslass="line" name=n"L90">/fib_semantics.c#L85" idv4iority"sref">DEVINDEX_HASpniority90"> =teL90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idv4iority"sref">DEVINDEX_HASpniority90"> famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3d7b_seman3class="sref">RTN_BLACKHO3E31f="+code=RT_SCOPE_UNIIIIIr19" class="linslass="line" name=n"L90">/fib_semantics.c#L85" idtyRT_SCOPE_NOWHERE<" idtyRT90"> =teL90" id="L90" class="line" name="L90">/fib_semantics.c#L85" idtyRT_SCOPE_NOWHERE<" idtyRT90"> famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3dnux/inet3class="sref">error  3 -)->/fib_semantics.c#L85" idmetr, 1="+code=fi" clas idmetr, 1ref=14ef">fib_nh; ass="line" name="L90">/fib_semantics.c#L85" idmetr, 1="+code=fi" clas idmetr, 1ref=1.c#L144" ifib_semantics.c#L14, 1);
<3dnux/netd3class="sref">scope  3 fib_nh;uics.c#L133"i" claune" na).cref">rtp)
fib_nh)slass="line" name=n"L90">/fib_semantics.c#L85" idflaga> + 1] = {
 ^aef">fib_nh; ass="line" name="L90">/fib_semantics.c#L85" idflaga> + 1] = {
) &_ ~semantics.c#L85RTNH_F_DEADL53" class="linRTNH_F_DEAD="+c).t= 0 famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3fnux/mm.h3" class="sref">RTN_UNREA3HABLE32f="+code=RT_SCOPE_UNICOPEref">fib_nh)slass="line" name=n"L90">/fib_semantics.c#L85" id=hnet/ipv4/fib_semanticharcu""t= 0 ||ected(*14ef">fib_nh;nlass="line" name=n"L90"> ot= 0i .c#L144" ifib_semantics.c#L14, 1);
<3de=error"3class="sref">error  3 -s.c#L144" ifib_semantics.c#L14, 1);
<3de=scope"3class="sref">scope  3 RTN_PROHIBIT3/a>] 32f="+code=RT_Smantic )->s.c#L144" ifib_semantics.c#L14, 1);
<3d6b_seman3class="sref">error  3 -
scope  3   58#ifdef   15
RTN_THROW] 3 {
  15
error  3 -  15
scope  3 __rcunst_dfvicT_SCOPE_NOWHEREfi)-> + 1] = {
reScu **        if (!s.c#L21" id="L23de=scope"3"sref">RTN_NAT] = {
3a hre33f="+code=RT_Sass="sref">rt = [af">fib_info_devhash[af">ef">fi)->fib_info_devhashf">ef">s.c#L144" ifib_semantics.c#L14, 1);
<3de=error"3class="sref">error  3 -rt = [n= [n= fi)->s.c#L144" ifib_semantics.c#L14, 1);
<3de=scope"3class="sref">scope  3 rt = fi)->DEVINDEX>];
RTN_XRESOLVE3/a>] 33">  58#ifdef error  3 -DEVINDEXspine="L6rcu" &_semantics.c#L85la"line" n#L61" id="L61" class="ine" n#L6rcu" s.c#L144" ifib_semantics.c#L14, 1);
<3de=scope"3class="sref">scope  3 DEVINDEX>];
(*/fib_semantics.c#L85hfindexss="line" name=afindexrcu" s.c#L144" ifib_semantics.c#L14, 1);
<3ntics.c#L342" id="L142" class="lin3" nam341" name="L141vRE" class="sreaf">fib_info_devhashf">ef">ote&_semantics.c#L85la"line" devass="sref">DEVINDEX_HASine" devass=ef">t/ipv4/fib_semanass="sref">DEVINDEX>];
DEVINDEXh[sfibeach_entrycs.c#L90" id="L90" cnf="+code=fib_nh" class14ef">fib_nh;n= 14ef">fib_nh;af">fib_info_devhashf">ef">,vsemantics.c#L85nh_ass="sref">DEVINDEXnh_ass=        if (!s.c#L21" id="L23_fibinfo_3ree" class="sref">rt_fib3nfo_f34f="+code=RT_SCOPE_UNI>errr19" class="linsf="+code=fib_nh" class/fib_semantics.c#L85nh_dev> + 1] = {
 =teL90" id="L90" cdev> + 1] = {
 famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3tics.c#L135" id="L145" class="line3 name34href="net/ipv4/fib_see=nhr19" class="linsf="+code=fib_nh" class/fib_semantics.c#L85nh_gwe" id="L61" clanh_gw="+co=teL90" id="L90" cgwe" id="L61" clagw="+c famp_&_.c#L144" ifib_semantics.c#L14, 1);
<3te=scope"3lass="sref">rtable *3a hre34f="+code=RT_SCOPE_UNICOPE!ref">fib_nh)sf="+code=fib_nh" class/fib_semantics.c#L85nh_flaga> + 1] = {
        if (!s.c#L21" id="L23_6b_seman3" id="L147" class="line"3name=34href="net/ipv4/fib_seme="L129L90" id="L90" cspineun="L6"sref">DEVINDEXspineun="L6rcu" &_semantics.c#L85la"line" n#L61" id="L61" class="ine" n#L6rcu" s.c#L144" ifib_semantics.c#L14, 1);
<3fESOLVE" 3ine" name="L7 href="+cod3=erro34f="+code=RT_SCOPE_LINNNNNNNNNmantic 0s.c#L144" ifib_semantics.c#L14, 1);
<3fib_seman3)

 34f="+code=RT_S".c#L144" ifib_semantics.c#L14, 1);
<3ist_head"3 class="sref">hlist_head3 35e" na.c#L144" ifib_semantics.c#L14, 1);
<3itics.c#L3nfo_hash_size" class="sr3ef">f351" name="L141vRE" class="srespineun="L6"sref">DEVINDEXspineun="L6rcu" &_semantics.c#L85la"line" n#L61" id="L61" class="ine" n#L6rcu" s.c#L144" ifib_semantics.c#L14, 1);
<3ie=error"3nfo_cnt" class="sref">fi3b_inf35143"> 143static void DEVINDEX_3HASHB35L145"".c#L144" ifib_semantics.c#L14, 1);
<3ie=scope"3" class="sref">DEVINDEX_3HASHS35"+cod.c#L144" ifib_semantics.c#L14, 1);
<3i6b_seman3 class="sref">hlist_head3 35147">(structsemantics.c#L85hnass="l+code=fi" clahnass=" namvRE" class="sresize_tss="line" name=size_t" namvRE" class="sreanticlmsg_siz="l+code=fi" clala="clmsg_siz=rcu" _props" class="sref">fib_pHSIZ="+code=fi" class="HSIZef">fi)-> .c#L144" ifib_semantics.c#L14, 1);
<3s.c#L58" 3id="L58" class="line" na3me="L35f="+ct 147        if (!s.c#L21" id="L23sib_seman3LTIPATH" class="sref">CO3NFIG_35e" name="L129L90" id="L90" csize_tss="line" name=size_t" namvRE" class="srepaylo">fib_info_devhaspaylo">(*__rcu tmsgss="line" name= tmsg="+c)  147        if (!s.c#L21" id="L23shref="ne3id="L60" class="line" na3me="L35f="+code=RT_SCOPE_NOWWWWWWWWWW+hr19" class="linsla_total_siz="l+code=fi" clasla_total_siz=rcu" 4) 10" class="line" name=/* RTA_TABLE.cL15">  15
DEFINE_SPINL3OCK  15
  15
for_nexthops(  15
nhsel; const 3struc36">  74#else /* 3el" class3="sref">nhsel = 0, <3a hre36e" name="L105E0" class="line" name=/* 0" ce sfi nested metr, 1.cL15">  15
nhsel < (3__rcupaylo">fib_info_devhaspaylo">)->fib_nh)RTAX_MAXs.c#L133"i" claRTAX_MAX" na.cref">rtp)
 36147"> 147        if (!s.c#L21" id="L23e.c#L58" 3id="L68" class="line" na3me="L36f="+code=RT_S>errr19" class="linlass="line" name="L90">/fib_semantics.c#L85" id=hnet/ipv4/fib_semanticharcu" nt 147        if (!s.c#L21" id="L23eROUTE_MU3class="sref">change_next3hops<36ntics.c#L144" ifib_seE0" class="line" name=/* Also handles the special case ss="chao=te1.cL15">  15
nhsel; struct3 nhsel = 0, <3a hre37href="net/ipv4/fib_ser0" class="line" name=/* each _semant is " ckedm    clattr,bute.cL15">  15
nhsel < (3)->__rcu t_semantss="line" name= t_semant="+c) s.c#L144" ifib_semantics.c#L14, 1);
<3ecs.c#L143class="sref">nexthop_nh<3/a>++37143"> 143static void   15

rtp)
  15
fib_info_devhaspaylo">)->/fib_semantics.c#L85" id=hnet/ipv4/fib_semanticharcu".cref">rtp)
for_nexthops(nhsel; const 3struc37f="+c.c#L144" ifib_semantics.c#L14, 1);
<3el" class3="sref">nhsel = 0; <3a hre38ef="+code=EAGmantic )->fib_info_devhaspaylo">change_next3hops<38143"> 143static void nhsel;       3     38e ,vsemantics.c#L85__beics.c#L133"i" cla__beic="+coL90" id="L90" ckey"sref">DEVINDEXkey="+c,vclass="sref">__rcu fi)->fib_nh *<3a hre38href="net/ipv4/fib_s                   dst"le ="+code=fi" cladst"le ef">,vsemantics.c#L85uics.c#L133"i" claune" namsemantics.c#L85tb_i>fib_info_devhastb_i>="+c,vclass="sref">__rcunlpHSIZ="+code=fi" clanlpHSIZef">fi)->, 143static void nhsel = 0; <3a hre38f="+code=RT_SCOPE_UNunsignedm                   nlm_flaga> + 1] = {
 .c#L144" ifib_semantics.c#L14, 1);
<3s.c#L87" 3id="L87" class="line" na3me="L38e" nas4#else /* 3l.c#L78" 3P_ROUTE_MULTIPATH */
<38f="+code=RT_Sclass="sref">__rcusk_bufme" id="L61" clask_bufmef">fi)->)->/fib_semantics.c#L85nlf="+code=fib_nh" l
)->/fib_semantics.c#L85nlf="+code=fib_nh" l
endfor_next3hops<38)->)->),vsemantics.c#L85GFP_KERNELss="line" name=GFP_KERNELfib_prop 3(* .c#L144" ifib_semantics.c#L14, 1);
<3PEC" clas3s="sref">RTN_UNSPEC]3 = {
39f="+code=RT_SCOPE_UNIgoto                errou;error  =3 0,
<39S5
scope  =3 __rcuerrL53" class="linerrcs.co"sr19" class="linlatidumppHSIZ="+code=fi" class="dumppHSIZrcu" )->/fib_semantics.c#L85porti>fib_info_devhasporti>,vsemantics.c#L85tb_i>fib_info_devhastb_i>="+c,5
__rcusaet/ipv4/fib_semaa="+c/fib_semantics.c#L85"aptyRT_SCOPE_NOWHERE<"adtyRT90">,vsemantics.c#L85key"sref">DEVINDEXkey="+c,v               dst"le ="+code=fi" cladst"le ef">,5
RTN_UNICAST] = 39f="+code=RT_SCOPE_LINNNNNNNNN="nesref">__rcusaet/ipv4/fib_semaa="+c/fib_semantics.c#L85"aptonet/ipv4/fib_semaapton="+c,v               saet/ipv4/fib_semaa="+c/fib_semantics.c#L85"apHSIZ="+code=fi" clasapHSIZef">,vsemantics.c#L85nlm_flaga> + 1] = {
 s.c#L144" ifib_semantics.c#L14, 1);
<3sROUTE_MU3lass="sref">error  =3 0,
<39ef="+code=EIN>errr19" class="linerrL53" class="linerrcs.cof hre0ics4#else /* 3=.c#L60" 3lass="sref">scope  =3   15
)-> s.c#L144" ifib_semantics.c#L14, 1);
<4OCAL" cla4s="sref">RTN_LOCAL] 4 {
)->fib_prop 4 0,
<40RTN_UNSPEC]4 error  =4ss="l40e" name="L105Eref">__rcu t_l_notify"sref">DEVINDEX t_l_notifyrcu" )->/fib_semantics.c#L85_l_nme="+code=fi" cla_l_nme/fib_semantics.c#L85porti>fib_info_devhasporti>,5
scope  =4T40f="+code=RT_SCOPE_UNICOPE)->/fib_semantics.c#L85nlf="+code=fib_nh" l
 mantics.c#L144" ifib_semantics.c#L14, 1);
<4O7b_seman4is="sref">RTN_UNICAST  5               errou;error  =4ss="l40ef="+code=EIN>errr19" class="linerrL53" class="linerrcs.cof hre0i.c#L144" ifib_semantics.c#L14, 1);
<4O9b_seman4iass="sref">scope  =4>] = 40f="+code=RT_SCOPE_NOWEref">__rcu t_l_set_sk_errL53" class="lin t_l_set_sk_errrcu" )->/fib_semantics.c#L85_l_nme="+code=fi" cla_l_nme,esref">__rcuerrL53" class="linerrcs.c)s.c#L144" ifib_semantics.c#L14, 1);
<4de=error"4class="sref">error  4 0,
<4 href=90
linux/mm.4<{

  15
RTN_MULTICA4T41f="+c10" class="line" name=.crpniority less th clor equal to PRIO.15">  15
error  4 0,
<41href=10" class="line" name=.cL15">  15
scope  4 __rcu fi)->__rcu[af">fib_info_devhas[af">ef">fi)->DEVINDEX_a
DEVINDEXu8" namsemantics.c#L85tonet/ipv4/fib_semton="+c,v               uics.c#L133"i" claune" namsemantics.c#L85pniofib_info_devhaspnio90"> .c#L144" ifib_semantics.c#L14, 1);
<4d6b_seman4ics.c#L117" id="L117" cl4ss="l41e" nas4#else /* 4d7b_seman4class="sref">RTN_BLACKHO4E41f="+code=RT_S>errr19" class="linla="sref">DEVINDEX_a
#else /* 4dnux/inet4class="sref">error  4 -__rcu fi)->scope  4 __rcu[sfibeach_entry"sref">DEVINDEX[sfibeach_entrycs.c#L90" id="L90" claet/ipv4/fib_semaa="+c,v               sa="sref">DEVINDEX_a
="+code=fi" clasap#else /* 4fib_seman4ics.c#L121" id="L121" cl4ss="l42href="net/ipv4/fib_seeeeeRT_S>errr19" class="linlaet/ipv4/fib_semaa="+c/fib_semantics.c#L85"aptonet/ipv4/fib_semaapton="+c fib_ected(*RTN_UNREA4HABLE42f="+code=RT_SCOPE_UNICOPEEEEEEEEEEEEEcontinues.c#L144" ifib_semantics.c#L14, 1);
<4de=error"4class="sref">error  4 -/fib_semantics.c#L85" idv4iority"sref">DEVINDEX_HASpniority90"> fib_"sr19" class="linpniofib_info_devhaspnio90">"|| 147        if (!s.c#L21" id="L24de=scope"4class="sref">scope  4 __rculaet/ipv4/fib_semaa="+c/fib_semantics.c#L85"aptonet/ipv4/fib_semaapton="+c flb_ected(*)->RTN_PROHIBIT4/a>] 42f="+code=RT_SCOPE_UNI90
error  4 - 90
scope  4 s.c#L144" ifib_semantics.c#L14, 1);
<4fib_seman4ics.c#L129" id="L129" cl4ss="l42ntics90
RTN_THROW] 4 {
error  4 -DEVINDEX_HASdftect_dfat=rcu" _lass="sref">__rcuib_pHSIZ="+code=fi" class="HSIZef">fi)->,d                   orderL53" class="linorderef">,5
scope  4 __rcuib_pHSIZ="+code=fi" class="HSIZef">fii)->="+code=fi" clacodt_resor>90">,d    i)->,d                   dfltss="line" name=dflt="+c .c#L144" ifib_semantics.c#L14, 1);
<4de=error"4ics.c#L133" id="L133" cl4ss="l4ic="+ct 147        if (!s.c#L21" id="L24de=scope"4"sref">RTN_NAT] = {
4a hre43f="+code=RT_Sass="sref">rt = fi)->s.c#L144" ifib_semantics.c#L14, 1);
<4de=error"4class="sref">error  4 -s.c#L144" ifib_semantics.c#L14, 1);
<4de=scope"4class="sref">scope  4  ref="+code=rtab ="+code=fi" clan90">o"s)->,d&_semantics.c#L85lass="line" name="L90">/fib_semantics.c#L85" id=h="+code=fi" class=" class[0].)->fib_nh; ass="line" name="L90">/fib_semantics.c#L85" iddev> + 1] = {
RTN_XRESOLVE4/a>] 43f="+code=RT_S>errr19" class="lin ="+code=fi" clan90">ics4#else /* 4dib_seman4class="sref">error  4 -/fib_semantics.c#L85_ud_(strT_SCOPE_NOWHERE<_ud_(strT90">s.c#L144" ifib_semantics.c#L14, 1);
<4d9b_seman4class="sref">scope  4 __rcu eigh_releasT_SCOPE_NOWHERE<_eigh_releasTcs.c#L90" id="L90" c ="+code=fi" clan90">is.c#L144" ifib_semantics.c#L14, 1);
<4fib_seman4ics.c#L141" id="L141" cl4ss="l44e" name="L14190
rt_fib4nfo_f44f="+code=RT_S>errrr19" class="linsstrT_SCOPE_NOWHERE<(strTcs.co&_                NUD_VALIDL53" class="linNUD_VALID90">icfamp_&_                orderL53" class="linorderef">"!"s)->rtable *4a hre44f="+code=RT_S>errrr19" class="linsstrT_SCOPE_NOWHERE<(strTcs.co&_                NUD_VALIDL53" class="linNUD_VALID90">ic|| 147        if (!s.c#L21" id="L24_6b_seman4" id="L147" class="line"4name=44href="net/ipv4/fi(i)->of hre0cfamp_&_                orderL53" class="linorderef">"fib_ected(*#else /* 4fESOLVE" 4ine" name="L7 href="+cod4=erro44f="+code=RT_SCOPE_LINi)->="+code=fi" clacodt_resor>90"> tected(*s.c#L144" ifib_semantics.c#L14, 1);
<4_ib_seman4)
)->otected(*s.c#L144" ifib_semantics.c#L14, 1);
<4_9b_seman4/ipv4/fib_semantics.ipvm4 44f="+code=RT_S".c#L144" ifib_semantics.c#L14, 1);
<4ist_head"4 class="sref">hlist_head4 45ef="+code=EAGmantic 1s.c#L144" ifib_semantics.c#L14, 1);
<4itics.c#L4nfo_hash_size" class="sr4ef">f45GNU G".c#L144" ifib_semantics.c#L14, 1);
<4ie=error"4nfo_cnt" class="sref">fi4b_inf45143"> 143static void (* 143static void DEVINDEX_4HASHB45S5
DEVINDEX_4HASHS45f="+ccltruct                   " idcount/a>) {                    idcount/a>) {   rcu" _lass="sref">__rcu t_semantss="line" name= t_semant="+cei)->,d                   rfibiningss="line" name= fibining="+c .c#L144" ifib_semantics.c#L14, 1);
<4i6b_seman4 class="sref">hlist_head4 45e" nas4#else /* 4s.c#L58" 4id="L58" class="line" na4me="L45f="+code=RT_S>                  nhnet/ipv4/fib_semcharcu""t 0s.c#L144" ifib_semantics.c#L14, 1);
<4sib_seman4LTIPATH" class="sref">CO4NFIG_45e" na.c#L144" ifib_semantics.c#L14, 1);
<4s9b_seman4id="L60" class="line" na4me="L45f="+code=RT_Swhilerrr19" class="lin t_h_o61" id="L61" cla t_h_o6cs.c#L90" id="L90" c t_h="+code=fi" cla t_h90">,d               rfibiningss="line" name= fibining="+c ics4#else /* 4INLOCK" c4lass="sref">DEFINE_SPINL4OCKotected(*,d&_semantics.c#L85rfibiningss="line" name= fibining="+c s.c#L144" ifib_semantics.c#L14, 1);
<4Ie=error"4ss="sref">for_nexthops(nhsel; const 4struc46">  74#else /* 4el" class4="sref">nhsel = 0, <4a hre46e" name="L105E0" class="line" name=/* leftover implies invalid _semant configurtruon, discard it.cL15">  15
nhsel < (4 46 href90
  58#ifdef change_next4hops<468="+ccltruct                   " idgetd=hnet/ipv4/fib_semantigetd=hnrcu" _lass="sref">__rcuib_pHSIZ="+code=fi" class="HSIZef">fi)->,d_lass="sref">__rcu t_semantss="line" name= t_semant="+cei)->,8#ifdef nhsel; struct4 __rcu nhsel = 0, <4a hre47href=s4#else /* 4el" class4="sref">nhsel < (4 cs4#else /* 4ecs.c#L144class="sref">nexthop_nh<4/a>++47ef="+code=EHOSTUNREAC                   attrle ="+code=fi" claattrle rcu"s.c#L144" ifib_semantics.c#L14, 1);
<4s.c#L74" 4id="L74" class="line" na4me="L47">  74#else /* 4el" class4_ROUTE_MULTIPATH */
error19" class="lin t_h_o61" id="L61" cla t_h_o6cs.c#L90" id="L90" c t_h="+code=fi" cla t_h90">,d               rfibiningss="line" name= fibining="+c i4#else /* 4ee=scope"4id="L76" class="line" na4me="L47f="+code=RT_SCOPE_UNICOPE="nemantic tics.c#L139" id=EINVALss="line" name=EINVALrcu"s.c#L144" ifib_semantics.c#L14, 1);
<4s6b_seman4will optimize it to get 4rid o47147"> 147        if (!s.c#L21" id="L24e.c#L58" 4id="L78" class="line" na4me="L47f="+code=RT_SCOPE_LINr19" class="lina>) {  d=h="+code=fi" claa>) {  d=h90">/fib_semantics.c#L85_h_flaga> + 1] = {
for_nexthops( + 1] = {
/fib_semantics.c#L85 t_h_flaga> + 1] = {
nhsel; const 4struc47f="+code=RT_SCOPE_NOWsref">__rcu e) {  d=h="+code=fi" claa>) {  d=h90">/fib_semantics.c#L85_h_oime" id="L61" cla_h_oim90">otected(*/fib_semantics.c#L85 t_h_hfindexss="line" name= t_h_hfindexrcu"s.c#L144" ifib_semantics.c#L14, 1);
<4el" class4="sref">nhsel = 0; <4a hre48ef="+code=EAGAIN" cla               ne) {  d=h="+code=fi" claa>) {  d=h90">/fib_semantics.c#L85_h_weighe="+code=fi" cla_h_weighe90">otected(*/fib_semantics.c#L85 t_h_{                   t_h_{   90">o+ 1s.c#L144" ifib_semantics.c#L14, 1);
<4s.c#L82" 4id="L82" class="line" na4me="L48f="+c0
change_next4hops<48ef="+code=EHOSTUNREAC               attrle ="+code=fi" claattrle rcu"otected(* s.c#L144" ifib_semantics.c#L14, 1);
<4l" class=4"sref">nhsel;       4     48f="+code=RT_SCOPE_UNI>errr19" class="linattrle ="+code=fi" claattrle rcu"ofib_e0 cs4#else /* 4ll" class4ass="sref">fib_nh *<4a hre48href="net/ipv4/fib_ssssssssssclass="sref">__rcunlattr="+code=fi" cla_lattr="+cei)->,di)->(* s.c#L144" ifib_semantics.c#L14, 1);
<4le=scope"4="sref">nhsel = 0; <4a hre48"+cod.c#L144" ifib_semantics.c#L14, 1);
<4s.c#L87" 4id="L87" class="line" na4me="L48href="net/ipv4/fib_seme="L129L90" id="L90" c_la="+code=fi" cla_la90">o"s)-> s.c#L144" ifib_semantics.c#L14, 1);
<4l.c#L58" 4P_ROUTE_MULTIPATH */
<48f="+code=RT_SCOPE_LINNNNNNNNN               ne) {  d=h="+code=fi" claa>) {  d=h90">/fib_semantics.c#L85_h_gwe" id="L61" clanh_gw="+co=9L90" id="L90" c_la="+code=fi" cla_la90">o?s)->)o: 0s.c#L144" ifib_semantics.c#L14, 1);
<4sROUTE_MU4id="L89" class="line" na4me="L48e" na#ifdefected(*endfor_next4hops<48f="+code=RT_SCOPE_NOWWWWWWWWWL90" id="L90" c_la="+code=fi" cla_la90">o"s)-> s.c#L144" ifib_semantics.c#L14, 1);
<4s.c#L91" 4id="L91" class="line" na4me="L49href="net/ipv4/fib_seeeeeRT_S               ne) {  d=h="+code=fi" claa>) {  d=h90">/fib_semantics.c#L85_h_t+codei>fib_info_devhas_h_t+codei>="+co=9L90" id="L90" c_la="+code=fi" cla_la90">o?s)->)o: 0s.c#L144" ifib_semantics.c#L14, 1);
<4s.c#L82" 4id="L92" class="line" na4me="L49f="+code=RT_SCOPE_UNICOPEEEEE>errr19" class="lin e) {  d=h="+code=fi" claa>) {  d=h90">/fib_semantics.c#L85_h_t+codei>fib_info_devhas_h_t+codei>="+ci4#else /* 4_prop" cl4ass="sref">fib_prop 4/fib_semantics.c#L85" id=me="+code=fi" cla" id=me90">/fib_semantics.c#L85an c="+code=fi" claan c90">.)->_user                " id=um_t+codei>_user rcu"++s.c#L144" ifib_semantics.c#L14, 1);
<4PEC" clas4s="sref">RTN_UNSPEC]4 = {
49f="+c#endif.c#L144" ifib_semantics.c#L14, 1);
<4Pl" class4lass="sref">error  =4 0,
<49href="net/ipv4/fib_ss90
scope  =4 otected(*,d&_semantics.c#L85rfibiningss="line" name= fibining="+c s.c#L144" ifib_semantics.c#L14, 1);
<4=.c#L78" 4ss="sref">RTN_UNICAST] = 49f="+code=RT_S}esref">__rcuendsfiba>) {                  endsfiba>) {   cs.c#L90" id="L90" csass="line" name="L90"> s.c#L144" ifib_semantics.c#L14, 1);
<4=ROUTE_MU4lass="sref">error  =4 0,
<49e" na.c#L144" ifib_semantics.c#L14, 1);
<4=.c#L60" 4lass="sref">scope  =4 RTN_LOCAL] 5 {

fib_prop 5 0,
<50RTN_UNSPEC]5   74#else /* 5O4AL" cla5sass="sref">error  =5ss="l50e" na                   " id_h_match               " id=h_matchrcu" _lass="sref">__rcuib_pconfig                 idconfig="+cei)->__rcu fi)-> .c#L144" ifib_semantics.c#L14, 1);
<5f5b_seman5iass="sref">scope  =5T50f="+cs4#else /* 5O6b_seman5is.c#L97" id="L97" class5 0,
<50 name#ifdefected(* 143static void RTN_UNICAST__rcu t_semantss="line" name= t_semant="+cei)->s.c#L144" ifib_semantics.c#L14, 1);
<5f8b_seman5iass="sref">error  =5ss="l50ef="+code=EIN>                  rfibiningss="line" name= fibining="+cs.c#L144" ifib_semantics.c#L14, 1);
<5f9b_seman5iass="sref">scope  =5>] = 50f="+c#endif.c#L144" ifib_semantics.c#L14, 1);
<5de=error"5class="sref">error  5 0,
<51e" na.c#L144" ifib_semantics.c#L14, 1);
<5dnux/mm.h5  class="fref">linux/mm.5<{
DEVINDEX_cSpniority90"> famp_&_                cfg               cfg="+c/fib_semantics.c#L85"cdv4iority"sref">DEVINDEX_cSpniority90"> !"s)->/fib_semantics.c#L85" idv4iority"sref">DEVINDEX_HASpniority90"> .c#L144" ifib_semantics.c#L14, 1);
<5d2AL" cla5ics.c#L113" id="L113" cl5ss="l51ef="+code=EHOSTUNREACmantic 1s.c#L144" ifib_semantics.c#L14, 1);
<5d3AL" cla5class="sref">RTN_MULTICA5T51">  74#else /* 5d4AL" cla5class="sref">error  5 0,
<514" name="L141>errr19" class="lincfg               cfg="+c/fib_semantics.c#L85"cdoime" id="L61" cla"cdoim" nam||ected(* cs4#else /* 5d5b_seman5class="sref">scope  5 (*/fib_semantics.c#L85" id=h="+code=fi" class=" class/fib_semantics.c#L85_h_oime" id="L61" cla_h_oim90">) famp_&_.c#L144" ifib_semantics.c#L14, 1);
<5d6b_seman5ics.c#L117" id="L117" cl5ss="l51href="net/ipv4/fib_seme="ror19" class="lincfg               cfg="+c/fib_semantics.c#L85"cdgwe" id="L61" cla"cdgw90"> m||ected(*m""sr19" class="linlass="line" name="L90">/fib_semantics.c#L85" id=h="+code=fi" class=" class/fib_semantics.c#L85_h_gwe" id="L61" clanh_gw="+c i4#else /* 5d7b_seman5class="sref">RTN_BLACKHO5E51f="+code=RT_SCOPE_LINNNNNNNNNmantic 0s.c#L144" ifib_semantics.c#L14, 1);
<5dnux/inet5class="sref">error  5 -scope  5 RTN_UNREA5HABLE52f="+c#ifdefected(* 143static void error  5 -m""sr19" class="linNULLss="line" name=NULL90"> .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 RTN_PROHIBIT5/a>] 52{
__rcu t_h="+code=fi" cla t_h90">otected(*s.c#L144" ifib_semantics.c#L14, 1);
<5f6b_seman5class="sref">error  5 - ref="+code=rtabrfibiningss="line" name= fibining="+c"tected(*s.c#L144" ifib_semantics.c#L14, 1);
<5f7b_seman5class="sref">scope  5   58#ifdef ) {                  sfiba>) {   cs.c#L90" id="L90" csass="line" name="L90"> cs4#else /* 5d9b_seman5s="sref">RTN_THROW] 5 {
error  5 -scope  5 ,d               rfibiningss="line" name= fibining="+c i4#else /* 5de=error"5ics.c#L133" id="L133" cl5ss="l53ef="+code=EHOSTUNREACCCCCCCCCmantic tics.c#L139" id=EINVALss="line" name=EINVALrcu"s.c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5"sref">RTN_NAT] = {
5a hre53">  74#else /* 5de=error"5class="sref">error  5 -/fib_semantics.c#L85 t_h_hfindexss="line" name= t_h_hfindexrcu" famp_&_                 t_h="+code=fi" cla t_h90">/fib_semantics.c#L85 t_h_hfindexss="line" name= t_h_hfindexrcu" !"s)->)4#else /* 5de=scope"5class="sref">scope  5  147        if (!s.c#L21" id="L25RESOLVE" 5lass="sref">RTN_XRESOLVE5/a>] 53f="+code=RT_SCOPE_LINr19" class="linattrle ="+code=fi" claattrle rcu"otected(* s.c#L144" ifib_semantics.c#L14, 1);
<5dib_seman5class="sref">error  5 -errr19" class="linattrle ="+code=fi" claattrle rcu"of hre0ics4#else /* 5d9b_seman5class="sref">scope  5 __rcunlattr="+code=fi" cla_lattr="+cei)->,di)->(* s.c#L144" ifib_an class="comment">/* 5fib_seman5ics.c#L141" id="L141" cl5ss="l54e" na.c#L144" ifib_semantics.c#L14, 1);
<5ntics.c#L542" id="L142" class="lin5" nam54f="+code=RT_SCOPE_UNICOPEEEEE)->o"s)-> s.c#L144" ifib_semantics.c#L14, 1);
<5fe=error"5" id="L143" class="line"5name=54ef="+code=EHOSTUNREAC ifib_se>errr19" class="lin_la="+code=fi" cla_la90">ofamp_&_                _la_getdbeics.c#L133"i" cla_la_getdbeiccs.c#L90" id="L90" c la="+code=fi" cla_la90">)o!"s)->rt_fib5nfo_f54f="+code=RT_SCOPE_UNICOPE_UNICOPE="nemantic 1s.c#L144" ifib_semantics.c#L14, 1);
<5tics.c#L155" id="L145" class="line5 name54href=#ifdefected(*rtable *5a hre54f="+code=RT_SCOPE_UNICOPE="ne)->o"s)-> s.c#L144" ifib_semantics.c#L14, 1);
<5_6b_seman5" id="L147" class="line"5name=54href="net/ipv4/fiREAC ifib_se>errr19" class="lin_la="+code=fi" cla_la90">ofamp_&_                _la_getduics.c#L133"i" cla_la_getduiccs.c#L90" id="L90" c la="+code=fi" cla_la90">)o!"s)->fib_info_devhas_h_t+codei>="+ci4#else /* 5fESOLVE" 5ine" name="L7 href="+cod5=erro54f="+code=RT_SCOPE_LINCOPE_UNICOPE="nemantic 1s.c#L144" ifib_semantics.c#L14, 1);
<5tib_seman5)
 54f="+code=RT_SCOPE_NOW".c#L144" ifib_semantics.c#L14, 1);
<5ist_head"5 class="sref">hlist_head5 55e" na.c#L144" ifib_semantics.c#L14, 1);
<5itics.c#L5nfo_hash_size" class="sr5ef">f55f="+code=RT_SCOPE_UNIL90" id="L90" c t_h="+code=fi" cla t_h90">otected(*,d&_semantics.c#L85rfibiningss="line" name= fibining="+c s.c#L144" ifib_semantics.c#L14, 1);
<5ie=error"5nfo_cnt" class="sref">fi5b_inf55__rcuendsfiba>) {                  endsfiba>) {   cs.c#L90" id="L90" csass="line" name="L90"> s.c#L144" ifib_semantics.c#L14, 1);
<5ofibinfo_5id="L54" class="line" na5me="L55f="+c#endif.c#L144" ifib_semantics.c#L14, 1);
<5oics.c#L15" class="sref">DEVINDEX_5HASHB55href="net/ipvmantic 0s.c#L144" ifib_semantics.c#L14, 1);
<5ie=scope"5" class="sref">DEVINDEX_5HASHS55f="+c".c#L144" ifib_semantics.c#L14, 1);
<5i6b_seman5 class="sref">hlist_head5 55147"> 147        if (!s.c#L21" id="L25s.c#L58" 5id="L58" class="line" na5me="L55">  58#ifdef CO5NFIG_55e" naE0" class="line" name=/*15">  15
  15
DEFINE_SPINL5OCK  15
  15
for_nexthops(  15
nhsel; const 5struc56f="+c10" class="line" name=.crWe have to takeW   o account, th t:15">  15
nhsel = 0, <5a hre56href=10" class="line" name=.c a) gateway c clbe actually localv   erface address,15">  15
nhsel < (5  15
  15
  510" class="line" name=.c    described not by  clifaddr, but also by   direct rou;e.15">  15
change_next5hops<56e" naE0" class="line" name=.c c) If both gateway andv   erface are specified, they should not15">  15
nhsel; struct5   15
nhsel = 0, <5a hre57ef="+10" class="line" name=.crd) If we use tunnel rou;es, gateway could be not on-essk.15">  15
nhsel < (5  15
nexthop_nh<5/a>++57  15
  15
  15
  15
  15
  510" class="line" name=.c much moie general.15">  15
for_nexthops(  15
nhsel; const 5struc57f="+c10" class="line" name=.cr"essk" is direct rou;e,15">  15
nhsel = 0; <5a hre58ef="+10" class="line" name=.cr[ ... "site" ... "   erior" ... ]15">  15
  15
change_next5hops<58  15
nhsel;       5     58f="+c10" class="line" name=.crEvery pmafix mafers to a set of "_semant"s (gw, oif),15">  15
fib_nh *<5a hre58href=10" class="line" name=.c wheie gw mustlhave narrower scope. This recursuon stops15">  15
nhsel = 0; <5a hre58{
  15
  15

<58">  510" class="line" name=.c15">  15
  15
endfor_next5hops<58f="+c10" class="line" name=.crconsistent andvvery flexible. F.e. as by-prodss="it allows15">  15
  15
  15
fib_prop 5  15
RTN_UNSPEC]5 = {
59f="+c10" class="line" name=.crNormally it looks od following.15">  15
error  =5 0,
<59href=10" class="line" name=.c15">  15
scope  =5   15
  15
RTN_UNICAST] = 59">  510" class="line" name=.c                |/fib_ {essk pmafix} /fib_ (gw, oif) [scopeleocal]15">  15
error  =5 0,
<59e" naE0" class="line" name=.c                                      |15">  15
scope  =5   15
  15
RTN_LOCAL] 6 {
__rcuib_pconfig                 idconfig="+cei)->__rcu fi)->,8#ifdef fib_prop 6 0,
<60ef="+code=EHOSTUNREAC ifib_seclass="sref">__rcu #else /* 6O3AL" cla6s="sref">RTN_UNSPEC]6   7s4#else /* 6O4AL" cla6sass="sref">error  =6ss="l604="+code=RT_S                   err="+code=fi" claerrrcu"s.c#L144" ifib_semantics.c#L14, 1);
<6f5b_seman6iass="sref">scope  =6T60f="+code=RT_Sass="sref">rt = ei)->s.c#L144" ifib_semantics.c#L14, 1);
<6f6b_seman6is.c#L97" id="L97" class6 0,
<606="+code=RT_Sass="sref">rt = ei)-> + 1] = {
RTN_UNICAST  58#ifdef error  =6ss="l60e" name="L129L90" id="L90" cnee="+code=fi" cla_me90">etected(*scope  =6>] = 60f="+code=RT_S>errr19" class="lin_h="+code=fi" claaclass/fib_semantics.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /* 6de=error"6class="sref">error  6 0,
<61href="net/ipv4/fib_seclass="sref">__rcu linux/mm.6<{

errr19" class="lin_h="+code=fi" claaclass/fib_semantics.c#L85_h_flaga> + 1] = {
/* 6d3AL" cla6class="sref">RTN_MULTICA6T61">  74#else /* 6d4AL" cla6class="sref">error  6 0,
<61href="net/ipv4/fib_ssssssssss>errr19" class="lincfg               cfg="+c/fib_semantics.c#L85"cdscope="+code=fi" clascdscope="+co&ib_tected(*#else /* 6d5b_seman6class="sref">scope  6   74#else /* 5de=error"5class="sref">error  5 -51f="+code=RT_SCOPE_LINNNNult="+code=fi" class="res="comment"4sti         cfg="+c/fib_sem4sti     5ruc57f="+c10" cted(*)o!"s)-&g s.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /* lass/fib_semanticscla_UNICAST/a>#else /* 6d5b_seman6class="sref">scope  6   5ode=RT_SCOPE_LINNNNNNNNN6antic60s.c#L144" ifib_semantics.c#L1lass="comment">/* 5de=error"5class="sref">error  5 -51f="+code=RT"l60e" na.c#L144" ifib_semantic 16.c#L164" ifib_semantics.c#L111111111s.cs.c#L144" ifib_semantics.c#L14, 1);
)->)o!"s)-&g s.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /* 56d6b_seman6 5 -51f="+code=RT= 60f="+code=RT_S".c#L144" ifib_s6manti61ref">__rcunlattr="+code=f" cla t_h_o6cs.c#L90ib_semantics.c#L14, 1);
<6d5b_seman6class="sref">scope  6 <="l52e" n6.c#L144" ifib_semantics.6#L14,62       ne) {  d=h="+code=fi" lass="comment">/* 5de=error"5claNODEVref">error  NODEV 53h6d6b_seman6 5 -51f="+code=RBLE52f="+6#ifdefected(*)o!"s)-&ib_semantics.c#L14, 1);
(IFF_UP);
<66d5b_seman6class="sref">scope  6 <="l61ef="+code=EHO>errr19" class="6incfg62               lass="line" name="L90"mment">/* 5de=error"5claNETDOWNref">error  NETDOWN 53h6d6b_seman6 5 -51f="+code=RBa>61">  7ode=RT_SCOPE_UNImantic 06.c#L164" ifib_semantics.c#L111111111s.cs.c#L144" if.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
RTN_UNICAST)o!"s)-&ib_semantics.c#L14, 1);
<66f7b_seman6is="sref">RTN_UNICAST__rcu 6_h="+62t;o"s)->c#L85_h_gwe" id="L61" clanh_gw="+c cs4#eltected(*/* 6f7b_seman6is="sref">RTN_UNICAST ref="+code=rtabr6ibini62omment"4sti         cfg="+c/f4, 1);
<5ie=scope"5" class="sref">DEVINDEX_5H6a h52">  68#ifdef hlist_head5<6="l52e" n6me="L129L90" id="L90" cs6iba>)62" ifib_semantics.c#L1cu"s.c#L144" ificu   ad_locL90" c t_h="+codecu   ad_locLa_la966f7b_seman6is="sref">RTN_UNICASTRTN_MULTICA6T<RTN_MULTICA6T<error196 clas6="lin t_h_o61" id="L611111111111111111nld=mecs.cs.c#L1d+c10semantics.c#L14,+c10);
/6O2AL" cla6sss="sref">fib_prop 6 0="l53ef="6code=EHOSTUNREACCCCCCCCC6antic6tics.c#L139" id=EINVALss="line11111111nld=mecs.cs.c#L1f/fib _tected(*fib_prop 6 0=a>61">  74#else /* 6O2AL" cla6sss="sref">fib_prop 6 0="l52SerrL90"6id="L60" c t_h="+code=fi" clllllllll}6f7b_seman6is="sref">RTN_UNICAST        if (!s.c6L21" 63"L90" c_la="+code=fi" cla_la90ies invalid _semant confI
  1requires a bitcondirinket/isemantic6OCAL" cla6s="sref">RTN_LOCAL] 6 {>] 53f="+6ode=RT_SCOPE_LINr19" cla6s="li6attrle ="+code=fi" claaaaaaaaaib_sem4sti     5rucfl hr" id=um_t+codf/4);
(*i" claRT_SCOPE_LINKlassi4#else /* 6d5b_seman6class="sref">scope  6 <errr19"6class6"linattrle ="+code=fi"code=fi" cla_la90m4sti     5rucfl hr" id=um_t+codf/4);
(*/* 6f7b_seman6is="sref">RTN_UNICAST__rcunlattr="+code=fcu"s.c#L144" ifib_semantics.c#L14, 1);
RTNef="uib_semantics.c#L1RTNef="uia_la90">)o!"s)-&gRTN_UNICASTRTN_MULTICA6T)-6gt;RTN_UNICASTscope  =6Thlist_head5<6ame54href6#ifdefected(*scope  =4 6hre54f="+6ode=RT_SCOPE_UNICOPE="ne6/a>)-6gt;error  5 -51f="+code=Rme=54href6"net/ipv4/fiREAC ifib_se6errr16" class="lin_la="+codea t_h90">/fib_semants_semantics.c#L14, 1);
(*#else /* e=fi" cla t_h90">/fib_semants_semantics.c#L14, 1);
(*#else /* 6d5b_seman6class="sref">scope  6 (*/* fg="+c/fib_semantiFIB_RES_OIF)o!"s)-& s_semantics.c#L14, 1);
<66f7b_seman6is="sref">RTN_UNICAST 55e" n6.c#L144" ifib_semantics.6#L14,65e) {  d=h="+code=fi" claa>) {  d=h90"c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
error FIB_RES_DEVa_la90">)o!"s)-& s_semantics.c#L14, 1);
<66f7b_seman6is="sref">RTN_UNICASTscope  6 __rcu)o!"s)-&ib_semantics.c#L14, 1);
<66f7b_seman6is="sref">RTN_UNICAST)o!"s)-&ib_semantics.c#L14, 1);
(IFF_UP);
<6 ? 0 :>/* 5de=error"5claNETDOWNref">error  NETDOWN 53h6d6b_seman6 5 -51f="+code=RSHS55f="+6".c#L144" ifib_semantics6c#L1465t;RTN_MULTICA6T 55147"6 147        if (!s.c6L21" 65 class="lin_la="+codede=fi" class="resultreini)-> +ini)-classcs.cs.c#L144" ifini +ini51f="+code=RSro54f="+68#ifdef CO5N6IG_55e" n6E0" class="line" name=/*65">  65linattrle ="+code=fi" claattrle rcu"of h.c#L85_h_flaga> + 1] = {
/*6d5b_seman6class="sref">scope  6 __rcunlattr="+code=fmment">/* 5de=error"5class="sref">error  5 -51f="+code=RK  66t_h="+code=fi" cla t_h90">otectedcu   ad_locL90" c t_h="+codecu   ad_locLa_la966f7b_seman6is="sref">RTN_UNICASTerror  NODEV 53h6d6b_seman6 5 -51f="+code=Rruc56f="+610" class="line" name=.c6We ha66mantic 1s.c#L144" ifi"+c/fib_semantiini +ini)->)o!"s)-&g/* 66f7b_seman6is="sref">RTN_UNICAST/fib_semanini +ini .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 6 hr56{
 56 hre610" class="line" name=.c6b) ga66t_h="+code=fi" cla t_h90">otectederror  NETDOWN 53h6d6b_seman6 5 -51f="+code=R="L56">  610" class="line" name=.c6   de66mantic 1s.c#L144" ififi" !90">)o!"s)-&ini +ini(IFF_UP);
<65de=scope"5class="sref">scope  5 6 G_55e" n6E0" class="line" name=.c6c) If66linattrle ="+code=fi"code=fi"gotoss/fib_semanticsnua hrcfg         ticf="+code=Rme=54href6"net/ipv4/fiREAC ifib_a h53f="+610" class="line" name=.c6 EEco66emantics.c#L14, 1);
<"+c/fib_semanti.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
 +ini) {  d=h90ib__hol#else )o!"s)-&.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
<66f7b_seman6is="sref">RTN_UNICAST  67t_h="+code=fi" cla t_h90">otected#else DEVINDEX_5H6="L57f="+610" class="line" name=.c6resul67mantic 1s.c#L4=scope" c4lass="sref">scope  =4 6
  65
scope  =4 6
hr56{
otectedcu   ad_unlocL90" c t_h="+codecu   ad_unlocLa_la966f7b_seman6is="sref">RTN_UNICASTscope  =6T<="L57">  610" class="line" name=.c6much 6oie ge4=scope" c4lass="sref">scope  =4 6
G_55e" n6E0" class="line" name=.c6Every67);
<4=.c#L60" 4lass="sref">scope  =4 6ruc57f="+610" class="line" name=.c6"6essk&qh="+cod"+c/fib_semantiinline" t; +inline_h="+unot;hoste=fi" class="checkd=hcsl+c10"hashf" ifib_semantics.hcsl+c10"hashf"a_la90">)o!"s)-&_L90" id="L90" c la="_i" cla_lai" class="checkdvalid="L90" c la="val);
<5de=scope"5class="sref">scope  5 6hre58ef="610" class="line" name=.c6[ ...6"6d3AL" cla6class="sref">RTN_MULTICA6T<="L58f="+610" class="line" name=.c6andv&68t_h="+code=fiunot;hoste=fi" class="checkdmasL90" c t_h="+codmasL);
)o!"s)-&ne" name"hash_b_se ifib_semantics.hcsname"hash_b_se);
RTN_UNICAST  65
f7b_seman6is="sref">RTN_UNICAST)o!"s)-&_Lhref=id="L90" c la="_ihref=a_lai" class="checkd" id="L90" c la="+ cla_la)" class="checkdvalid="L90" c la="val);
< ^f7b_seman6is="sref">RTN_UNICAST)o!"s)-&_Lhref=id="L90" c la="_ihref=a_lai" class="checkd" id="L90" c la="+ cla_la)" class="checkdvalid="L90" c la="val);
< lanh">  17) ^f7b_seman6is="sref">RTN_UNICAST)o!"s)-&_Lhref=id="L90" c la="_ihref=a_lai" class="checkd" id="L90" c la="+ cla_la)" class="checkdvalid="L90" c la="val);
< lanh">  114))+code=fi" claRTNH_F_ONmasL90" c t_h="+codmasL);
<6f7b_seman6is="sref">RTN_UNICASTscope  =4 6>
<58">  610" class="line" name=.c65">  68G_IP5sib_seman5LTIPATH" class="sref">CO5N6="L58e" n6E0" class="line" name=.c6Code 6s stilh="+codde=fi" class="resultrehlist_h ad90" c t_h="+codhlist_h adclasscs.cs.c#L144" if.hcsname"hash_fib_c ifib_semantics.hcsname"hash_fib_ca_la9e=fi" class="checkdbyts_semantics.c#L14byts_);
<5de=scope"5class="sref">scope  5 6huc57f="+610" class="line" name=.c6consi6tent a6d3AL" cla6class="sref">RTN_MULTICA6T<="L59ef="610" class="line" name=.c6to co69e) {  d=h="+ca t_h90">/fib_semanbyts_semantics.c#L14byts_);
#else scope  5 6="L59f="+610" class="line" name=.c6rou;i69t_h="+code=fi" cla t_ne" name= fibining="+ckzfib_c ifib_semanticskzfib_ca_la90">)o!"s)-&byts_semantics.c#L14byts_);
RTN_UNICAST  69 class="lin_lelsef7b_seman6is="sref">RTN_UNICASTscope  5 6=  69 class="lincfg               "+c/fib_semanti_de=fifree_pags_semantics.c#L14_de=fifree_pags_a_la90">)o!"s)-&GFP_KERNEb_semantics.c#L1GFP_KERNEb);
<+g="+c/fib_semanti__GFP_ZEROsemantics.c#L14_dGFP_ZERO);
scope  5 6=hr56{
  74#else )o!"s)-&byts_semantics.c#L14byts_);
<)66f7b_seman6is="sref">RTN_UNICASTscope  =4 6 = 59">  610" class="line" name=.c6     69G_IP5sib_seman5LTIPATH" class="sref">CO5N6,
<59e" n6E0" class="line" name=.c6     69 stilh="+codvoidlass="HSIZef">fi)-&g"hash_free ifib_semantics.hcsname"hash_freea_la9de=fi" class="resultrehlist_h ad90" c t_h="+codhlist_h adclasscs.cs.c#L144" ifhash90" c t_h="+codhash);
scope  5 6a h59f="+610" class="line" name=.c6 EE  69ent a6d3AL" cla6class="sref">RTN_MULTICA6T7="l60ef="710" class="line" name=.c715"> 70e) {  d=h="+ca t_a t_h_o6cs.c#L90hash90" c t_h="+codhash);
<5de=scope"5class="sref">scope  5 7
RTN_UNICASTRTN_UNICAST  7s4#else /fib_semanbyts_semantics.c#L14byts_);
#else scope  5 7="l604="+7ode=RT_S                7  err70net/ipv4/fib_semanticcu"s.c#L144" ifkfree ifib_semanticskfreea_la9 t_h_o6cs.c#L90hash90" c t_h="+codhash);
<56f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTrtotected)o!"s)-&byts_semantics.c#L14byts_);
<)66f7b_seman6is="sref">RTN_UNICAST  78#ifdef scope  =4 7="l60e" n7me="L129L90" id="L90" cn7e="+c70);
<4=.c#L60" 4lass="sref">scope  =4 7 = 60f="+7ode=RT_S>errr19" class="7in_h=709stilh="+codvoidlass="HSIZef">fi)-&g"hash_move ifib_semantics.hcsname"hash_movea_la9de=fi" class="resultrehlist_h ad90" c t_h="+codhlist_h adclasscs.cs.c#L144" ifnewsname"hash hrcfg           wsname"hash);
scope  5 7,
<61href7"net/ipv4/fib_seclass="s7ef">_7rcu scope  5 7,
scope  5 7="l61ef="7code=EHOSTUNREAC>errr19"7class7"lin_h6d3AL" cla6class="sref">RTN_MULTICA6T7/a>61">  74#else RTN_UNICASTRTN_UNICAST  74RTN_UNICAST  7ode=RT_SCOPE_LINNNNNNNNN7antic70s.c#L144" ifi"+c/fib_semantispin_locL_bh hrcfg         spin_locL_bha_la9" name= fibining="+cfhcsname"locL90" c t_h="+codfhcsname"locL);
<56f7b_seman6is="sref">RTN_UNICASTRTN_UNICAST__rcuRTN_UNICAST)o!"s)-&ne" name"hash_b_se ifib_semantics.hcsname"hash_b_se);
RTN_UNICAST(*errr19" class="7incfg72             fort_h90">/fib_semanihref="+code=CONi);
i" claRT_SCOPE_oldsb_se ifib_semanticsoldsb_se);
<5i" class="checkd href="+code=CONi);
<++* 6d3AL" cla6class="sref">RTN_MULTICA6T7Ba>61">  7ode=RT_SCOPE_UNImantic 07.c#L174" ifib_semantics.c#L1de=fi" class="resultrehlist_h ad90" c t_h="+codhlist_h adclasscs.cs.c#L144" ifh ad90" c t_h="+codh adclass=l" name= fibining="+cfe" name"hash ifib_semantics.hcsname"hash);
<[" class="checkd href="+code=CONi);
<]6f7b_seman6is="sref">RTN_UNICAST
RTN_UNICAST__rcu 7_h="+72t;fi)->,8#ifdef RTN_UNICAST ref="+code=rtabr7ibini72="L25s.c#L58" 5id="L58" class="line" na5m7a h52">  78#ifdef )o!"s)-&a href="+code=CONFIG_IP6="+c/fib_semanti.b_s90" c t_h="+codib_sclascls.cs.c#L144" if" ifib_semanticsn);
RTN_MULTICA6T7B"l60e" n7me="L129L90" id="L90" cs7iba>)72" ifib_semantics.c#L1ics.c#L1de=fi" class="resultrehlist_h ad90" c t_h="+codhlist_h adclasscs.cs.c#L144" ifdesa hrcfg         desaG_IP6f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTerror197 clas7="lin t_h_o61" id="L6111111111class="resultrehlist_delid="L90" c la="hlist_dela_la9" name= fibining="+cfhhref="+code=CONFIG_IPi" clascdscope="+co&ilashash ifib_semantics.hcshash);
<56f7b_seman6is="sref">RTN_UNICASTRTN_UNICAST61">  74#else )o!"s)-&a href="+code=CONFIG_IP56f7b_seman6is="sref">RTN_UNICASTerrL90"7id="L70" c t_h="+code=fi" cllllllllls.cs.c#L144" ifdesa hrcfg         desaG_IPs=l" name= fibining="+cnewsname"hash hrcfg           wsname"hash);
<[" class="checkd  wshash hrcfg           wshash);
<]6f7b_seman6is="sref">RTN_UNICASTo"s)->hlist_+c1_h ad90" c t_h="+codhlist_+c1_h ada_la9" name= fibining="+cfhhref="+code=CONFIG_IPi" clascdscope="+co&ilashash ifib_semantics.hcshash);
RTN_UNICASTscope  =4 7>] 53f="+7ode=RT_SCOPE_LINr19" cla7s="li7attrle ="+code4=scope" c4lass="sref">scope  =4 7>"l60e" n7.c#L144" ifib_se>errr19"7class73" ifib_semants.cs.c#L144" iffe" name"hash ifib_semantics.hcsname"hash);
RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST/fib_semanihref="+code=CONi);
i" claRT_SCOPE_oldsb_se ifib_semanticsoldsb_se);
<5i" class="checkd href="+code=CONi);
<++* 6d3AL" cla6class="sref">RTN_MULTICA6T7nam54f="+7ode=RT_SCOPE_UNICOPEEEEE7/a>)-7gt;RTN_UNICASTRTN_UNICASTfi)->,8#ifdef RTN_UNICAST(*RTN_UNICAST)-7gt;)o!"s)-&a href="+code=CONFIG_IP6="+c/fib_semanti.b_s90" c t_h="+codib_sclascls.cs.c#L144" if" ifib_semanticsn);
RTN_MULTICA6T7me=54href7"net/ipv4/fiREAC ifib_se7errr17" class="lin_la="+codecode=fi"de=fi" class="resultrehlist_h ad90" c t_h="+codhlist_h adclasscs.cs.c#L144" ifldesa hrcfg         ldesaG_IP6f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTscope  =4 7s h53f="+7ode=RT_SCOPE_NOW".c#L1447 ifib7semantics.c#L14, 1);
RTN_UNICAST 55e" n7.c#L144" ifib_semantics.7#L14,75);
<5itics.c#L5nfo_hash_size" class="sr5e7aam54f="+7ode=RT_SCOPE_UNIL90" id=7L90" 7 t_h="+code=fi" cla t_code=fi"cu"s.c#L144" if  wshash hrcfg           wshash);
)o!"s)-&fhhref="+code=CONFIG_IPi" clascdscope="+co&ilasa hrsrc ifib_semantics.hcsa hrsrc);
<56f7b_seman6is="sref">RTN_UNICAST__rcuRTN_UNICASTRTN_UNICASTscope  =4 7SHS55f="+7".c#L144" ifib_semantics7c#L1475t;scope  =4 7Se=54href7 147        if (!s.c7L21" 75 class="lin_le= fibining="+cfe" name"l+c10hash hrcfg         ne" name"l+c10hash);
RTN_UNICASTCO5N7IG_55e" n7E0" class="line" name=/*75">  75" ifib_semants.cs.c#L144" ifspin_unlocL_bh hrcfg         spin_unlocL_bha_la9" name= fibining="+cfhcsname"locL90" c t_h="+codfhcsname"locL);
<56f7b_seman6is="sref">RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST)o!"s)-&byts_semantics.c#L14byts_);
RTN_UNICAST  76t_h="+code=fi0">)o!"s)-&ne" name"hash_free ifib_semantics.hcsname"hash_freea_la9"+c/fib_semantioldsname"hash hrcfg         oldsname"hash);
)o!"s)-&byts_semantics.c#L14byts_);
<56f7b_seman6is="sref">RTN_UNICAST)o!"s)-&ne" name"hash_free ifib_semantics.hcsname"hash_freea_la9"+c/fib_semantioldsl+c10hash hrcfg         oldsl+c10hash);
)o!"s)-&byts_semantics.c#L14byts_);
<56f7b_seman6is="sref">RTN_UNICASTscope  =4 7(HB55href710" class="line" name=.c7a) ga76net/if7b_seman6is="sref">RTN_UNICAST)o!"s)-&_L90" id="L90" c la="_i" cla_lai" class="checkd.hcsname"update_#elt+c10semantics.c#L14.hcsname"update_#elt+c10a_la9cla_me90">ei)->s.c#L144" ifib_semantics.c#L14, 1);
fit;#else /* 6O3AL" cla6s="sref">RTN_UNSPEC]6 7a> 56 hre710" class="line" name=.c7b) ga76t_h="6d3AL" cla6class="sref">RTN_MULTICA6T7="L56">  710" class="line" name=.c7   de76s.c#L144" ifi"+c/fib_semanti;c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elt+c10semantics.c#L14#elt+c10a_lafg="+c/fib_semanti57f=>RTlec="+c10href="+code=CONi7f=>RTlec="+c10a_la9"+c/fib_semanti.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
scope  5 7 G_55e" n7E0" class="line" name=.c7c) If76linattrle ="+code=fi"code=fi"144" ificode=fi"cu"s.c#L144" if.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /6O2AL" cla6sss="sref">fib_prop 6 7a h53f="+710" class="line" name=.c7 EEco76emantics.c#L14, 1);
RTN_UNICAST)o!"s)-&;c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elt+c10_genid90" c t_h="+cod#elt+c10_genida_lafg="+c/fib_semantiatomic   ad90" c t_h="+codatomic   ada_la9" name= fibining="+cib_semantics.c#L14, 1);
srefhref="+code=CONiref);
RTN_UNICAST  77ntic6d2AL" cla6ics.c#L113" id="L113" cl6s7hRTN_UNICASTscope  =4 7
  77net/if7b_seman6is="sref">RTN_UNICASTfi)->,8#ifdef ei)->ne" confi.c#L85"cdnlHSIZ=ne" confi.="L90">,8#ifdef RTN_UNSPEC]6 7d o57 hre710" class="line" name=.c7of co77t_h="6d3AL" cla6class="sref">RTN_MULTICA6T7="L57">  710" class="line" name=.c7much 77s.c#L144" ifie=fi" class="checkdib_semantics.c#L14, 1);
<6f5b_seman6iass="sref">scope  =6T7
G_55e" n7E0" class="line" name=.c7Every77linattrle ="+=fi" class="HSIZef">fi)->,8#ifdef scope  =6T7
 h53f="+710" class="line" name=.c7"779inattrle ="+=fi" class="HSIZef">fi)->,8#ifdef RTN_UNICASTRTN_UNICASTei)->s.c#L144" ifib_semantics.c#L14, 1);
RTN_UNICAST  75
f7b_seman6is="sref">RTN_UNICAST/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*  1lascdnlHSIZ="+ccla_MAXd(*RTN_UNSPEC]6 7pRTN_UNICASTRTN_LOCAL] 6 7>
<58">  710" class="line" name=.c75">  787) {  d=h="+ca t_h90">/fib_seman.hcsa op_semantics.c#L14fhcsa op_);
<[" class="checkdcs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*(*  1lascdnlHSIZ="+ccs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*RTN_UNSPEC]6 7pG_55e" n7E0" class="line" name=.c7Code 78linattrle ="+code=fi"gotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICASTf7b_seman6is="sref">RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_MULTICA6T7 hr59  79 class="lin_la="+codecu"s.c#L144" ifnh             RTNH__);
ei)->ne" count_ibxthop_semantics.c#L14fhcscount_ibxthop_a_la9"+c/fib_semantics.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)o!"s)-&cs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICASTRTN_UNSPEC]6 7=  79 class="lincfg               gotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICASTscope  =4 7  o57 hre710" class="line" name=.c7     79eans #endif=scope" c4lass="sref">scope  =4 7 
<58">  710" class="line" name=.c7     79G_IP5sib_seman5LTIPATH" class="sref">CO5N7,
<59e" n7E0" class="line" name=.c7     79" ifib_semants.cs.c#L144" ifib_semantics.c#L14, 1);
RTN_UNICAST/fib_seman.hcsname"cnt   g="+c/fib_semantine" name"hash_b_se ifib_semantics.hcsname"hash_b_se);
<6 6d3AL" cla6class="sref">RTN_MULTICA6T8="l60ef="810" class="line" name=.c815"> 80cu 16f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTRTN_UNICASTRTN_UNICASTRTN_UNICASTscope  5 8,
<606="+8ode=RT_Sass="sref">rtRTN_UNICASTRTN_UNICAST)o!"s)-&byts_semantics.c#L14byts_);
<56f7b_seman6is="sref">RTN_UNICASTerrr19" class="8in_h=80emantics.c#L14, 1);
<"+c/fib_semanti.ewsl+c10hash hrcfg           wsl+c10hash);
)o!"s)-&byts_semantics.c#L14byts_);
<56f7b_seman6is="sref">RTN_UNICAST_8rcu RTN_MULTICA6T8,
)o!"s)-&byts_semantics.c#L14byts_);
<56f7b_seman6is="sref">RTN_UNICASTerrr19"8class81 class="lin_la="+code=fi" clas.cs.c#L144" ifne" name"hash_free ifib_semantics.hcsname"hash_freea_la9"+c/fib_semantinewsl+c10hash hrcfg           wsl+c10hash);
)o!"s)-&byts_semantics.c#L14byts_);
<56f7b_seman6is="sref">RTN_UNICAST#else RTN_UNICAST)o!"s)-&newsl+c10hash hrcfg           wsl+c10hash);
)o!"s)-&  wsb_se ifib_semantics  wsb_se);
<56f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTscope  =4 8,= 60f="+8ode=RT_S".c#L144" ifib_s8manti81ref">f7b_seman6is="sref">RTN_UNICAST)o!"s)-&nehref="+code=CONFIG_IPfg="+c/fib_semantikzfib_c ifib_semanticskzfib_ca_la9b_seof ">,8#ifdef RTN_UNICAST(*/fib_semannehref="+code=CONFIG_IPfgULL90"> .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 8="l61ef="8code=EHO>errr19" class="8incfg82 class="lin_la="+codegotoss/fib_semanticsfailure ifib_semantics.ailure);
<6f7b_seman6is="sref">RTN_UNICAST61">  8ode=RT_SCOPE_UNImantic 08.c#L1823) {  d=h="+ca t_h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)->RTN_MULTICA6T8=
<61href85
/fib_semannehref="+code=CONFIG_IPi" clascdscope="+co&ilasmetrLTI(*)o!"s)-&GFP_KERNEb_semantics.c#L1GFP_KERNEb);
<66f7b_seman6is="sref">RTN_UNICAST__rcu 8_h="+82t;scope  5 8=
<606="+8="L97"> ref="+code=rtabr8ibini82t_h="+code=fi" cla t_b_semantgotoss/fib_semanticsfailure ifib_semantics.ailure);
<6f7b_seman6is="sref">RTN_UNICASTRTN_UNICAST)82" ifib_semantics.c#L1h90">/fib_semannehref="+code=CONFIG_IPi" clascdscope="+co&ilasmetrLTIRTN_UNICAST/fib_seman.hcsname"cnt RTN_UNICASTerror198 clas83t_h="+code=fi0">)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilasib_semantics.c#L14ilasib_G_IPfg="+c/fib_semantihol#sib_semantics.c#L14hol#sib_a_la9"+c/fib_semantine_semantics.c#L14, 1);
<66f7b_seman6is="sref">RTN_UNICAST)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilasprotocolid="L90" c la="ilasprotocolG_IPfg="+c/fib_semantics.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICAST61">  84#else )o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilastected(*RTN_UNICASTerrL90"8id="L80" c t_h="+cod0">)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilasi ~0xFF) |ected(*lasi ~0x);
RTN_UNICAST)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilaspriorityid="L90" c la="ilaspriorityG_IPfg="+c/fib_semantics.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICASTRTN_UNICASTRTN_UNICASTerrr19"8class83);
<4=.c#L60" 4lass="sref">scope  =4 8<= 60f="+8ode=RT_SCOPE_NOWWWWWWWWW8lass=83   attrle ="+h90">/fib_seman.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic             RTNilasic );
RTN_UNICAST)o!"s)-&change_ibxthop_semantics.c#L14change_ibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T8nam54f="+8ode=RT_SCOPE_UNICOPEEEEE8/a>)-8gt;t;RTN_UNICASTt;RTN_UNICASTt;scope  5 8ame54href8#ifdefected(*RTN_UNICAST)-8gt;RTN_UNICAST/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)->RTN_MULTICA6T8sa 53ntic8#endif.c#L144" ifib_sema8tics.84" ifib_semantics.c#L1cla_me90">ei)->ei)->RTN_UNICASTRTN_UNICAST 55e" n8.c#L144" ifib_semantics.8#L14,85);
<5itics.c#L5nfo_hash_size" class="sr5e8aam54f="+8ode=RT_SCOPE_UNIL90" id=8L90" 8 t_h="+code=fi" cla t_0">ei)->)o!"s)-&cs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)->)o!"s)-&cs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)o!"s)-&rUNIinin.c#L85"cdnlHSIZ=rUNIinin.);
<6 6d3AL" cla6class="sref">RTN_MULTICA6T8ae=54ef="8ef="+cod"esref">__rcu(*RTN_UNICASTRTN_UNICAST/fib_seman cted(*RTN_MULTICA6T8a h53f="+8".c#L144" ifib_semantics8c#L1485t;ei)->" id="L90" c la="+ cla_la 0">ei)->valid="L90" c la="valG_IP6f7b_seman6is="sref">RTN_UNICAST        if (!s.c8L21" 85="L25s.c#L58" 5id="L58" class="line" na5m8aro54f="+88#ifdef /fib_seman cted(*  1lascdnlHSIZ="+cclAX_MAXd(*RTN_UNICAST  85" ifib_semantics.c#L1111111111111111111111111gotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICASTei)->valid="L90" c la="valG_IPfg="+c/fib_semanti#la_e=fi" id="L90" c la="+#la_e=fi" ia_la9"+c/fib_semantinlasemantics.c#L14#la);
<56f7b_seman6is="sref">RTN_UNICAST /fib_seman cted(* .c#L144" clAX_ADVMSSsemantics.c#L14clAX_ADVMSS);
< " nam" nami0">ei)->valid="L90" c la="valG_IPf">  165535 - 406O3AL" cla6s="sref">RTN_UNSPEC]6 8="L56f="+810" class="line" name=.c85">  86t;ei)->valid="L90" c la="valG_IPfg=65535 - 406f7b_seman6is="sref">RTN_UNICAST/fib_seman cted(* .c#L144" clAX_MTUd(*ei)->valid="L90" c la="valG_IPf">  165535 - 156O3AL" cla6s="sref">RTN_UNSPEC]6 8="L55f="+810" class="line" name=.c8We ha86mantic 1s.c#L144" ificode=fi""+code="144" ifi0">ei)->valid="L90" c la="valG_IPfg=65535 - 156f7b_seman6is="sref">RTN_UNICASTei)->nehref="+code=CONFIG_IPi" clascdscope="+co&ilasmetrLTIRTN_UNICASTscope  =4 8a> 56 hre810" class="line" name=.c8b) ga86"L90" c_la="+code=fi"4=scope" c4lass="sref">scope  =4 8="L56">  810" class="line" name=.c8   de86s.c#L144" ifi4=scope" c4lass="sref">scope  =4 8=G_55e" n8E0" class="line" name=.c8c) If86);
<4=.c#L60" 4lass="sref">scope  =4 8a h53f="+810" class="line" name=.c8 EEco869) {  d=h="+ca t_h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_MULTICA6T8hre57ef="810" class="line" name=.c8d) If87e) { #ifdefss/fib_semanticsCONFIG_IP_ROUTE_MULTIPATHid="L90" c la="CONFIG_IP_ROUTE_MULTIPATHef">f7b_seman6is="sref">RTN_UNICAST  87t_h="+code=fi" cla t_0">ei)->ib_semantics.c#L14, 1);
)o!"s)-&cs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)o!"s)-&cs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.)o!"s)-&cs.c#L85"cdnlHSIZ="+code=56f7b_seman6is="sref">RTN_UNICAST/fib_semanib_semantics.c#L14, 1);
RTN_UNSPEC]6 8h"L55f="+810" class="line" name=.c8resul87mantic 1s.c#L144" ificode=fi"gotoss/fib_semanticsfailure ifib_semantics.ailure);
<6f7b_seman6is="sref">RTN_UNICAST  87net/ipv4/fib_semantica t_h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.ei)->.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#eloif ifib_semantics#eloif);
/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNSPEC]6 8hhr56{
RTN_UNICAST/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.ei)->.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#else /f!= h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNSPEC]6 8h"L56">  810" class="line" name=.c8much 87mantic 1s.c#L144" ifib_semantgotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.ei)->.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#elt     id90" c t_h="+cod#elt     idt">/f!= h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNSPEC]6 8hre58ef="810" class="line" name=.c8[ ...88cu RTN_UNICASTscope  =4 8h  85
#elsef7b_seman6is="sref">RTN_UNICASTRTN_UNICASTscope  =4 8hhr56{
RTN_MULTICA6T8p o57 hre810" class="line" name=.c8which88t_h="+code=fi" cla t_=fi" class="HSIZef">fit;#else /* fg="+c/fib_semantinehref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IP6f7b_seman6is="sref">RTN_UNICAST  810" class="line" name=.c85">  88G_IP5sib_seman5LTIPATH" class="sref">CO5N8pG_55e" n8E0" class="line" name=.c8Code 88linattrle ="+code=fi"si4#else /* i" clascdscope="+co&#eloif ifib_semantics#eloif);
/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICAST/f= h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICAST /f= h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*csi ~0x);
<6f7b_seman6is="sref">RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST  89 class="lin_la="+codecu"s.c#L144" ifnh#L85_h_gwe" id="L61" clanh_gw="+c cs4#elt     id90" c t_h="+cod#elt     idt">/f= h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICAST/6O3AL" cla6s="sref">RTN_UNSPEC]6 8=  89 class="lincfg               "+c/fib_semantinehref="+code=CONFIG_IPi" clascdscope="+co&ilasib_semantics.c#L14ilasib_G_IPclanh_gw="+c cs4srefhref="+code=CONiref);
RTN_UNICASTscope  =4 8  o57 hre810" class="line" name=.c8     89eans #ifdefss/fib_semanticsCONFIG_IP_ROUTE_MULTIPATHid="L90" c la="CONFIG_IP_ROUTE_MULTIPATHef">f7b_seman6is="sref">RTN_UNICAST  810" class="line" name=.c8     89s.c#L144" ifib_semantclass="resultre.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elweight /f= 16f7b_seman6is="sref">RTN_UNICASTscope  =4 8  h53f="+810" class="line" name=.c8 EE  899) {  d=h="+c4=scope" c4lass="sref">scope  =4 9="l60ef="910" class="line" name=.c915"> 90);
<5itics.c#L5nfo_hash_size" class="sr5e9
/fib_semannecsa op_semantics.c#L14fhcsa op_);
<[" class="checkdcs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*RTN_MULTICA6T9
2a60f="+9c0" class="line" name=.c9lass=90 class="lin_la="+codea t_h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c./fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c./fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_MULTICA6T9
3a60f="+9c0" class="line" name=.c9comme90" ifib_semantics.c#L111111111gotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTRTN_MULTICA6T9,
<606="+9ode=RT_Sass="sref">rt/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*RTN_MULTICA6T9
7<606="+9o0" class="line" name=.c9e=CON90s.c#L144" ifib_semantcaseLL90"> .c#L144" clN_UNICASTd(*RTN_MULTICA6T9
8<606="+9o0" class="line" name=.c9e="+c90" ifib_semantics.c#L1caseLL90"> .c#L144" clN_LOCAb_semantics.c#L1clN_LOCAb.c#L:d3AL" cla6class="sref">RTN_MULTICA6T9
9<606="+9o0" class="line" name=.c9in_h=90emantics.c#L14, 1);
 .c#L144" clN_BROADCASTd(*RTN_MULTICA6T9,
<61href9"net/ipv4/fib_seclass="s9ef">_9rcu  .c#L144" clN_ANYCASTd(*RTN_MULTICA6T9,
 .c#L144" clN_MULTICASTd(*RTN_MULTICA6T9,2a60f="+9code=EHOSTUNREAC>errr19"9class91 class="lin_la="+code=fi" clabreak6f7b_seman6is="sref">RTN_UNICAST#else RTN_MULTICA6T9,"l604="+9"net/ipv4/fib_ssssssssss9errr191 class="lincfg               gotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICASTscope  =4 9,
<606="+9NNNNult="+code=fi" class9"res=91t_h="+code=fi4=scope" c4lass="sref">scope  =4 9,7<606="+9ode=RT_SCOPE_LINNNNNNNNN9antic91G_IP5sib_seman5LTIPATH" class="sref">CO5N9T"l60e" n9.c#L144" ifib_semantic 19.c#L194" ifib_semanta t_h90">/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*  1lascdnlHSIZ="+ccl_SCOPE_HOSTd(*RTN_MULTICA6T9,= 60f="+9ode=RT_S".c#L144" ifib_s9manti91emantics.c#L14, 1);
RTN_UNICAST(*/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(* .c#L144" cl_SCOPE_HOSTd(*RTN_MULTICA6T9="l61ef="9code=EHO>errr19" class="9incfg92 class="lin_la="+code=fi" class="HSIZef">fit;#else /* fg="+c/fib_semantinehref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IP6f7b_seman6is="sref">RTN_UNICAST61">  9ode=RT_SCOPE_UNImantic 09.c#L192mantif7b_seman6is="sref">RTN_UNICAST
RTN_LOCAL] 6 9=5l604="+9href="nesref">__rcu 9_h="+92t;#else /fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /6d3AL" cla6class="sref">RTN_MULTICA6T9=
<606="+9="L97"> ref="+code=rtabr9ibini92t_h="+code=fi" cla t_b_semantgotoss/fib_semantics, 1 navalid="L90" c la=", 1 navalG_IP6f7b_seman6is="sref">RTN_UNICAST#ifdef (*RTN_UNICAST)92" ifib_semantics.c#L1h90">/fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
)->)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#eloif ifib_semantics#eloif);
<56f7b_seman6is="sref">RTN_UNICASTRTN_UNICAST /fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
 .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 9error199 clas93t;RTN_UNICASTRTN_MULTICA6T961">  94#else /fib_semanchange_ibxthop_semantics.c#L14change_ibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T9<
<61href9"net/ipv4/fib_se>errL90"9id="L93 class="lincfg               "+c/fib_semantiib_semantics.c#L14, 1);
)o!"s)-&.hhref="+code=CONFIG_IPcl0">)o!"s)-&  xthop>t;RTN_UNICAST/fib_semanib_semantics.c#L14, 1);
RTN_UNSPEC]6 9<
<606="+9 147        if (!s.c9L21" 93t_h="+code=fi" cla t_b_semant cla_la9gotoss/fib_semanticsfailure ifib_semantics.ailure);
<6f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTerrr19"9class93" ifib_semant}=scope" c4lass="sref">scope  =4 9<= 60f="+9ode=RT_SCOPE_NOWWWWWWWWW9lass=93ref">f7b_seman6is="sref">RTN_UNICAST/fib_semannehref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
<) 6d3AL" cla6class="sref">RTN_MULTICA6T9nam54f="+9ode=RT_SCOPE_UNICOPEEEEE9/a>)-9gt;/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.(*/fib_semanclN_LOCAb_semantics.c#L1clN_LOCAb.c#Lf|| a t_h_o6cs.c#L90cs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_MULTICA6T9n"l61ef="9code=EHOSTUNREAC ifib_se9errr19" class="lin_la="+code    "+c/fib_semantifehref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
/fib_semancs.c#L85"cdnlHSIZ="+code=fi" clascdnlHSIZ="+c.RTN_UNICAST/fib_seman_UNt_+c10/ cted(*)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
<) != h90">/fib_semanclN_LOCAb_semantics.c#L1clN_LOCAb.c#L)f7b_seman6is="sref">RTN_UNICAST(*RTN_UNICAST)-9gt;RTN_UNICAST/fib_semanchange_ibxthop_semantics.c#L14change_ibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T9sa 53ntic9#endif.c#L144" ifib_sema9tics.94" ifib_semantics.c#L1ascdscope="+co&ilasname"update_ih_s+c10 ifib_semantics.hcsname"update_ih_s+c10);
<9"+c/fib_semantine_semantics.c#L14, 1);
)o!"s)-&  xthop>t;RTN_UNICASTRTN_UNICAST 55e" n9.c#L144" ifib_semantics.9#L14,95);
<5itics.c#L5nfo_hash_size" class="sr5e9aam54f="+9ode=RT_SCOPE_UNIL90" id=9L90" 9 t_h="s/fib_semantics   k_ia hrcfg         l  k_iaG_IP:d3AL" cla6class="sref">RTN_MULTICA6T9ae=54ef="9ef="+cod"esref">__rcu)o!"s)-&oa href="+code=CONoFIG_IPfg="+c/fib_semantief">findsname ifib_semantics.hcsfindsnamea_la9"+c/fib_semantia href="+code=CONFIG_IP)6f7b_seman6is="sref">RTN_UNICAST/fib_semanoa href="+code=CONoFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T9=me54href9"net/ipvmantic 0s.c#L1449 ifib95net/ipv4/fib_semantic0">)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasd ad90" c t_h="+codilasd adG_IPfg=16f7b_seman6is="sref">RTN_UNICASTRTN_UNICAST        if (!s.c9L21" 95t_h="+code=fi" cla t_h90">/fib_semanoa href="+code=CONoFIG_IPi" clascdscope="+co&ilas reee=CO0" c t_h="+codilas reee=CG_IP++6f7b_seman6is="sref">RTN_UNICAST/fib_semanoa href="+code=CONoFIG_IP6f7b_seman6is="sref">RTN_UNICAST  95" ifib_semant}=scope" c4lass="sref">scope  =4 9i h53f="+910" class="line" name=.c9Picnt95ref">f7b_seman6is="sref">RTN_UNICAST)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilas reee=CO0" c t_h="+codilas reee=CG_IP++6f7b_seman6is="sref">RTN_UNICAST  96t_h="+code=fi0">)o!"s)-&atomicsnac ifib_semanticsatomicsnaca_la9" nam0">)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilasclnte=CO0" c t_h="+codilasclnte=CG_IP)6f7b_seman6is="sref">RTN_UNICAST)o!"s)-&spin_lock_b;)o!"s)-&necsname"lock ifib_semantics.hcsname"lockG_IP)6f7b_seman6is="sref">RTN_UNICAST)o!"s)-&hlist_+c1_h ad90" c t_h="+codhlist_+c1_h ada_la9" nam0">)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilashash hrcfg         ilashash);
RTN_UNICAST)o!"s)-&necsname"hash hrcfg         ilasname"hash);
<[" class="checkdilasname"hashf" ifib_semantics.lasname"hashf"a_la9"+c/fib_semantia href="+code=CONFIG_IP)])6f7b_seman6is="sref">RTN_UNICAST/fib_semannehref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
<) 6d3AL" cla6class="sref">RTN_MULTICA6T9a> 56 hre910" class="line" name=.c9b) ga96"L90" c_la="+code=fi"            idconfig="hlist_h ad90" c t_h="+codhlist_h adclassc     idconfig="h ad90" c t_h="+codh adclas6f7b_seman6is="sref">RTN_UNICASTCO5N9=G_55e" n9E0" class="line" name=.c9c) If96" ifib_semantics.c#L1ascdscope="+co&h ad90" c t_h="+codh adclasfg=" nam0">)o!"s)-&necsname"l+c10hash hrcfg         necsname"l+c10hash);
<[" class="checkdilasl+c10"hashf" ifib_semantics.lasl+c10"hashf"a_la9"+c/fib_semantia href="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
<)]6f7b_seman6is="sref">RTN_UNICAST)o!"s)-&nehref="+code=CONFIG_IPi" clascdscope="+co&ilaslhash hrcfg         necslhash);
)o!"s)-&h ad90" c t_h="+codh adclas)6f7b_seman6is="sref">RTN_UNICASTscope  =4 9h"L56f="+910" class="line" name=.c95">  97t_h="+code=fi0">)o!"s)-&change_ibxthop_semantics.c#L14change_ibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T9hRTN_UNICASTRTN_UNICAST  97net/if7b_seman6is="sref">RTN_UNICASTt;RTN_UNICASTRTN_UNICASTib_nade/"hashf" ifib_semantics.lasib_nade/"hashf");
<9"+c/fib_semantinexthop>t;sfnade/a>)->RTN_UNICAST)o!"s)-&necsname"ib_hash hrcfg         necsname"ib_hash);
<[" class="checkdhash hrcfg         hash);
<]6f7b_seman6is="sref">RTN_UNICAST)o!"s)-&nexthop>t;)o!"s)-&h ad90" c t_h="+codh adclas)6f7b_seman6is="sref">RTN_UNICAST RTN_UNICAST)o!"s)-&spin_unlock_b;)o!"s)-&necsname"lock ifib_semantics.hcsname"lockG_IP)6f7b_seman6is="sref">RTN_UNICAST  98 class="lin_lreturn_h90">/fib_semannehref="+code=CONFIG_IP6f7b_seman6is="sref">RTN_UNICASTRTN_UNICASTRTN_MULTICA6T9hhr56{
RTN_UNICAST  910" class="line" name=.c95">  98G_IP5h90">/fib_semannailure ifib_semantics.ailure);
<:d3AL" cla6class="sref">RTN_MULTICA6T9hG_55e" n9E0" class="line" name=.c9Code 98linattrle ="+a t_h90">/fib_semannehref="+code=CONFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T9h h53f="+910" class="line" name=.c9consi98emantics.c#L14, 1);
<"+c/fib_semanti.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasd ad90" c t_h="+codilasd adG_IPfg=16f7b_seman6is="sref">RTN_UNICAST RTN_UNICASTscope  =4 9 hr59  99 clas=scope" c4lass="sref">scope  =4 9 "L57f="+910" class="line" name=.c9Norma99" ifib_semantreturn_h90">/fib_semanERR_PTR_semantics.c#L1aRR_PTRa_la9"+c/fib_semanti, 1id="L90" c la=", 1clas)6f7b_seman6is="sref">RTN_UNICAST  99 clas}=scope" c4lass="sref">scope  =4 9 hr56{
scope  =4 9  o57 hre910" class="line" name=.c9     99eans e=fi" class="checkdilasdumpsname ifib_semantics.hcsdumpsnamea_la9            idconfig="sk_bufCO0" c t_h="+codsk_bufCclassc     idconfig="skbO0" c t_h="+codskb);
)o!"s)-&" id="L90" c la="+ cla_la 0">ei)->portid90" c t_h="+codportid);
)o!"s)-&" id="L90" c la="+ cla_la 0">ei)->seqO0" c t_h="+codseq);
RTN_UNICAST  910" class="line" name=.c9     99s.c#L144" ifib_semantt_0">ei)->" id="L90" c la="+ cla_la 0">ei)->tcsnd90" c t_h="+codtcsnd);
)o!"s)-&"8d="L90" c la="+ 8a_la 0">ei)->tcted(*)o!"s)-&__be id="L90" c la="+__be ia_la 0">ei)->ds_semantics.c#L14ds_.c#Lcle=fi" class="checkdds__le" ifib_semanticsds__le");
)o!"s)-&"8d="L90" c la="+ 8a_la 0">ei)->to_semantics.c#L14to_);
RTN_UNICASTfiname ifib_semantics.hcsnamea_lasc     idconfig=".hhref="+code=CONFIG_IPclunsignedae=fi" class="checkdi ~0xFF) |ected(* ~0x);
<)f7b_seman6is="sref">RTN_UNICASTRTN_MULTICA6T10="l60ef="10="l6class="line" name=.c10="l>10=" ifib_semantcla_me90">ei)->3AL" cla6class="sref">RTN_MULTICA6T10=1l60ef="10=0" class="line" name=.c10=0">10=1 ifib_semantcla_me90">ei)->rtmsg hrcfg         rtmsga_lasc     idconfig="rtm hrcfg         rtmG_IP6f7b_seman6is="sref">RTN_UNICAST10= clas=scope" c4lass="sref">scope  =4 10=3l60ef="10=0" class="line" name=.c10=0">10=mantic 1s.c#L0">)o!"s)-&nlh hrcfg         #lh);
)o!"s)-&portid90" c t_h="+codportid);
)o!"s)-&seqO0" c t_h="+codseq);
)o!"s)-&. ~0xFF) |ected(* ~0x);
<)6f7b_seman6is="sref">RTN_UNICAST10=net/ipv4/fib_a t_h90">/fib_seman.lh hrcfg         #lh);
 .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 10=5l60ef="10=0" class="line" name=.c10=0">10=t;(*RTN_UNICAST10=="L25s.c#L58" 5id="L58" class="line" na5m10=7l60ef="10=0" class="line" name=.c10=0">10=7) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPfg="+c/fib_semanti#lmsg_datasemantics.c#L14#lmsg_data);
<9"+c/fib_semantinlh hrcfg         #lh);
<)6f7b_seman6is="sref">RTN_UNICAST10=8) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_family hrcfg         rtm_familyG_IPfg="+c/fib_semantiAF_INETd(*RTN_UNICAST10=9) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_ds__le" ifib_semanticsrtm_ds__le"G_IPfg="+c/fib_semantids__le" ifib_semanticsds__le");
<6f7b_seman6is="sref">RTN_UNICAST10"n) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_src_le" ifib_semanticsrtm_src_le"G_IPfg=06f7b_seman6is="sref">RTN_UNICAST10"t_h="+code=fi0">)o!"s)-&rtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_to_semantics.c#L14rtm_to_G_IPfg="+c/fib_semantito_semantics.c#L14to_);
<6f7b_seman6is="sref">RTN_UNICAST10"2et/ipv4/fib_a t_h90">/fib_semantcsnd90" c t_h="+codtcsnd);
< < 2565de=scope"5class="sref">scope  5 1013l60ef="104#else /fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_tabled(*RTN_UNICAST10"net/ipv4/fib_elsef7b_seman6is="sref">RTN_UNICAST(*RTN_UNICAST10"6et/ipv4/fib_a t_h90">/fib_seman#la_puti" id="L90" c la="+#la_puti" ia_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&RTA_TABLEd(*)o!"s)-&tcsnd90" c t_h="+codtcsnd);
<)5de=scope"5class="sref">scope  5 1017l60ef="10ode=RT_SCOPE_LINNNNNNNNN10ode>10"s.c#L144" ifib_semantgotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICAST10"8) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_tcted(*RTN_UNICAST10"9) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_. ~0xFF) |ected(rtm_. ~0xG_IPfg="+c/fib_semanti.hhref="+code=CONFIG_IPi" clascdscope="+co&ilas. ~0xFF) |ected(*las. ~0x);
<6f7b_seman6is="sref">RTN_UNICAST10.c) {  d=h="+ch90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_sected(*RTN_UNICAST)o!"s)-&rtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_protocolid="L90" c la="rtm_protocolG_IPfg="+c/fib_semanti.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasprotocolid="L90" c la="ilasprotocol);
<6f7b_seman6is="sref">RTN_UNICASTscope  =4 1023l60ef="10ode=RT_SCOPE_UNImantic 010ode>10.3) {  d=h="+ca t_h90">/fib_semanrtm hrcfg         rtmG_IPi" clascdscope="+co&rtm_ds__le" ifib_semanticsrtm_ds__le"G_IPf" nam" nam=scope" c4lass="sref">scope  =4 1024l60ef="105
)o!"s)-&RTA_DSTd(*)o!"s)-&ds_semantics.c#L14ds_.c#L)5de=scope"5class="sref">scope  5 1025l60ef="10href="nesref">__rcu 10hre>10.t;RTN_UNICAST ref="+code=rtabr10="L>10.6et/ipv4/fib_a t_h90">/fib_seman.hhref="+code=CONFIG_IPi" clascdscope="+co&ilaspriority hrcfg         ilaspriorityG_IPf" nam" nam=scope" c4lass="sref">scope  =4 1027l60ef="108#ifdef /fib_seman#la_puti" id="L90" c la="+#la_puti" ia_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&RTA_PRIORITYd(*)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilaspriority hrcfg         ilaspriorityG_IP)5de=scope"5class="sref">scope  5 1028l60ef="10me="L129L90" id="L90" cs10me=>10." ifib_semantics.c#L1gotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICAST/fib_semanrtis=l  k_putimetrST< ifib_semanticsrtis=l  k_putimetrST)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasmetrST< ifib_semanticsilasmetrSTRTN_UNSPEC]6 103"l60ef="10.c#L144" ifib_semantics.10.c#>10.c ifib_semantics.c#L1gotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICASTscope  =4 1032l60ef="10code=EHOSTUNREACCCCCCCCC10cod>10.2et/ipv4/fib_a t_h90">/fib_semanfehref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
scope  =4 1033l60ef="104#else )o!"s)-&RTA_PREFSRCd(*)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
<)6O3AL" cla6s="sref">RTN_UNSPEC]6 1034l60ef="10"net/ipv4/fib_se>errL90"10"ne>10." c t_h="+code=fi" clgotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICAST10.t;/fib_semannehref="+code=CONFIG_IPi" clascdscope="+co&ilaspa             RTNilaspa );
RTN_MULTICA6T10.6l60ef="10 147        if (!s.c10 14>10.t_h="+code=fi" cla t_a t_h90">/fib_seman.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#else /f" nam" nam=scope" c4lass="sref">scope  =4 1037l60ef="10ode=RT_SCOPE_LINr19" cla10ode>10.mantic 1s.c#L144" ifib_ses/fib_semantics#la_putibe id="L90" c la="+#la_putibe ia_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&RTA_GATEWAYd(*)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#else /)6O3AL" cla6s="sref">RTN_UNSPEC]6 1038l60ef="10.c#L144" ifib_se>errr19"10.c#>10." ifib_semantics.c#L111fi" clgotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICAST/fib_seman.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#eloif ifib_semantics#eloif);
scope  =4 104"l60ef="10.c#L144" ifib_semantics.10.c#>10.cantic 1s.c#L144" ifib_ses/fib_semantics#la_puti" id="L90" c la="+#la_puti" ia_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&RTA_OIFd(*)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IPi" clascdscope="+co&#eloif ifib_semantics#eloif);
<56O3AL" cla6s="sref">RTN_UNSPEC]6 1041l60ef="10ode=RT_SCOPE_UNICOPEEEEE10ode>10.t;RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST/f" nam" nam=scope" c4lass="sref">scope  =4 1044l60ef="10#ifdefected(*10.net/ipv4/fib_semantic d=hs/fib_semantics#la_puti" id="L90" c la="+#la_puti" ia_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&RTA_FLOWd(*)o!"s)-&.hhref="+code=CONFIG_IPi" clascdscope="+co&ilasic            RTNilasicG_IP[0]nld=mecs.cs.c#L1#elt     id90" c t_h="+cod#elt     idt">/56O3AL" cla6s="sref">RTN_UNSPEC]6 1045l60ef="10ode=RT_SCOPE_UNICOPE="ne10ode>10.t;RTN_UNICAST10.eans #endif=scope" c4lass="sref">scope  =4 10.7l60ef="10ode=RT_SCOPE_LINCOPE_UNI10ode>10.mantic 1s.c#L}=scope" c4lass="sref">scope  =4 10.8l60ef="10#endif.c#L144" ifib_sema10#en>10.8/a>
#ifdefss/fib_semanticsCONFIG_IP_ROUTE_MULTIPATHid="L90" c la="CONFIG_IP_ROUTE_MULTIPATHef">f7b_seman6is="sref">RTN_UNICAST10.9) {  d=h="+ca t_h90">/fib_semannehref="+code=CONFIG_IPi" clascdscope="+co&ilaspa             RTNilaspa );
  11) 6d3AL" cla6class="sref">RTN_MULTICA6T105"l60ef="10.c#L144" ifib_semantics.10.c#>10.c;ei)->rtibxthop ifib_semanticsrtisxthop;RTN_UNICAST10.t;ei)->RTN_UNICAST__rcu10. clas=scope" c4lass="sref">scope  =4 1053l60ef="10#endif.c#L144" ifib_sema10#en>10." ifib_semantics.c#L1h90">/fib_semanmib_semantics.c#LmiNK="fg="+c/fib_semanti#la_nest_start )o!"s)-&RTA_MULTIPATHid="L90" c la="RTA_MULTIPATHt">/56f7b_seman6is="sref">RTN_UNICAST10.net/ipv4/fib_semantica t_h90">/fib_semanmib_semantics.c#LmiNK="fgULL90"> .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 1055l60ef="10".c#L144" ifib_semantics10".c>10.t;RTN_UNICAST10.mantic 1s.c#L144" ifi" class="checkd"linibxthop_semantics.c#L14"linibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP) 6d3AL" cla6class="sref">RTN_MULTICA6T1058l60ef="10E0" class="line" name=/*10E0">10." ifib_semantics.c#L111fi" cl     idconfig="rtic            RTNrtic);
RTN_UNICAST10.emantics.c#L14, 1);
/fib_semanrtic            RTNrtic);
 .c#L144" ifib_semantics.c#L14, 1);
<5de=scope"5class="sref">scope  5 106"l60ef="1010" class="line" name=.c1010">1010mantics.c#L14, 1);
RTN_UNICAST1011clas=scope" c4lass="sref">scope  =4 1062l60ef="1010" class="line" name=.c1010">101 class="lin_la="+code=fi" clah90">/fib_semanrtic            RTNrtic);
RTN_UNICAST101mantic 1s.c#L144" ificode=fi"h90">/fib_semanrtic            RTNrtic);
RTN_UNICAST101 class="lincfg               "+c/fib_semantirtic            RTNrtic);
RTN_UNICAST101t;scope  =4 1016l60ef="1010" class="line" name=.c1010">101t_h="+code=fi" cla t_________a t_h90">/fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /f" nam" nam=scope" c4lass="sref">scope  =4 1067l60ef="1010" class="line" name=.c1010">101mantic 1s.c#L144" ifib_se        "+c/fib_semanti#la_putibe id="L90" c la="+#la_putibe ia_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&RTA_GATEWAYd(*)o!"s)-&.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#else /65de=scope"5class="sref">scope  5 1068l60ef="10E0" class="line" name=.c10E0">101" ifib_semantics.c#L111fi" clllllllllgotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICAST1019/a>
#ifdefss/fib_semanticsCONFIG_IP_ROUTE_CLASSIDid="L90" c la="CONFIG_IP_ROUTE_CLASSIDef">f7b_seman6is="sref">RTN_UNICAST1010_h="+code=fi" cla t_________a t_h90">/fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elt     id90" c t_h="+cod#elt     idt">/f" nam" nam=scope" c4lass="sref">scope  =4 1071l60ef="1010" class="line" name=.c1010">101t;)o!"s)-&RTA_FLOWd(*)o!"s)-&.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elt     id90" c t_h="+cod#elt     idt">/65de=scope"5class="sref">scope  5 1072l60ef="1010" class="line" name=.c1010">101 class="lin_la="+code=fi" clallllllllgotoss/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<6f7b_seman6is="sref">RTN_UNICAST1013ans #endif=scope" c4lass="sref">scope  =4 1074l60ef="1010" class="line" name=.c1010">101 class="lincfg               "ies invalid _semant conflength of rtis=l  k h ader + att0ibutesisemantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1015l60ef="1010" class="line" name=.c1010">101t;RTN_UNICAST101t_h="+code=fi" cla t_}ts.cs.c#L144" ifind"linibxthop_semantics.c#L14ind"linibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP)6f7b_seman6is="sref">RTN_UNICAST101G_IP5sib_seman5LTIPATH" class="sref">CO5N1018l60ef="10E0" class="line" name=.c10E0">101" ifib_semantics.c#L1h90">/fib_seman.la_nest_ind )o!"s)-&mib_semantics.c#LmiNK=")6f7b_seman6is="sref">RTN_UNICAST101emantics.c#L1}f7b_seman6is="sref">RTN_UNICAST1010ans #endif=scope" c4lass="sref">scope  =4 1081l60ef="1010" class="line" name=.c1010">101t;/fib_seman#lmsg_ind )o!"s)-&nlh hrcfg         #lh);
<)6f7b_seman6is="sref">RTN_UNICAST101 clas=scope" c4lass="sref">scope  =4 1083l60ef="1010" class="line" name=.c1010">1013ans s/fib_semantics#la_putinailure ifib_semantics#la_putinailure);
<:d3AL" cla6class="sref">RTN_MULTICA6T1014l60ef="1010" class="line" name=.c1010">101 class="lincfh90">/fib_seman#lmsg_cancelid="L90" c la="#lmsg_cancela_la9"+c/fib_semantiskbO0" c t_h="+codskb);
)o!"s)-&nlh hrcfg         #lh);
<)6f7b_seman6is="sref">RTN_UNICAST1015;(*RTN_UNICAST101t_h="}f7b_seman6is="sref">RTN_UNICAST101G_IP5sib_seman5LTIPATH" class="sref">CO5N1088l60ef="10E0" class="line" name=.c10E0">101" ifi"ies invalid _semant conmantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1089l60ef="1010" class="line" name=.c1010">1019 ifi"ies invalid _semant c * Update FIB_a :mantic6OCAL" cla6s="sref">RTN_LOCAL] 6 109"l60ef="1010" class="line" name=.c1010">1010 ifi"ies invalid _semant c * - local +c10ess disappeared i" cl we must delete all the antriesmantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1091l60ef="1010" class="line" name=.c1010">1011 ifi"ies invalid _semant c * "+referring tosit.mantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1092l60ef="1010" class="line" name=.c1010">1012 ifi"ies invalid _semant c * - ib_nce went down i" cl we must shutdown all ibxthop_lgoing viasit.mantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1093l60ef="1010" class="line" name=.c1010">1013 ifi"ies invalid _semant c *emantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1094l60ef="1010" class="line" name=.c1010">101 clase=fi" class="checkdilassync_down_+c10 ifib_semantics.hcssync_down_+c10a_la9cla_me90">ei)->)o!"s)-&__be id="L90" c la="+__be ia_la 0">ei)->locald="L90" c la="+local);
<5de=scope"5class="sref">scope  5 1095l60ef="1010" class="line" name=.c1010">1015;RTN_MULTICA6T1096l60ef="1010" class="line" name=.c1010">1016et/ipv4/fib_a=fi" class="checkdre_semantics.c#L14r 1);
RTN_UNICAST101mantic 1s.c#Lunsignedae=fi" class="checkdhash hrcfg         hash);
l+c10"hashf" ifib_semantics.lasl+c10"hashf"a_la9"+c/fib_semantilocald="L90" c la="+local);
<56f7b_seman6is="sref">RTN_UNICAST101" ifib_semant            idconfig="hlist_h ad90" c t_h="+codhlist_h adclassc     idconfig="h ad90" c t_h="+codh adclasfg=" nam0">)o!"s)-&necsname"l+c10hash hrcfg         necsname"l+c10hash);
<[" class="checkdhash hrcfg         hash);
<]6f7b_seman6is="sref">RTN_UNICAST1019 ifib_semant            idconfig="hlist_nig=90" c t_h="+codhlist_nig=);
RTN_UNICAST11=" ifib_semantcla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICAST1101clas=scope" c4lass="sref">scope  =4 11=2l60ef="11=0" class="line" name=.c11=0">1102et/ipv4/fib_a t_h90">/fib_semanfecsname"l+c10hash hrcfg         necsname"l+c10hash);
 .c#L144" ifib_semantics.c#L14, 1);
< || 0">ei)->locald="L90" c la="+local);
RTN_UNSPEC]6 11=3l60ef="11=0" class="line" name=.c11=0">110mantic 1s.c#L144" ifireturn_06f7b_seman6is="sref">RTN_UNICAST110net/if7b_seman6is="sref">RTN_UNICAST11=t;)o!"s)-&nig=90" c t_h="+codnig=);
)o!"s)-&h ad90" c t_h="+codh adclascl0">)o!"s)-&.haslhash hrcfg         necslhash);
<) 6d3AL" cla6class="sref">RTN_MULTICA6T11=6l60ef="11=0" class="line" name=.c11=0">110t_h="+code=fi" cla t_a t_a t_h_o6cs.c#L90  t_eqO0" c t_h="+cod  t_eqa_la9"+c/fib_semantia href="+code=CONFIG_IPi" clascdscope="+co&ilaspe_semantics.c#L14ilaspe_G_IPcl0">)o!"s)-&ne_semantics.c#L14, 1);
<65de=scope"5class="sref">scope  5 11=7l60ef="11=0" class="line" name=.c11=0">110mantic 1s.c#L144" ifib_se    coCASnue6f7b_seman6is="sref">RTN_UNICAST110" ifib_semantics.c#L1a t_h90">/fib_semanfehref="+code=CONFIG_IPi" clascdscope="+co&ilasprhrsrc ifib_semantics.hcsa hrsrc);
 .c#L144" locald="L90" c la="+local);
<5 6d3AL" cla6class="sref">RTN_MULTICA6T11=9l60ef="11=0" class="line" name=.c11=0">110emantics.c#L14, 1);
/fib_semanfehref="+code=CONFIG_IPi" clascdscope="+co&ilas. ~0xFF) |ected(*las. ~0x);
< |g="+c/fib_semantiRTNH_F_DEADid="L90" c la="RTNH_F_DEADG_IP6f7b_seman6is="sref">RTN_UNICAST1110_h="+code=fi" cla t_________" class="checkdre_semantics.c#L14r 1);
<++6f7b_seman6is="sref">RTN_UNICAST111t;RTN_UNICAST11"2et/ipv4/fib_}f7b_seman6is="sref">RTN_UNICAST11"" ifib_semantreturn_h90">/fib_semanre_semantics.c#L14r 1);
<6f7b_seman6is="sref">RTN_UNICAST111 clas}=scope" c4lass="sref">scope  =4 1115l60ef="11ode=RT_SCOPE_UNIIIIIIIII11ode>111t;scope  =4 11"6l60ef="11NNNNult="+code=fi" class11NNN>111eans e=fi" class="checkdilassync_down_ib_semantics.c#L14ilassync_down_ib_a_la9cla_me90">ei)->scope  5 1117l60ef="11ode=RT_SCOPE_LINNNNNNNNN11ode>11"s.c#L6d3AL" cla6class="sref">RTN_MULTICA6T11"8l60ef="11.c#L144" ifib_semantic 111.c#>11"8) {  d=h="+ca=fi" class="checkdre_semantics.c#L14r 1);
RTN_UNICAST11"9) {  d=h="+ca=fi" class="checkdtected(*RTN_UNICAST112" ifib_semantcla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICASTib_nade/"hashf" ifib_semantics.lasib_nade/"hashf");
<9"+c/fib_semantiib_semantics.c#L14ib_a_laclanh_gw="+c cs4sfnade/a>)->RTN_UNICASTei)->hlist_h ad90" c t_h="+codhlist_h adclassc     idconfig="h ad90" c t_h="+codh adclasfg=" nam0">)o!"s)-&necsname"ib_hash hrcfg         necsname"ib_hash);
<[" class="checkdhash hrcfg         hash);
<]6f7b_seman6is="sref">RTN_UNICASTRTN_UNICAST11.net/ipv4/fib_cla_me90">ei)->necsic            RTNilasicG_IPsc     idconfig="nc#L85_h_gwe" id="L61" 6f7b_seman6is="sref">RTN_UNICAST__rcu 11hre>112t;scope  =4 1126l60ef="11="L97"> ref="+code=rtabr11="L>11.6et/ipv4/fib_a t_h90">/fib_seman.liceO0" c t_h="+cod"lice);
<5de=scope"5class="sref">scope  5 1127l60ef="118#ifdef RTN_UNICAST11." ifif7b_seman6is="sref">RTN_UNICAST)o!"s)-&nig=90" c t_h="+codnig=);
)o!"s)-&h ad90" c t_h="+codh adclascl0">)o!"s)-&#elhash hrcfg         #elhash);
<5 6d3AL" cla6class="sref">RTN_MULTICA6T113"l60ef="11.c#L144" ifib_semantics.11.c#>11.c ifib_semantics.c#L1cla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICASTRTN_UNICASTscope  =4 1133l60ef="114#else RTN_UNICASTerrL90"11"ne>11." c t_h="+code=fi" cla t_h90">/fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
< !g="+c/fib_semantidb_semantics.c#L14ib_a_la || 0">ei)->nehref="+code=CONFIG_IPfgg="+c/fib_semantia hv_fehref="+code=CONa hv_feG_IP5de=scope"5class="sref">scope  5 1135l60ef="11ode=RT_SCOPE_UNICOPE="ne11ode>113t;RTN_UNICASTRTN_UNICAST11.mantic 1s.c#L144" ifi" class="checkdd ad90" c t_h="+codd adclassg=06f7b_seman6is="sref">RTN_UNICASTerrr19"11.c#>11." ifib_semantics.c#L1" class="checkdchangenibxthop_semantics.c#L14changenibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP5 6d3AL" cla6class="sref">RTN_MULTICA6T1139l60ef="11ode=RT_SCOPE_NOWWWWWWWWW11ode>11.emantics.c#L14, 1);
/fib_seman.exthop>t;scope  5 114"l60ef="11.c#L144" ifib_semantics.11.c#>11.cantic 1s.c#L144" ifib_se.c#L144" ifi" class="checkdd ad90" c t_h="+codd adclas++6f7b_seman6is="sref">RTN_UNICAST/fib_seman.exthop>t;scope  =4 1142l60ef="11code=EHOSTUNREAC ifib_se11cod>114 class="lin_la="+code=fi" clallllllll90">ei)->t;(*RTN_MULTICA6T11.3l60ef="11ode=RT_SCOPE_UNICOPE_UNI11ode>11." ifib_semantics.c#L1fi" clallllllll90">ei)->t;RTN_UNICASTf7b_seman6is="sref">RTN_UNICAST11.t;ei)->spin_lock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST114t_h="+code=fi" cla t_________lllllll90">ei)->fehref="+code=CONFIG_IPi" clascdscope="+co&ilaspowe0 ifib_semantics.hcspowe0_h="+-g="+c/fib_semanti#exthop>t;RTN_UNICASTei)->t;RTN_UNICAST114" ifib_semantics.c#L111fi" clllllllll0">ei)->spin_unlock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST11.9) { #endif=scope" c4lass="sref">scope  =4 115"l60ef="11.c#L144" ifib_semantics.11.c#>11.c;ei)->d ad90" c t_h="+codd adclas++6f7b_seman6is="sref">RTN_UNICAST11.t;scope  =4 1152l60ef="11ef="+cod"esref">__rcu115
#ifdefss/fib_semanticsCONFIG_IP_ROUTE_MULTIPATHid="L90" c la="CONFIG_IP_ROUTE_MULTIPATHef">f7b_seman6is="sref">RTN_UNICAST11." ifib_semantics.c#L111111111a t_h90">/fib_seman.liceO0" c t_h="+cod"lice);
  11 " nam" nam90">ei)->t;RTN_MULTICA6T1154l60ef="11"net/ipvmantic 0s.c#L14411"ne>11.net/ipv4/fib_semantic11fi" clllllllll0">ei)->d ad90" c t_h="+codd adclasfg="+c/fib_semanti.hhref="+code=CONFIG_IPi" clascdscope="+co&ilaspa             RTNilaspa );
<6f7b_seman6is="sref">RTN_UNICAST11.t;RTN_UNICASTscope  =4 1157l60ef="118#ifdef scope  =4 1158l60ef="11E0" class="line" name=/*11E0">11." ifib_semantics.c#L1}ts.cs.c#L144" ifind"linibxthop_semantics.c#L14ind"linibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP)=scope" c4lass="sref">scope  =4 1159l60ef="1110" class="line" name=.c1110">11.emantics.c#L14, 1);
/fib_semand ad90" c t_h="+codd adclasfgg="+c/fib_semanti.hhref="+code=CONFIG_IPi" clascdscope="+co&ilaspa             RTNilaspa );
<5 6d3AL" cla6class="sref">RTN_MULTICA6T116"l60ef="1110" class="line" name=.c1110">1110mantics.c#L14, 1);
RTN_UNICAST116t;RTN_UNICAST111 class="lin_la="+code}=scope" c4lass="sref">scope  =4 1163l60ef="1110" class="line" name=.c1110">111mantic 1s.c#L}=scope" c4lass="sref">scope  =4 1164l60ef="1110" class="line" name=.c1110">116net/if7b_seman6is="sref">RTN_UNICAST1165;RTN_UNICAST116t_h="}f7b_seman6is="sref">RTN_UNICAST116G_IP5sib_seman5LTIPATH" class="sref">CO5N1168l60ef="11E0" class="line" name=.c11E0">116" ifi"ies invalid _semant con Must be invokedae=side of s iRCU protectedaregion.  *emantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1169l60ef="1110" class="line" name=.c1110">1119/a>
void ascdscope="+co&ilasselectlibfaultFF) |ected(*lasselectlibfaulta_la9cla_me90">ei)->necsresultFF) |ected(*lasresult);
scope  =4 117"l60ef="1110" class="line" name=.c1110">1110_h="6d3AL" cla6class="sref">RTN_MULTICA6T1171l60ef="1110" class="line" name=.c1110">111t;ei)->necsname hrcfg         necsname);
RTN_UNICAST1172 ifib_semantcla_me90">ei)->list_h ad90" c t_h="+codlist_h adclassc     idconfig="fa_h ad90" c t_h="+codfa_h adG_IPfg="+c/fib_semantiressemantics.c#L14r sG_IPi" clascdscope="+co&ia_h ad90" c t_h="+codfa_h adG_IP6f7b_seman6is="sref">RTN_UNICAST1173) {  d=h="+c            idconfig=">RTNtabled(*RTNtableclassc     idconfig="tbO0" c t_h="+codtbG_IPfg="+c/fib_semantiressemantics.c#L14r sG_IPi" clascdscope="+co&tabled(*RTN_UNICAST111 class="lincfe=fi" class="checkdorde0 ifib_semanticsorde0G_IPfg=-1cl0">)o!"s)-&mantsid/a>)->RTN_UNICAST111t;RTNaliaxFF) |ected(*lasaliaxclassc     idconfig="fa90" c t_h="+codfaclas6f7b_seman6is="sref">RTN_UNICAST117="L25s.c#L58" 5id="L58" class="line" na5m1177l60ef="1110" class="line" name=.c1110">117mantic 1s.c#L0">ei)->list_"lineach_antry_rcu90" c t_h="+codlist_"lineach_antry_rcua_la9"+c/fib_semantiaa90" c t_h="+codfaclascl0">)o!"s)-&.a_h ad90" c t_h="+codfa_h adG_IPcl0">)o!"s)-&.a_list90" c t_h="+codfa_list);
<5 6d3AL" cla6class="sref">RTN_MULTICA6T1118l60ef="11E0" class="line" name=.c11E0">111" ifib_semantics.c#L1cla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICAST111emantf7b_seman6is="sref">RTN_UNICAST1180mantics.c#L14, 1);
/fib_seman.ext_fehref="+code=CONibxt_feclasi" clascdscope="+co&ilastected(*RTN_UNICAST118t;(*scope  =4 1182l60ef="1110" class="line" name=.c1110">118 class="lin_la="+code=fi" clacoCASnue6f7b_seman6is="sref">RTN_UNICAST1113ans f7b_seman6is="sref">RTN_UNICAST118" c t_h="+code=fi" cla t_h90">/fib_seman.ext_fehref="+code=CONibxt_feclasi" clascdscope="+co&ilaspriority hrcfg         ilaspriorityG_IPf">  1"+c/fib_semantiressemantics.c#L14r sG_IPi" clascdscope="+co&ihhref="+code=CONFIG_IPi" clascdscope="+co&ilaspriority hrcfg         ilaspriorityG_IP)f7b_seman6is="sref">RTN_UNICAST118t;RTN_UNICAST118t_h="+code=fi" cla t_a t_a t_h_o6cs.c#L90  xt_fehref="+code=CONibxt_feclasi" clascdscope="+co&ilasic            RTNilasicG_IP[0]nld=mecs.cs.c#L1#else /f||f7b_seman6is="sref">RTN_UNICAST118mantic 1s.c#L144" ifib_ses/fib_semantics# xt_fehref="+code=CONibxt_feclasi" clascdscope="+co&ilasic            RTNilasicG_IP[0]nld=mecs.cs.c#L1#eltected(*RTN_UNICAST118" ifib_semantics.c#L111fi" clcoCASnue6f7b_seman6is="sref">RTN_UNICAST118emantf7b_seman6is="sref">RTN_UNICAST1190mantics.c#L14, 1);
<     idconfig=">RTNaliax_accessed90" c t_h="+codfRTNaliax_accesseda_la9"+c/fib_semantiaa90" c t_h="+codfaclas)6f7b_seman6is="sref">RTN_UNICAST1191clas=scope" c4lass="sref">scope  =4 1192l60ef="1110" class="line" name=.c1110">119 class="lin_la="+codea t_h90">/fib_semanfehref="+code=CONFIG_IPfgULL90"> .c#L144" ifib_semantics.c#L14, 1);
<5 6d3AL" cla6class="sref">RTN_MULTICA6T1193l60ef="1110" class="line" name=.c1110">119" ifib_semantics.c#L111111111a t_h90">/fib_semanibxt_fehref="+code=CONibxt_feclasf!g="+c/fib_semantiressemantics.c#L14r sG_IPi" clascdscope="+co&a href="+code=CONFIG_IP)=scope" c4lass="sref">scope  =4 1194l60ef="1110" class="line" name=.c1110">119net/ipv4/fib_semantic11fi" clllllllllbreak6f7b_seman6is="sref">RTN_UNICAST119t;)o!"s)-&orde0 ifib_semanticsorde0G_IP,=" nam0">)o!"s)-&mantsresort RTN_UNICAST119t_h="+code=fi" cla t_________lllllll99999999999999" nam0">)o!"s)-&mantsid/a>)->)o!"s)-&tbO0" c t_h="+codtbG_IPi" clascdscope="+co&tblibfaultFF) |ected(tblibfaultG_IP)5 6d3AL" cla6class="sref">RTN_MULTICA6T1197l60ef="1110" class="line" name=.c1110">119mantic 1s.c#L144" ifib_se    0">ei)->necsresult_assig" ifib_semantics.lasresult_assig"a_la9"+c/fib_semantiressemantics.c#L14r sG_IPcl0">)o!"s)-&.hhref="+code=CONFIG_IP)6f7b_seman6is="sref">RTN_UNICAST119" ifib_semantics.c#L111fi" cl0">)o!"s)-&tbO0" c t_h="+codtbG_IPi" clascdscope="+co&tblibfaultFF) |ected(tblibfaultG_IPfg="+c/fib_semantiorde0 ifib_semanticsorde0G_IP6f7b_seman6is="sref">RTN_UNICAST119emantics.c#L14, 1);
(outG_IP6f7b_seman6is="sref">RTN_UNICAST1200mantics.c#L14, 1);
<}f7b_seman6is="sref">RTN_UNICAST120t;RTN_UNICAST120 class="lin_la="+code"+c/fib_semantiorde0 ifib_semanticsorde0G_IP++6f7b_seman6is="sref">RTN_UNICAST120mantic 1s.c#L}=scope" c4lass="sref">scope  =4 12=4l60ef="12=0" class="line" name=.c12=0">120net/if7b_seman6is="sref">RTN_UNICAST12=t;/fib_semanorde0 ifib_semanticsorde0G_IPf<= 0 || 0">ei)->nehref="+code=CONFIG_IPfgg="+c/fib_semantiifib_semantics.c#L14, 1);
<5 6d3AL" cla6class="sref">RTN_MULTICA6T12=6l60ef="12=0" class="line" name=.c12=0">120t_h="+code=fi" cla t_0">)o!"s)-&tbO0" c t_h="+codtbG_IPi" clascdscope="+co&tblibfaultFF) |ected(tblibfaultG_IPfg=-16f7b_seman6is="sref">RTN_UNICAST120mantic 1s.c#L144" ifigotoss/fib_semanticsoutFF) |ected(outG_IP6f7b_seman6is="sref">RTN_UNICAST120" ifib_semant}=scope" c4lass="sref">scope  =4 12=9l60ef="12=0" class="line" name=.c12=0">120emantf7b_seman6is="sref">RTN_UNICAST1210_h="+code=fia t_a t_h_o6cs.c#L90neasibtectlibatc            RTNilasibtectlibatca_la9"+c/fib_semantia href="+code=CONFIG_IPcl0">)o!"s)-&orde0 ifib_semanticsorde0G_IP,=" nam0">)o!"s)-&mantsresort )o!"s)-&mantsid/a>)->RTN_UNICAST121t;)o!"s)-&tbO0" c t_h="+codtbG_IPi" clascdscope="+co&tblibfaultFF) |ected(tblibfaultG_IP)5 6d3AL" cla6class="sref">RTN_MULTICA6T12"2l60ef="12code=EHOSTUNREAC>errr19"12cod>121 class="lin_la="+code"+c/fib_semantinecsresult_assig" ifib_semantics.lasresult_assig"a_la9"+c/fib_semantiressemantics.c#L14r sG_IPcl0">)o!"s)-&.hhref="+code=CONFIG_IP)6f7b_seman6is="sref">RTN_UNICAST121" ifib_semantics.="+c     idconfig="tbO0" c t_h="+codtbG_IPi" clascdscope="+co&tblibfaultFF) |ected(tblibfaultG_IPfg="+c/fib_semantiorde0 ifib_semanticsorde0G_IP6f7b_seman6is="sref">RTN_UNICAST121net/ipv4/fib_semanticgotoss/fib_semanticsoutFF) |ected(outG_IP6f7b_seman6is="sref">RTN_UNICASTscope  =4 12"6l60ef="12NNNNult="+code=fi" class12NNN>121="L25s.c#L58" 5id="L58" class="line" na5m1217l60ef="12ode=RT_SCOPE_LINNNNNNNNN12ode>1217;/fib_semanmantsid/a>)->RTN_UNSPEC]6 12"8l60ef="12.c#L144" ifib_semantic 112.c#>121" ifib_semantics.c#L1" class="checkdnecsresult_assig" ifib_semantics.lasresult_assig"a_la9"+c/fib_semantiressemantics.c#L14r sG_IPcl0">)o!"s)-&mantsresort RTN_UNICAST12"9) {  d=h="+c     idconfig="tbO0" c t_h="+codtbG_IPi" clascdscope="+co&tblibfaultFF) |ected(tblibfaultG_IPfg="+c/fib_semantimantsid/a>)->RTN_UNICAST122" ifis/fib_semanticsoutFF) |ected(outG_IP:d3AL" cla6class="sref">RTN_MULTICA6T1221l60ef="12#ifdefected(*122t;RTN_UNICASTscope  =4 1223l60ef="12ode=RT_SCOPE_UNImantic 012ode>1223ans f7b_seman6is="sref">RTN_UNICAST122net/i#ifdefss/fib_semanticsCONFIG_IP_ROUTE_MULTIPATHid="L90" c la="CONFIG_IP_ROUTE_MULTIPATHef">f7b_seman6is="sref">RTN_UNICAST__rcu 12hre>122t;scope  =4 1226l60ef="12="L97"> ref="+code=rtabr12="L>12.6et/i"ies invalid _semant conmantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1227l60ef="128#ifdef RTN_LOCAL] 6 1228l60ef="12me="L129L90" id="L90" cs12me=>122" ifi"ies invalid _semant c * It takes sense only on multipath routes.mantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1229l60ef="12ode=RT_SCOPE_NOW        12ode>1229 ifi"ies invalid _semant c *emantic6OCAL" cla6s="sref">RTN_LOCAL] 6 123"l60ef="12.c#L144" ifib_semantics.12.c#>12.c ifie=fi" class="checkdilassync_uib_semantics.c#Lilassync_uia_la9cla_me90">ei)->RTN_UNSPEC]6 1231l60ef="12ode=RT_SCOPE_UNI>error1912ode>123t;RTN_MULTICA6T1232l60ef="12code=EHOSTUNREACCCCCCCCC12cod>1232 ifib_semantcla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICAST12." ifib_semantunsignedae=fi" class="checkdhash hrcfg         hash);
<6f7b_seman6is="sref">RTN_UNICASTerrL90"12"ne>12." c t_h="+codcla_me90">ei)->hlist_h ad90" c t_h="+codhlist_h adclassc     idconfig="h ad90" c t_h="+codh adclas6f7b_seman6is="sref">RTN_UNICAST123t;RTN_UNICASTei)->necsic            RTNilasicG_IPsc     idconfig="nc#L85_h_gwe" id="L61" 6f7b_seman6is="sref">RTN_UNICAST12.mantic 1s.c#La=fi" class="checkdre_semantics.c#L14r 1);
<6f7b_seman6is="sref">RTN_UNICASTerrr19"12.c#>123" ifif7b_seman6is="sref">RTN_UNICAST(IFF_UPG_IP)5f7b_seman6is="sref">RTN_UNICAST12.cantic 1s.c#L144" ifireturn_06f7b_seman6is="sref">RTN_UNICASTscope  =4 1242l60ef="12code=EHOSTUNREAC ifib_se12cod>124 class="lin_l     idconfig="a hv_fehref="+code=CONa hv_feG_IPfg="+c/fib_semantiifib_semantics.c#L14, 1);
<6f7b_seman6is="sref">RTN_UNICASTib_nade/"hashf" ifib_semantics.lasib_nade/"hashf");
<9"+c/fib_semantiib_semantics.c#L14ib_a_laclanh_gw="+c cs4sfnade/a>)->RTN_UNICAST/fib_semanh ad90" c t_h="+codh adclasfg=" nam0">)o!"s)-&necsname"ib_hash hrcfg         necsname"ib_hash);
<[" class="checkdhash hrcfg         hash);
<]6f7b_seman6is="sref">RTN_UNICAST12.t;RTN_UNICAST124="L25s.c#L58" 5id="L58" class="line" na5m1247l60ef="12ode=RT_SCOPE_LINCOPE_UNI12ode>124mantic 1s.c#L0">ei)->hlist_"lineach_antry hrcfg         hlist_"lineach_antrya_la9"+c/fib_semantinc#L85_h_gwe" id="L61" cl0">)o!"s)-&nig=90" c t_h="+codnig=);
)o!"s)-&h ad90" c t_h="+codh adclascl0">)o!"s)-&#elhash hrcfg         #elhash);
<5 6d3AL" cla6class="srclass="line" na5m1248l60ef="12#endif.c#L144" ifib_sema12#en>124" ifib_semantics.c#L1cla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICAST124emantics.c#L14, 1);
RTN_UNICAST12.c;RTN_UNICAST12.t;RTN_UNICAST__rcu125 class="lin_la="+codea t_h90">/fib_seman.c#L85_h_gwe" id="L61" clanh_gw="+c cs4#elib_semantics.c#L14#elib_);
< !g="+c/fib_semantidb_semantics.c#L14ib_a_la || 0">ei)->nehref="+code=CONFIG_IPfgg="+c/fib_semantia hv_fehref="+code=CONa hv_feG_IP5de=scope"5class="sref">scope  5 1253l60ef="12#endif.c#L144" ifib_sema12#en>12." ifib_semantics.c#L111111111coCASnue6f7b_seman6is="sref">RTN_UNICAST125net/if7b_seman6is="sref">RTN_UNICAST12.t;RTN_UNICASTRTN_UNICAST125mantic 1s.c#L144" ifi" class="checkdchangenibxthop_semantics.c#L14changenibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP5 6d3AL" cla6class="sref">RTN_MULTICA6T1258l60ef="12E0" class="line" name=/*12E0">12." ifib_semantics.c#L1a="+codea t_a9"+c/fib_semanti.exthop>t;RTN_MULTICA6T1259l60ef="1210" class="line" name=.c1210">12.emantics.c#L14, 1);
<+code=fi" cla t_" class="checkdaliv=90" c t_h="+codaliv=61" ++6f7b_seman6is="sref">RTN_UNICAST1210mantics.c#L14, 1);
RTN_UNICAST126t;scope  =4 1262l60ef="1210" class="line" name=.c1210">121 class="lin_la="+codea="+codea t_"+c/fib_semanti.exthop>t;scope  =4 1263l60ef="1210" class="line" name=.c1210">126" ifib_semantics.c#L1fi" clallllla9"+c/fib_semanti.exthop>t;. ~0xFF) |ected(* ~0x);
(IFF_UPG_IP)5f7b_seman6is="sref">RTN_UNICAST126net/ipv4/fib_semantic11fi" clllllllllcoCASnue6f7b_seman6is="sref">RTN_UNICAST126t;t;RTN_UNICAST126t_h="+code=fi" cla t_________lllla t_h_o6cs.c#L90_snalib__get_rtnld="L90" c la="+_snalib__get_rtnl);
<9"+c/fib_semantiib_semantics.c#L14ib_a_la)5f7b_seman6is="sref">RTN_UNICAST126mantic 1s.c#L144" ifib_se        lll9coCASnue6f7b_seman6is="sref">RTN_UNICAST126" ifib_semantics.c#L111fi" cl0">)o!"s)-&aliv=90" c t_h="+codaliv=61" ++6f7b_seman6is="sref">RTN_UNICAST126emantics.c#L14, 1);
/fib_semanspin_lock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST1270mantics.c#L14, 1);
t;RTN_UNICAST127t;t;G_IPi" clascdscope="+co&#el. ~0xFF) |ected(#el. ~0x);
RTN_UNICAST127 class="lin_la="+codea="+codeh90">/fib_semanspin_unlock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST127" ifib_semantics.c#L1}ts.cs.c#L144" ifind"linibxthop_semantics.c#L14ind"linibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP)=scope" c4lass="sref">scope  =4 1274l60ef="1210" class="line" name=.c1210">127net/if7b_seman6is="sref">RTN_UNICAST127t;  105 6d3AL" cla6class="sref">RTN_MULTICA6T1276l60ef="1210" class="line" name=.c1210">127t_h="+code=fi" cla t_________ t_h_o6cs.c#L90nehref="+code=CONFIG_IPi" clascdscope="+co&ilas. ~0xFF) |ected(*las. ~0x);
< " nam= ~"+c/fib_semantiRTNH_F_DEADid="L90" c la="RTNH_F_DEADG_IP6f7b_seman6is="sref">RTN_UNICAST127mantic 1s.c#L144" ifib_se    0">ei)->re_semantics.c#L14r 1);
<++6f7b_seman6is="sref">RTN_UNICAST121" ifib_semantics.c#L1}=scope" c4lass="sref">scope  =4 1279l60ef="1210" class="line" name=.c1210">127emantics.c#L1}=scope" c4lass="sref">scope  =4 128"l60ef="1210" class="line" name=.c1210">128c;RTN_UNICAST128t;RTN_UNICAST1282 ifi}=scope" c4lass="sref">scope  =4 1283l60ef="1210" class="line" name=.c1210">1213ans f7b_seman6is="sref">RTN_UNICAST128" c t"ies invalid _semant conmantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1285l60ef="1210" class="line" name=.c1210">128t;RTN_LOCAL] 6 1286l60ef="1210" class="line" name=.c1210">1286et/i"ies invalid _semant c * fair weightedaroute distribution.mantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1287l60ef="1210" class="line" name=.c1210">128s.c#L"ies invalid _semant c *emantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1288l60ef="12E0" class="line" name=.c12E0">128" ifivoid ascdscope="+co&ilasselectlmultipathFF) |ected(*lasselectlmultipatha_la9cla_me90">ei)->necsresultFF) |ected(*lasresult);
scope  =4 1289l60ef="1210" class="line" name=.c1210">128emant6d3AL" cla6class="sref">RTN_MULTICA6T129"l60ef="1210" class="line" name=.c1210">129" ifib_semantcla_me90">ei)->necsname hrcfg         necsname);
RTN_UNICAST129t;RTN_UNICAST129 clas=scope" c4lass="sref">scope  =4 1293l60ef="1210" class="line" name=.c1210">129" ifib_semant" class="checkdspin_lock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST129net/ipv4/fib_a t_h90">/fib_semanfehref="+code=CONFIG_IPi" clascdscope="+co&ilaspowe0 ifib_semantics.hcspowe0_h="+<= 05 6d3AL" cla6class="sref">RTN_MULTICA6T1295l60ef="1210" class="line" name=.c1210">129t;RTN_UNICAST129t_h="+code=fi" cla t_" class="checkdchangenibxthop_semantics.c#L14changenibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP5 6d3AL" cla6class="sref">RTN_MULTICA6T1297l60ef="1210" class="line" name=.c1210">129mantic 1s.c#L144" ifib_se    a t_a9"+c/fib_semanti.exthop>t;RTN_MULTICA6T1298l60ef="12E0" class="line" name=.c12E0">129" ifib_semantics.c#L111fi" cl" cla t_" class="checkdpowe0 ifib_semanticspowe0G_IPs+g="+c/fib_semanti#exthop>t;RTN_UNICAST129emantics.c#L14, 1);
t;G_IPi" clascdscope="+co&#elpowe0 ifib_semantics#elpowe0G_IPsg="+c/fib_semanti#exthop>t;RTN_UNICAST1300mantics.c#L14, 1);
<<<<<<<<<}=scope" c4lass="sref">scope  =4 13=1l60ef="13=0" class="line" name=.c13=0">130t;RTN_UNICAST130 class="lin_la="+code"+c/fib_semantifehref="+code=CONFIG_IPi" clascdscope="+co&ilaspowe0 ifib_semantics.hcspowe0_h="+g="+c/fib_semantiaowe0 ifib_semanticspowe0G_IP6f7b_seman6is="sref">RTN_UNICAST130" ifib_semantics.c#L1a t_h90">/fib_semanpowe0 ifib_semanticspowe0G_IPs<= 05 6d3AL" cla6class="sref">RTN_MULTICA6T13=4l60ef="13=0" class="line" name=.c13=0">130net/ipv4/fib_semantic11fi" clh90">/fib_semanspin_unlock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST130t;RTN_LOCAL] 6 13=6l60ef="13=0" class="line" name=.c13=0">130t_h="+code=fi" cla t_11fi" clh90">/fib_semanressemantics.c#L14r sG_IPi" clascdscope="+co&#elteld="L90" c la="+#eltelG_IPsg=06f7b_seman6is="sref">RTN_UNICAST130mantic 1s.c#L144" ifiiiiiiiiireturn6f7b_seman6is="sref">RTN_UNICAST130" ifib_semantics.c#L1}=scope" c4lass="sref">scope  =4 13=9l60ef="13=0" class="line" name=.c13=0">130emantics.c#L1}=scope" c4lass="sref">scope  =4 131"l60ef="13"net/ipv4/fib_seclass="s13"ne>131c;RTN_UNICAST1311clas=scope" c4lass="sref">scope  =4 13"2l60ef="13code=EHOSTUNREAC>errr19"13cod>131 class="lin_l"ies invalid _semant con w should be random number [0..fii" cl.hcspowe0-1],mantic6OCAL" cla6s="sref">RTN_LOCAL] 6 13"3l60ef="134#else RTN_LOCAL] 6 1314l60ef="13"net/ipv4/fib_ssssssssss13"ne>131" c t"ies invalid _semant c         *emantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1315l60ef="13ode=RT_SCOPE_UNIIIIIIIII13ode>131t;scope  =4 13"6l60ef="13NNNNult="+code=fi" class13NNN>131t_h="+code=fi" class="checkde RTN_UNICASTCO5N13"8l60ef="13.c#L144" ifib_semantic 113.c#>131" ifib_semant" class="checkdchangenibxthop_semantics.c#L14changenibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP5 6d3AL" cla6class="sref">RTN_MULTICA6T13"9l60ef="13ode=RT_S".c#L144" ifib_s13ode>131emantics.c#L14, 1);
t;RTN_MULTICA6T132"l60ef="13.c#L144" ifib_semantics.13.c#>1320mantics.c#L14, 1);
<<<<<" class="checkdt;RTN_MULTICA6T1321l60ef="13#ifdefected(*132t;t;G_IPi" clascdscope="+co&#elpowe0 ifib_semantics#elpowe0G_IP6f7b_seman6is="sref">RTN_UNICASTRTN_MULTICA6T1323l60ef="13ode=RT_SCOPE_UNImantic 013ode>132" ifib_semantics.c#L1fi" clalllll<<<<" class="checkdt;RTN_UNICAST132net/ipv4/fib_semantic11fi" clllllllll0">ei)->fehref="+code=CONFIG_IPi" clascdscope="+co&ilaspowe0 ifib_semantics.hcspowe0_h="--6f7b_seman6is="sref">RTN_UNICAST__rcu 13hre>132t;/fib_semanressemantics.c#L14r sG_IPi" clascdscope="+co&#elteld="L90" c la="+#eltelG_IPsg=ascdscope="+co&#eteld="L90" c la="+#etelG_IP6f7b_seman6is="sref">RTN_UNICAST ref="+code=rtabr13="L>132t_h="+code=fi" cla t_________lllllll9h90">/fib_semanspin_unlock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST132mantic 1s.c#L144" ifib_se        lll9return6f7b_seman6is="sref">RTN_UNICAST132" ifib_semantics.c#L111fi" cl}=scope" c4lass="sref">scope  =4 1329l60ef="13ode=RT_SCOPE_NOW        13ode>132emantics.c#L14, 1);
<}=scope" c4lass="sref">scope  =4 133"l60ef="13.c#L144" ifib_semantics.13.c#>1330mantics.c#L1}ts.cs.c#L144" ifind"linibxthop_semantics.c#L14ind"linibxthop_a_la9"+c/fib_semantia href="+code=CONFIG_IP)6f7b_seman6is="sref">RTN_UNICASTscope  =4 1332l60ef="13code=EHOSTUNREACCCCCCCCC13cod>133 class="lin_l"ies invalid _semant con Race9coCdition:aroute has just be_see d ad. *emantic6OCAL" cla6s="sref">RTN_LOCAL] 6 1333l60ef="134#else RTN_UNICASTerrL90"13"ne>133 class="lincfh90">/fib_semanspin_unlock_b;)o!"s)-&necsmultipath_lock            RTNilasmultipath_lock);
<)6f7b_seman6is="sref">RTN_UNICAST133t;scope  =4 1336l60ef="13 147        if (!s.c13 14>13.t_h="#endif=scope" c4lass="sref">scope  =4 1337l60ef="13ode=RT_SCOPE_LINr19" cla13ode>13.manti


The original LXR software by the scope" c4http://source"lige.lassprojects/lx0 >LXR _semunityG_IP, this experimantal version by scope" c4mailto:lx0@E_Lux.no">lx0@E_Lux.noG_IP.
lx0.E_Lux.no kindly hostedaby scope" c4http://www.redpill-E_Lpro.no">Redpill L_Lpro ASG_IP, provider of L_Lux9coCsulting and operations ser_nces since91995.