> > titl>LXR /linu/Ddocumengatio/networktig/ifenslave.c> >< titl>> /> body class="full" t>> divtclass=" divtclass="
> sp n=class="_lx_ titlg"> sp n=class="_lx_logos">a" href=".">LXR sp n=id="currmen_pathg"> a" href=".o/linux+v3.7.4/"/linu/Ddocumengatio/networktig/ifenslave.c> /sp n"> !-- --"> sp n=id="_lx_prien"> t> .for anctio="+prien=Ddocumengatio/networktig/ifenslave.c"; method"'pos"=id="prien_.forg"> buttion type=submis"=class="prien""> img" src="../.static/gfxprienn.png"alt="Prien""> /buttiot> /.for"> /sp n"> sp n=id="_lx_save"> t> .for anctio="+save=Ddocumengatio/networktig/ifenslave.c"; method"'pos"=id="save_.forg"> buttion type=submis"=class="save""> img" src="../.static/gfxsaven.png"alt="Save""> /buttiot> /.for"> /sp n"> /sp n"> > divtclass="_lx_umeug"> sp n=class="_lx_verstiog"> a"> " href=".o/linux+v3.73/Ddocumengatio/networktig/ifenslave.cg"> img" src="../.static/gfxlefnn.png"alt="<<s"> .for anctio="Ddocumengatio/networktig/ifenslave.c"; method".geg"> sp n=id="ver_.selecg"> sselech nam="v"=id="v"= on chngp="updtae_verstiog thi, '"http://lxr.linux.no/linux+v3.7.4', '/linu', '', 'Ddocumengatio/networktig/ifenslave.c');""> > opction.valu="v4.10"> "> v4.10 > opction.valu="v4.9.11"> "> v4.9.11 > opction.valu="v4.9.10"> "> v4.9.10 > opction.valu="v4.9.9"> "> v4.9.9 > opction.valu="v4.9.8"> "> v4.9.8 > opction.valu="v4.9.7"> "> v4.9.7 > opction.valu="v4.9.6"> "> v4.9.6 > opction.valu="v4.9.5"> "> v4.9.5 > opction.valu="v4.9.4"> "> v4.9.4 > opction.valu="v4.9.3"> "> v4.9.3 > opction.valu="v4.9.2"> "> v4.9.2 > opction.valu="v4.9.1"> "> v4.9.1 > opction.valu="v4.9"> "> v4.9 > opction.valu="v4.8.17"> "> v4.8.17 > opction.valu="v4.8.16"> "> v4.8.16 > opction.valu="v4.8.15"> "> v4.8.15 > opction.valu="v4.8.14"> "> v4.8.14 > opction.valu="v4.8.13"> "> v4.8.13 > opction.valu="v4.8.12"> "> v4.8.12 > opction.valu="v4.8.11"> "> v4.8.11 > opction.valu="v4.8.10"> "> v4.8.10 > opction.valu="v4.8.9"> "> v4.8.9 > opction.valu="v4.8.8"> "> v4.8.8 > opction.valu="v4.8.7"> "> v4.8.7 > opction.valu="v4.8.6"> "> v4.8.6 > opction.valu="v4.8.5"> "> v4.8.5 > opction.valu="v4.8.4"> "> v4.8.4 > opction.valu="v4.8.3"> "> v4.8.3 > opction.valu="v4.8.2"> "> v4.8.2 > opction.valu="v4.8.1"> "> v4.8.1 > opction.valu="v4.8"> "> v4.8 > opction.valu="v4.7.10"> "> v4.7.10 > opction.valu="v4.7.9"> "> v4.7.9 > opction.valu="v4.7.8"> "> v4.7.8 > opction.valu="v4.7.7"> "> v4.7.7 > opction.valu="v4.7.6"> "> v4.7.6 > opction.valu="v4.7.5"> "> v4.7.5 > opction.valu="v4.7.4"> "> v4.7.4 > opction.valu="v4.7.3"> "> v4.7.3 > opction.valu="v4.7.2"> "> v4.7.2 > opction.valu="v4.7.1"> "> v4.7.1 > opction.valu="v4.7"> "> v4.7 > opction.valu="v4.6.7"> "> v4.6.7 > opction.valu="v4.6.6"> "> v4.6.6 > opction.valu="v4.6.5"> "> v4.6.5 > opction.valu="v4.6.4"> "> v4.6.4 > opction.valu="v4.6.3"> "> v4.6.3 > opction.valu="v4.6.2"> "> v4.6.2 > opction.valu="v4.6.1"> "> v4.6.1 > opction.valu="v4.6"> "> v4.6 > opction.valu="v4.5.7"> "> v4.5.7 > opction.valu="v4.5.6"> "> v4.5.6 > opction.valu="v4.5.5"> "> v4.5.5 > opction.valu="v4.5.4"> "> v4.5.4 > opction.valu="v4.5.3"> "> v4.5.3 > opction.valu="v4.5.2"> "> v4.5.2 > opction.valu="v4.5.1"> "> v4.5.1 > opction.valu="v4.5"> "> v4.5 > opction.valu="v4.4.50"> "> v4.4.50 > opction.valu="v4.4.49"> "> v4.4.49 > opction.valu="v4.4.48"> "> v4.4.48 > opction.valu="v4.4.47"> "> v4.4.47 > opction.valu="v4.4.46"> "> v4.4.46 > opction.valu="v4.4.45"> "> v4.4.45 > opction.valu="v4.4.44"> "> v4.4.44 > opction.valu="v4.4.43"> "> v4.4.43 > opction.valu="v4.4.42"> "> v4.4.42 > opction.valu="v4.4.41"> "> v4.4.41 > opction.valu="v4.4.40"> "> v4.4.40 > opction.valu="v4.4.39"> "> v4.4.39 > opction.valu="v4.4.38"> "> v4.4.38 > opction.valu="v4.4.37"> "> v4.4.37 > opction.valu="v4.4.36"> "> v4.4.36 > opction.valu="v4.4.35"> "> v4.4.35 > opction.valu="v4.4.34"> "> v4.4.34 > opction.valu="v4.4.33"> "> v4.4.33 > opction.valu="v4.4.32"> "> v4.4.32 > opction.valu="v4.4.31"> "> v4.4.31 > opction.valu="v4.4.30"> "> v4.4.30 > opction.valu="v4.4.29"> "> v4.4.29 > opction.valu="v4.4.28"> "> v4.4.28 > opction.valu="v4.4.27"> "> v4.4.27 > opction.valu="v4.4.26"> "> v4.4.26 > opction.valu="v4.4.25"> "> v4.4.25 > opction.valu="v4.4.24"> "> v4.4.24 > opction.valu="v4.4.23"> "> v4.4.23 > opction.valu="v4.4.22"> "> v4.4.22 > opction.valu="v4.4.21"> "> v4.4.21 > opction.valu="v4.4.20"> "> v4.4.20 > opction.valu="v4.4.19"> "> v4.4.19 > opction.valu="v4.4.18"> "> v4.4.18 > opction.valu="v4.4.17"> "> v4.4.17 > opction.valu="v4.4.16"> "> v4.4.16 > opction.valu="v4.4.15"> "> v4.4.15 > opction.valu="v4.4.14"> "> v4.4.14 > opction.valu="v4.4.13"> "> v4.4.13 > opction.valu="v4.4.12"> "> v4.4.12 > opction.valu="v4.4.11"> "> v4.4.11 > opction.valu="v4.4.10"> "> v4.4.10 > opction.valu="v4.4.9"> "> v4.4.9 > opction.valu="v4.4.8"> "> v4.4.8 > opction.valu="v4.4.7"> "> v4.4.7 > opction.valu="v4.4.6"> "> v4.4.6 > opction.valu="v4.4.5"> "> v4.4.5 > opction.valu="v4.4.4"> "> v4.4.4 > opction.valu="v4.4.3"> "> v4.4.3 > opction.valu="v4.4.2"> "> v4.4.2 > opction.valu="v4.4.1"> "> v4.4.1 > opction.valu="v4.4"> "> v4.4 > opction.valu="v4.3.6"> "> v4.3.6 > opction.valu="v4.3.5"> "> v4.3.5 > opction.valu="v4.3.4"> "> v4.3.4 > opction.valu="v4.3.3"> "> v4.3.3 > opction.valu="v4.3.2"> "> v4.3.2 > opction.valu="v4.3.1"> "> v4.3.1 > opction.valu="v4.3"> "> v4.3 > opction.valu="v4.2.8"> "> v4.2.8 > opction.valu="v4.2.7"> "> v4.2.7 > opction.valu="v4.2.6"> "> v4.2.6 > opction.valu="v4.2.5"> "> v4.2.5 > opction.valu="v4.2.4"> "> v4.2.4 > opction.valu="v4.2.3"> "> v4.2.3 > opction.valu="v4.2.2"> "> v4.2.2 > opction.valu="v4.2.1"> "> v4.2.1 > opction.valu="v4.2"> "> v4.2 > opction.valu="v4.1.38"> "> v4.1.38 > opction.valu="v4.1.37"> "> v4.1.37 > opction.valu="v4.1.36"> "> v4.1.36 > opction.valu="v4.1.35"> "> v4.1.35 > opction.valu="v4.1.34"> "> v4.1.34 > opction.valu="v4.1.33"> "> v4.1.33 > opction.valu="v4.1.32"> "> v4.1.32 > opction.valu="v4.1.31"> "> v4.1.31 > opction.valu="v4.1.30"> "> v4.1.30 > opction.valu="v4.1.29"> "> v4.1.29 > opction.valu="v4.1.28"> "> v4.1.28 > opction.valu="v4.1.27"> "> v4.1.27 > opction.valu="v4.1.26"> "> v4.1.26 > opction.valu="v4.1.25"> "> v4.1.25 > opction.valu="v4.1.24"> "> v4.1.24 > opction.valu="v4.1.23"> "> v4.1.23 > opction.valu="v4.1.22"> "> v4.1.22 > opction.valu="v4.1.21"> "> v4.1.21 > opction.valu="v4.1.20"> "> v4.1.20 > opction.valu="v4.1.19"> "> v4.1.19 > opction.valu="v4.1.18"> "> v4.1.18 > opction.valu="v4.1.17"> "> v4.1.17 > opction.valu="v4.1.16"> "> v4.1.16 > opction.valu="v4.1.15"> "> v4.1.15 > opction.valu="v4.1.14"> "> v4.1.14 > opction.valu="v4.1.13"> "> v4.1.13 > opction.valu="v4.1.12"> "> v4.1.12 > opction.valu="v4.1.11"> "> v4.1.11 > opction.valu="v4.1.10"> "> v4.1.10 > opction.valu="v4.1.9"> "> v4.1.9 > opction.valu="v4.1.8"> "> v4.1.8 > opction.valu="v4.1.7"> "> v4.1.7 > opction.valu="v4.1.6"> "> v4.1.6 > opction.valu="v4.1.5"> "> v4.1.5 > opction.valu="v4.1.4"> "> v4.1.4 > opction.valu="v4.1.3"> "> v4.1.3 > opction.valu="v4.1.2"> "> v4.1.2 > opction.valu="v4.1.1"> "> v4.1.1 > opction.valu="v4.1"> "> v4.1 > opction.valu="v4.0.9"> "> v4.0.9 > opction.valu="v4.0.8"> "> v4.0.8 > opction.valu="v4.0.7"> "> v4.0.7 > opction.valu="v4.0.6"> "> v4.0.6 > opction.valu="v4.0.5"> "> v4.0.5 > opction.valu="v4.0.4"> "> v4.0.4 > opction.valu="v4.0.3"> "> v4.0.3 > opction.valu="v4.0.2"> "> v4.0.2 > opction.valu="v4.0.1"> "> v4.0.1 > opction.valu="v4.0"> "> v4.0 > opction.valu="v3.19.8"> "> v3.19.8 > opction.valu="v3.19.7"> "> v3.19.7 > opction.valu="v3.19.6"> "> v3.19.6 > opction.valu="v3.19.5"> "> v3.19.5 > opction.valu="v3.19.4"> "> v3.19.4 > opction.valu="v3.19.3"> "> v3.19.3 > opction.valu="v3.19.2"> "> v3.19.2 > opction.valu="v3.19.1"> "> v3.19.1 > opction.valu="v3.19"> "> v3.19 > opction.valu="v3.18.48"> "> v3.18.48 > opction.valu="v3.18.47"> "> v3.18.47 > opction.valu="v3.18.46"> "> v3.18.46 > opction.valu="v3.18.45"> "> v3.18.45 > opction.valu="v3.18.44"> "> v3.18.44 > opction.valu="v3.18.43"> "> v3.18.43 > opction.valu="v3.18.42"> "> v3.18.42 > opction.valu="v3.18.41"> "> v3.18.41 > opction.valu="v3.18.40"> "> v3.18.40 > opction.valu="v3.18.39"> "> v3.18.39 > opction.valu="v3.18.38"> "> v3.18.38 > opction.valu="v3.18.37"> "> v3.18.37 > opction.valu="v3.18.36"> "> v3.18.36 > opction.valu="v3.18.35"> "> v3.18.35 > opction.valu="v3.18.34"> "> v3.18.34 > opction.valu="v3.18.33"> "> v3.18.33 > opction.valu="v3.18.32"> "> v3.18.32 > opction.valu="v3.18.31"> "> v3.18.31 > opction.valu="v3.18.30"> "> v3.18.30 > opction.valu="v3.18.29"> "> v3.18.29 > opction.valu="v3.18.28"> "> v3.18.28 > opction.valu="v3.18.27"> "> v3.18.27 > opction.valu="v3.18.26"> "> v3.18.26 > opction.valu="v3.18.25"> "> v3.18.25 > opction.valu="v3.18.24"> "> v3.18.24 > opction.valu="v3.18.23"> "> v3.18.23 > opction.valu="v3.18.22"> "> v3.18.22 > opction.valu="v3.18.21"> "> v3.18.21 > opction.valu="v3.18.20"> "> v3.18.20 > opction.valu="v3.18.19"> "> v3.18.19 > opction.valu="v3.18.18"> "> v3.18.18 > opction.valu="v3.18.17"> "> v3.18.17 > opction.valu="v3.18.16"> "> v3.18.16 > opction.valu="v3.18.15"> "> v3.18.15 > opction.valu="v3.18.14"> "> v3.18.14 > opction.valu="v3.18.13"> "> v3.18.13 > opction.valu="v3.18.12"> "> v3.18.12 > opction.valu="v3.18.11"> "> v3.18.11 > opction.valu="v3.18.10"> "> v3.18.10 > opction.valu="v3.18.9"> "> v3.18.9 > opction.valu="v3.18.8"> "> v3.18.8 > opction.valu="v3.18.7"> "> v3.18.7 > opction.valu="v3.18.6"> "> v3.18.6 > opction.valu="v3.18.5"> "> v3.18.5 > opction.valu="v3.18.4"> "> v3.18.4 > opction.valu="v3.18.3"> "> v3.18.3 > opction.valu="v3.18.2"> "> v3.18.2 > opction.valu="v3.18.1"> "> v3.18.1 > opction.valu="v3.18"> "> v3.18 > opction.valu="v3.17.8"> "> v3.17.8 > opction.valu="v3.17.7"> "> v3.17.7 > opction.valu="v3.17.6"> "> v3.17.6 > opction.valu="v3.17.5"> "> v3.17.5 > opction.valu="v3.17.4"> "> v3.17.4 > opction.valu="v3.17.3"> "> v3.17.3 > opction.valu="v3.17.2"> "> v3.17.2 > opction.valu="v3.17.1"> "> v3.17.1 > opction.valu="v3.17"> "> v3.17 > opction.valu="v3.16.39"> "> v3.16.39 > opction.valu="v3.16.38"> "> v3.16.38 > opction.valu="v3.16.37"> "> v3.16.37 > opction.valu="v3.16.36"> "> v3.16.36 > opction.valu="v3.16.35"> "> v3.16.35 > opction.valu="v3.16.7"> "> v3.16.7 > opction.valu="v3.16.6"> "> v3.16.6 > opction.valu="v3.16.5"> "> v3.16.5 > opction.valu="v3.16.4"> "> v3.16.4 > opction.valu="v3.16.3"> "> v3.16.3 > opction.valu="v3.16.2"> "> v3.16.2 > opction.valu="v3.16.1"> "> v3.16.1 > opction.valu="v3.16"> "> v3.16 > opction.valu="v3.15.10"> "> v3.15.10 > opction.valu="v3.15.9"> "> v3.15.9 > opction.valu="v3.15.8"> "> v3.15.8 > opction.valu="v3.15.7"> "> v3.15.7 > opction.valu="v3.15.6"> "> v3.15.6 > opction.valu="v3.15.5"> "> v3.15.5 > opction.valu="v3.15.4"> "> v3.15.4 > opction.valu="v3.15.3"> "> v3.15.3 > opction.valu="v3.15.2"> "> v3.15.2 > opction.valu="v3.15.1"> "> v3.15.1 > opction.valu="v3.15"> "> v3.15 > opction.valu="v3.14.79"> "> v3.14.79 > opction.valu="v3.14.78"> "> v3.14.78 > opction.valu="v3.14.77"> "> v3.14.77 > opction.valu="v3.14.76"> "> v3.14.76 > opction.valu="v3.14.75"> "> v3.14.75 > opction.valu="v3.14.74"> "> v3.14.74 > opction.valu="v3.14.73"> "> v3.14.73 > opction.valu="v3.14.72"> "> v3.14.72 > opction.valu="v3.14.71"> "> v3.14.71 > opction.valu="v3.14.70"> "> v3.14.70 > opction.valu="v3.14.69"> "> v3.14.69 > opction.valu="v3.14.68"> "> v3.14.68 > opction.valu="v3.14.67"> "> v3.14.67 > opction.valu="v3.14.66"> "> v3.14.66 > opction.valu="v3.14.65"> "> v3.14.65 > opction.valu="v3.14.64"> "> v3.14.64 > opction.valu="v3.14.63"> "> v3.14.63 > opction.valu="v3.14.62"> "> v3.14.62 > opction.valu="v3.14.61"> "> v3.14.61 > opction.valu="v3.14.60"> "> v3.14.60 > opction.valu="v3.14.59"> "> v3.14.59 > opction.valu="v3.14.58"> "> v3.14.58 > opction.valu="v3.14.57"> "> v3.14.57 > opction.valu="v3.14.56"> "> v3.14.56 > opction.valu="v3.14.55"> "> v3.14.55 > opction.valu="v3.14.54"> "> v3.14.54 > opction.valu="v3.14.53"> "> v3.14.53 > opction.valu="v3.14.52"> "> v3.14.52 > opction.valu="v3.14.51"> "> v3.14.51 > opction.valu="v3.14.50"> "> v3.14.50 > opction.valu="v3.14.49"> "> v3.14.49 > opction.valu="v3.14.48"> "> v3.14.48 > opction.valu="v3.14.47"> "> v3.14.47 > opction.valu="v3.14.46"> "> v3.14.46 > opction.valu="v3.14.45"> "> v3.14.45 > opction.valu="v3.14.44"> "> v3.14.44 > opction.valu="v3.14.43"> "> v3.14.43 > opction.valu="v3.14.42"> "> v3.14.42 > opction.valu="v3.14.41"> "> v3.14.41 > opction.valu="v3.14.40"> "> v3.14.40 > opction.valu="v3.14.39"> "> v3.14.39 > opction.valu="v3.14.38"> "> v3.14.38 > opction.valu="v3.14.37"> "> v3.14.37 > opction.valu="v3.14.36"> "> v3.14.36 > opction.valu="v3.14.35"> "> v3.14.35 > opction.valu="v3.14.34"> "> v3.14.34 > opction.valu="v3.14.33"> "> v3.14.33 > opction.valu="v3.14.32"> "> v3.14.32 > opction.valu="v3.14.31"> "> v3.14.31 > opction.valu="v3.14.30"> "> v3.14.30 > opction.valu="v3.14.29"> "> v3.14.29 > opction.valu="v3.14.28"> "> v3.14.28 > opction.valu="v3.14.27"> "> v3.14.27 > opction.valu="v3.14.26"> "> v3.14.26 > opction.valu="v3.14.25"> "> v3.14.25 > opction.valu="v3.14.24"> "> v3.14.24 > opction.valu="v3.14.23"> "> v3.14.23 > opction.valu="v3.14.22"> "> v3.14.22 > opction.valu="v3.14.21"> "> v3.14.21 > opction.valu="v3.14.20"> "> v3.14.20 > opction.valu="v3.14.19"> "> v3.14.19 > opction.valu="v3.14.18"> "> v3.14.18 > opction.valu="v3.14.17"> "> v3.14.17 > opction.valu="v3.14.16"> "> v3.14.16 > opction.valu="v3.14.15"> "> v3.14.15 > opction.valu="v3.14.14"> "> v3.14.14 > opction.valu="v3.14.13"> "> v3.14.13 > opction.valu="v3.14.12"> "> v3.14.12 > opction.valu="v3.14.11"> "> v3.14.11 > opction.valu="v3.14.10"> "> v3.14.10 > opction.valu="v3.14.9"> "> v3.14.9 > opction.valu="v3.14.8"> "> v3.14.8 > opction.valu="v3.14.7"> "> v3.14.7 > opction.valu="v3.14.6"> "> v3.14.6 > opction.valu="v3.14.5"> "> v3.14.5 > opction.valu="v3.14.4"> "> v3.14.4 > opction.valu="v3.14.3"> "> v3.14.3 > opction.valu="v3.14.2"> "> v3.14.2 > opction.valu="v3.14.1"> "> v3.14.1 > opction.valu="v3.14"> "> v3.14 > opction.valu="v3.13.11"> "> v3.13.11 > opction.valu="v3.13.10"> "> v3.13.10 > opction.valu="v3.13.9"> "> v3.13.9 > opction.valu="v3.13.8"> "> v3.13.8 > opction.valu="v3.13.7"> "> v3.13.7 > opction.valu="v3.13.6"> "> v3.13.6 > opction.valu="v3.13.5"> "> v3.13.5 > opction.valu="v3.13.4"> "> v3.13.4 > opction.valu="v3.13.3"> "> v3.13.3 > opction.valu="v3.13.2"> "> v3.13.2 > opction.valu="v3.13.1"> "> v3.13.1 > opction.valu="v3.13"> "> v3.13 > opction.valu="v3.12.70"> "> v3.12.70 > opction.valu="v3.12.69"> "> v3.12.69 > opction.valu="v3.12.68"> "> v3.12.68 > opction.valu="v3.12.67"> "> v3.12.67 > opction.valu="v3.12.66"> "> v3.12.66 > opction.valu="v3.12.65"> "> v3.12.65 > opction.valu="v3.12.64"> "> v3.12.64 > opction.valu="v3.12.63"> "> v3.12.63 > opction.valu="v3.12.62"> "> v3.12.62 > opction.valu="v3.12.61"> "> v3.12.61 > opction.valu="v3.12.60"> "> v3.12.60 > opction.valu="v3.12.59"> "> v3.12.59 > opction.valu="v3.12.58"> "> v3.12.58 > opction.valu="v3.12.57"> "> v3.12.57 > opction.valu="v3.12.56"> "> v3.12.56 > opction.valu="v3.12.55"> "> v3.12.55 > opction.valu="v3.12.54"> "> v3.12.54 > opction.valu="v3.12.53"> "> v3.12.53 > opction.valu="v3.12.52"> "> v3.12.52 > opction.valu="v3.12.51"> "> v3.12.51 > opction.valu="v3.12.50"> "> v3.12.50 > opction.valu="v3.12.49"> "> v3.12.49 > opction.valu="v3.12.48"> "> v3.12.48 > opction.valu="v3.12.47"> "> v3.12.47 > opction.valu="v3.12.46"> "> v3.12.46 > opction.valu="v3.12.45"> "> v3.12.45 > opction.valu="v3.12.44"> "> v3.12.44 > opction.valu="v3.12.43"> "> v3.12.43 > opction.valu="v3.12.42"> "> v3.12.42 > opction.valu="v3.12.41"> "> v3.12.41 > opction.valu="v3.12.40"> "> v3.12.40 > opction.valu="v3.12.39"> "> v3.12.39 > opction.valu="v3.12.38"> "> v3.12.38 > opction.valu="v3.12.37"> "> v3.12.37 > opction.valu="v3.12.36"> "> v3.12.36 > opction.valu="v3.12.35"> "> v3.12.35 > opction.valu="v3.12.34"> "> v3.12.34 > opction.valu="v3.12.33"> "> v3.12.33 > opction.valu="v3.12.32"> "> v3.12.32 > opction.valu="v3.12.31"> "> v3.12.31 > opction.valu="v3.12.30"> "> v3.12.30 > opction.valu="v3.12.29"> "> v3.12.29 > opction.valu="v3.12.28"> "> v3.12.28 > opction.valu="v3.12.27"> "> v3.12.27 > opction.valu="v3.12.26"> "> v3.12.26 > opction.valu="v3.12.25"> "> v3.12.25 > opction.valu="v3.12.24"> "> v3.12.24 > opction.valu="v3.12.23"> "> v3.12.23 > opction.valu="v3.12.22"> "> v3.12.22 > opction.valu="v3.12.21"> "> v3.12.21 > opction.valu="v3.12.20"> "> v3.12.20 > opction.valu="v3.12.19"> "> v3.12.19 > opction.valu="v3.12.18"> "> v3.12.18 > opction.valu="v3.12.17"> "> v3.12.17 > opction.valu="v3.12.16"> "> v3.12.16 > opction.valu="v3.12.15"> "> v3.12.15 > opction.valu="v3.12.14"> "> v3.12.14 > opction.valu="v3.12.13"> "> v3.12.13 > opction.valu="v3.12.12"> "> v3.12.12 > opction.valu="v3.12.11"> "> v3.12.11 > opction.valu="v3.12.10"> "> v3.12.10 > opction.valu="v3.12.9"> "> v3.12.9 > opction.valu="v3.12.8"> "> v3.12.8 > opction.valu="v3.12.7"> "> v3.12.7 > opction.valu="v3.12.6"> "> v3.12.6 > opction.valu="v3.12.5"> "> v3.12.5 > opction.valu="v3.12.4"> "> v3.12.4 > opction.valu="v3.12.3"> "> v3.12.3 > opction.valu="v3.12.2"> "> v3.12.2 > opction.valu="v3.12.1"> "> v3.12.1 > opction.valu="v3.12"> "> v3.12 > opction.valu="v3.11.10"> "> v3.11.10 > opction.valu="v3.11.9"> "> v3.11.9 > opction.valu="v3.11.8"> "> v3.11.8 > opction.valu="v3.11.7"> "> v3.11.7 > opction.valu="v3.11.6"> "> v3.11.6 > opction.valu="v3.11.5"> "> v3.11.5 > opction.valu="v3.11.4"> "> v3.11.4 > opction.valu="v3.11.3"> "> v3.11.3 > opction.valu="v3.11.2"> "> v3.11.2 > opction.valu="v3.11.1"> "> v3.11.1 > opction.valu="v3.11"> "> v3.11 > opction.valu="v3.10.105"> "> v3.10.105 > opction.valu="v3.10.104"> "> v3.10.104 > opction.valu="v3.10.103"> "> v3.10.103 > opction.valu="v3.10.102"> "> v3.10.102 > opction.valu="v3.10.101"> "> v3.10.101 > opction.valu="v3.10.100"> "> v3.10.100 > opction.valu="v3.10.99"> "> v3.10.99 > opction.valu="v3.10.98"> "> v3.10.98 > opction.valu="v3.10.97"> "> v3.10.97 > opction.valu="v3.10.96"> "> v3.10.96 > opction.valu="v3.10.95"> "> v3.10.95 > opction.valu="v3.10.94"> "> v3.10.94 > opction.valu="v3.10.93"> "> v3.10.93 > opction.valu="v3.10.92"> "> v3.10.92 > opction.valu="v3.10.91"> "> v3.10.91 > opction.valu="v3.10.90"> "> v3.10.90 > opction.valu="v3.10.89"> "> v3.10.89 > opction.valu="v3.10.88"> "> v3.10.88 > opction.valu="v3.10.87"> "> v3.10.87 > opction.valu="v3.10.86"> "> v3.10.86 > opction.valu="v3.10.85"> "> v3.10.85 > opction.valu="v3.10.84"> "> v3.10.84 > opction.valu="v3.10.83"> "> v3.10.83 > opction.valu="v3.10.82"> "> v3.10.82 > opction.valu="v3.10.81"> "> v3.10.81 > opction.valu="v3.10.80"> "> v3.10.80 > opction.valu="v3.10.79"> "> v3.10.79 > opction.valu="v3.10.78"> "> v3.10.78 > opction.valu="v3.10.77"> "> v3.10.77 > opction.valu="v3.10.76"> "> v3.10.76 > opction.valu="v3.10.75"> "> v3.10.75 > opction.valu="v3.10.74"> "> v3.10.74 > opction.valu="v3.10.73"> "> v3.10.73 > opction.valu="v3.10.72"> "> v3.10.72 > opction.valu="v3.10.71"> "> v3.10.71 > opction.valu="v3.10.70"> "> v3.10.70 > opction.valu="v3.10.69"> "> v3.10.69 > opction.valu="v3.10.68"> "> v3.10.68 > opction.valu="v3.10.67"> "> v3.10.67 > opction.valu="v3.10.66"> "> v3.10.66 > opction.valu="v3.10.65"> "> v3.10.65 > opction.valu="v3.10.64"> "> v3.10.64 > opction.valu="v3.10.63"> "> v3.10.63 > opction.valu="v3.10.62"> "> v3.10.62 > opction.valu="v3.10.61"> "> v3.10.61 > opction.valu="v3.10.60"> "> v3.10.60 > opction.valu="v3.10.59"> "> v3.10.59 > opction.valu="v3.10.58"> "> v3.10.58 > opction.valu="v3.10.57"> "> v3.10.57 > opction.valu="v3.10.56"> "> v3.10.56 > opction.valu="v3.10.55"> "> v3.10.55 > opction.valu="v3.10.54"> "> v3.10.54 > opction.valu="v3.10.53"> "> v3.10.53 > opction.valu="v3.10.52"> "> v3.10.52 > opction.valu="v3.10.51"> "> v3.10.51 > opction.valu="v3.10.50"> "> v3.10.50 > opction.valu="v3.10.49"> "> v3.10.49 > opction.valu="v3.10.48"> "> v3.10.48 > opction.valu="v3.10.47"> "> v3.10.47 > opction.valu="v3.10.46"> "> v3.10.46 > opction.valu="v3.10.45"> "> v3.10.45 > opction.valu="v3.10.44"> "> v3.10.44 > opction.valu="v3.10.43"> "> v3.10.43 > opction.valu="v3.10.42"> "> v3.10.42 > opction.valu="v3.10.41"> "> v3.10.41 > opction.valu="v3.10.40"> "> v3.10.40 > opction.valu="v3.10.39"> "> v3.10.39 > opction.valu="v3.10.38"> "> v3.10.38 > opction.valu="v3.10.37"> "> v3.10.37 > opction.valu="v3.10.36"> "> v3.10.36 > opction.valu="v3.10.35"> "> v3.10.35 > opction.valu="v3.10.34"> "> v3.10.34 > opction.valu="v3.10.33"> "> v3.10.33 > opction.valu="v3.10.32"> "> v3.10.32 > opction.valu="v3.10.31"> "> v3.10.31 > opction.valu="v3.10.30"> "> v3.10.30 > opction.valu="v3.10.29"> "> v3.10.29 > opction.valu="v3.10.28"> "> v3.10.28 > opction.valu="v3.10.27"> "> v3.10.27 > opction.valu="v3.10.26"> "> v3.10.26 > opction.valu="v3.10.25"> "> v3.10.25 > opction.valu="v3.10.24"> "> v3.10.24 > opction.valu="v3.10.23"> "> v3.10.23 > opction.valu="v3.10.22"> "> v3.10.22 > opction.valu="v3.10.21"> "> v3.10.21 > opction.valu="v3.10.20"> "> v3.10.20 > opction.valu="v3.10.19"> "> v3.10.19 > opction.valu="v3.10.18"> "> v3.10.18 > opction.valu="v3.10.17"> "> v3.10.17 > opction.valu="v3.10.16"> "> v3.10.16 > opction.valu="v3.10.15"> "> v3.10.15 > opction.valu="v3.10.14"> "> v3.10.14 > opction.valu="v3.10.13"> "> v3.10.13 > opction.valu="v3.10.12"> "> v3.10.12 > opction.valu="v3.10.11"> "> v3.10.11 > opction.valu="v3.10.10"> "> v3.10.10 > opction.valu="v3.10.9"> "> v3.10.9 > opction.valu="v3.10.8"> "> v3.10.8 > opction.valu="v3.10.7"> "> v3.10.7 > opction.valu="v3.10.6"> "> v3.10.6 > opction.valu="v3.10.5"> "> v3.10.5 > opction.valu="v3.10.4"> "> v3.10.4 > opction.valu="v3.10.3"> "> v3.10.3 > opction.valu="v3.10.2"> "> v3.10.2 > opction.valu="v3.10.1"> "> v3.10.1 > opction.valu="v3.10"> "> v3.10 > opction.valu="v3.9.11"> "> v3.9.11 > opction.valu="v3.9.10"> "> v3.9.10 > opction.valu="v3.9.9"> "> v3.9.9 > opction.valu="v3.9.8"> "> v3.9.8 > opction.valu="v3.9.7"> "> v3.9.7 > opction.valu="v3.9.6"> "> v3.9.6 > opction.valu="v3.9.5"> "> v3.9.5 > opction.valu="v3.9.4"> "> v3.9.4 > opction.valu="v3.9.3"> "> v3.9.3 > opction.valu="v3.9.2"> "> v3.9.2 > opction.valu="v3.9.1"> "> v3.9.1 > opction.valu="v3.9"> "> v3.9 > opction.valu="v3.8.13"> "> v3.8.13 > opction.valu="v3.8.12"> "> v3.8.12 > opction.valu="v3.8.11"> "> v3.8.11 > opction.valu="v3.8.10"> "> v3.8.10 > opction.valu="v3.8.9"> "> v3.8.9 > opction.valu="v3.8.8"> "> v3.8.8 > opction.valu="v3.8.7"> "> v3.8.7 > opction.valu="v3.8.6"> "> v3.8.6 > opction.valu="v3.8.5"> "> v3.8.5 > opction.valu="v3.8.4"> "> v3.8.4 > opction.valu="v3.8.3"> "> v3.8.3 > opction.valu="v3.8.2"> "> v3.8.2 > opction.valu="v3.8.1"> "> v3.8.1 > opction.valu="v3.8"> "> v3.8 > opction.valu="v3.7.10"> "> v3.7.10 > opction.valu="v3.7.9"> "> v3.7.9 > opction.valu="v3.7.8"> "> v3.7.8 > opction.valu="v3.7.7"> "> v3.7.7 > opction.valu="v3.7.6"> "> v3.7.6 > opction.valu="v3.7.5"> "> v3.7.5 > opction.valu="v3.7.4"> sseleced="sseleced""> v3.7.4 > opction.valu="v3.7.3"> "> v3.7.3 > opction.valu="v3.7.2"> "> v3.7.2 > opction.valu="v3.7.1"> "> v3.7.1 > opction.valu="v3.7"> "> v3.7 > opction.valu="v3.6.11"> "> v3.6.11 > opction.valu="v3.6.10"> "> v3.6.10 > opction.valu="v3.6.9"> "> v3.6.9 > opction.valu="v3.6.8"> "> v3.6.8 > opction.valu="v3.6.7"> "> v3.6.7 > opction.valu="v3.6.6"> "> v3.6.6 > opction.valu="v3.6.5"> "> v3.6.5 > opction.valu="v3.6.4"> "> v3.6.4 > opction.valu="v3.6.3"> "> v3.6.3 > opction.valu="v3.6.2"> "> v3.6.2 > opction.valu="v3.6.1"> "> v3.6.1 > opction.valu="v3.6"> "> v3.6 > opction.valu="v3.5.7"> "> v3.5.7 > opction.valu="v3.5.6"> "> v3.5.6 > opction.valu="v3.5.5"> "> v3.5.5 > opction.valu="v3.5.4"> "> v3.5.4 > opction.valu="v3.5.3"> "> v3.5.3 > opction.valu="v3.5.2"> "> v3.5.2 > opction.valu="v3.5.1"> "> v3.5.1 > opction.valu="v3.5"> "> v3.5 > opction.valu="v3.4.113"> "> v3.4.113 > opction.valu="v3.4.112"> "> v3.4.112 > opction.valu="v3.4.111"> "> v3.4.111 > opction.valu="v3.4.110"> "> v3.4.110 > opction.valu="v3.4.109"> "> v3.4.109 > opction.valu="v3.4.108"> "> v3.4.108 > opction.valu="v3.4.107"> "> v3.4.107 > opction.valu="v3.4.106"> "> v3.4.106 > opction.valu="v3.4.105"> "> v3.4.105 > opction.valu="v3.4.104"> "> v3.4.104 > opction.valu="v3.4.103"> "> v3.4.103 > opction.valu="v3.4.102"> "> v3.4.102 > opction.valu="v3.4.101"> "> v3.4.101 > opction.valu="v3.4.100"> "> v3.4.100 > opction.valu="v3.4.99"> "> v3.4.99 > opction.valu="v3.4.98"> "> v3.4.98 > opction.valu="v3.4.97"> "> v3.4.97 > opction.valu="v3.4.96"> "> v3.4.96 > opction.valu="v3.4.95"> "> v3.4.95 > opction.valu="v3.4.94"> "> v3.4.94 > opction.valu="v3.4.93"> "> v3.4.93 > opction.valu="v3.4.92"> "> v3.4.92 > opction.valu="v3.4.91"> "> v3.4.91 > opction.valu="v3.4.90"> "> v3.4.90 > opction.valu="v3.4.89"> "> v3.4.89 > opction.valu="v3.4.88"> "> v3.4.88 > opction.valu="v3.4.87"> "> v3.4.87 > opction.valu="v3.4.86"> "> v3.4.86 > opction.valu="v3.4.85"> "> v3.4.85 > opction.valu="v3.4.84"> "> v3.4.84 > opction.valu="v3.4.83"> "> v3.4.83 > opction.valu="v3.4.82"> "> v3.4.82 > opction.valu="v3.4.81"> "> v3.4.81 > opction.valu="v3.4.80"> "> v3.4.80 > opction.valu="v3.4.79"> "> v3.4.79 > opction.valu="v3.4.78"> "> v3.4.78 > opction.valu="v3.4.77"> "> v3.4.77 > opction.valu="v3.4.76"> "> v3.4.76 > opction.valu="v3.4.75"> "> v3.4.75 > opction.valu="v3.4.74"> "> v3.4.74 > opction.valu="v3.4.73"> "> v3.4.73 > opction.valu="v3.4.72"> "> v3.4.72 > opction.valu="v3.4.71"> "> v3.4.71 > opction.valu="v3.4.70"> "> v3.4.70 > opction.valu="v3.4.69"> "> v3.4.69 > opction.valu="v3.4.68"> "> v3.4.68 > opction.valu="v3.4.67"> "> v3.4.67 > opction.valu="v3.4.66"> "> v3.4.66 > opction.valu="v3.4.65"> "> v3.4.65 > opction.valu="v3.4.64"> "> v3.4.64 > opction.valu="v3.4.63"> "> v3.4.63 > opction.valu="v3.4.62"> "> v3.4.62 > opction.valu="v3.4.61"> "> v3.4.61 > opction.valu="v3.4.60"> "> v3.4.60 > opction.valu="v3.4.59"> "> v3.4.59 > opction.valu="v3.4.58"> "> v3.4.58 > opction.valu="v3.4.57"> "> v3.4.57 > opction.valu="v3.4.56"> "> v3.4.56 > opction.valu="v3.4.55"> "> v3.4.55 > opction.valu="v3.4.54"> "> v3.4.54 > opction.valu="v3.4.53"> "> v3.4.53 > opction.valu="v3.4.52"> "> v3.4.52 > opction.valu="v3.4.51"> "> v3.4.51 > opction.valu="v3.4.50"> "> v3.4.50 > opction.valu="v3.4.49"> "> v3.4.49 > opction.valu="v3.4.48"> "> v3.4.48 > opction.valu="v3.4.47"> "> v3.4.47 > opction.valu="v3.4.46"> "> v3.4.46 > opction.valu="v3.4.45"> "> v3.4.45 > opction.valu="v3.4.44"> "> v3.4.44 > opction.valu="v3.4.43"> "> v3.4.43 > opction.valu="v3.4.42"> "> v3.4.42 > opction.valu="v3.4.41"> "> v3.4.41 > opction.valu="v3.4.40"> "> v3.4.40 > opction.valu="v3.4.39"> "> v3.4.39 > opction.valu="v3.4.38"> "> v3.4.38 > opction.valu="v3.4.37"> "> v3.4.37 > opction.valu="v3.4.36"> "> v3.4.36 > opction.valu="v3.4.35"> "> v3.4.35 > opction.valu="v3.4.34"> "> v3.4.34 > opction.valu="v3.4.33"> "> v3.4.33 > opction.valu="v3.4.32"> "> v3.4.32 > opction.valu="v3.4.31"> "> v3.4.31 > opction.valu="v3.4.30"> "> v3.4.30 > opction.valu="v3.4.29"> "> v3.4.29 > opction.valu="v3.4.28"> "> v3.4.28 > opction.valu="v3.4.27"> "> v3.4.27 > opction.valu="v3.4.26"> "> v3.4.26 > opction.valu="v3.4.25"> "> v3.4.25 > opction.valu="v3.4.24"> "> v3.4.24 > opction.valu="v3.4.23"> "> v3.4.23 > opction.valu="v3.4.22"> "> v3.4.22 > opction.valu="v3.4.21"> "> v3.4.21 > opction.valu="v3.4.20"> "> v3.4.20 > opction.valu="v3.4.19"> "> v3.4.19 > opction.valu="v3.4.18"> "> v3.4.18 > opction.valu="v3.4.17"> "> v3.4.17 > opction.valu="v3.4.16"> "> v3.4.16 > opction.valu="v3.4.15"> "> v3.4.15 > opction.valu="v3.4.14"> "> v3.4.14 > opction.valu="v3.4.13"> "> v3.4.13 > opction.valu="v3.4.12"> "> v3.4.12 > opction.valu="v3.4.11"> "> v3.4.11 > opction.valu="v3.4.10"> "> v3.4.10 > opction.valu="v3.4.9"> "> v3.4.9 > opction.valu="v3.4.8"> "> v3.4.8 > opction.valu="v3.4.7"> "> v3.4.7 > opction.valu="v3.4.6"> "> v3.4.6 > opction.valu="v3.4.5"> "> v3.4.5 > opction.valu="v3.4.4"> "> v3.4.4 > opction.valu="v3.4.3"> "> v3.4.3 > opction.valu="v3.4.2"> "> v3.4.2 > opction.valu="v3.4.1"> "> v3.4.1 > opction.valu="v3.4"> "> v3.4 > opction.valu="v3.3.8"> "> v3.3.8 > opction.valu="v3.3.7"> "> v3.3.7 > opction.valu="v3.3.6"> "> v3.3.6 > opction.valu="v3.3.5"> "> v3.3.5 > opction.valu="v3.3.4"> "> v3.3.4 > opction.valu="v3.3.3"> "> v3.3.3 > opction.valu="v3.3.2"> "> v3.3.2 > opction.valu="v3.3.1"> "> v3.3.1 > opction.valu="v3.3"> "> v3.3 > opction.valu="v3.2.84"> "> v3.2.84 > opction.valu="v3.2.83"> "> v3.2.83 > opction.valu="v3.2.82"> "> v3.2.82 > opction.valu="v3.2.81"> "> v3.2.81 > opction.valu="v3.2.80"> "> v3.2.80 > opction.valu="v3.2.79"> "> v3.2.79 > opction.valu="v3.2.78"> "> v3.2.78 > opction.valu="v3.2.77"> "> v3.2.77 > opction.valu="v3.2.76"> "> v3.2.76 > opction.valu="v3.2.75"> "> v3.2.75 > opction.valu="v3.2.74"> "> v3.2.74 > opction.valu="v3.2.73"> "> v3.2.73 > opction.valu="v3.2.72"> "> v3.2.72 > opction.valu="v3.2.71"> "> v3.2.71 > opction.valu="v3.2.70"> "> v3.2.70 > opction.valu="v3.2.69"> "> v3.2.69 > opction.valu="v3.2.68"> "> v3.2.68 > opction.valu="v3.2.67"> "> v3.2.67 > opction.valu="v3.2.66"> "> v3.2.66 > opction.valu="v3.2.65"> "> v3.2.65 > opction.valu="v3.2.64"> "> v3.2.64 > opction.valu="v3.2.63"> "> v3.2.63 > opction.valu="v3.2.62"> "> v3.2.62 > opction.valu="v3.2.61"> "> v3.2.61 > opction.valu="v3.2.60"> "> v3.2.60 > opction.valu="v3.2.59"> "> v3.2.59 > opction.valu="v3.2.58"> "> v3.2.58 > opction.valu="v3.2.57"> "> v3.2.57 > opction.valu="v3.2.56"> "> v3.2.56 > opction.valu="v3.2.55"> "> v3.2.55 > opction.valu="v3.2.54"> "> v3.2.54 > opction.valu="v3.2.53"> "> v3.2.53 > opction.valu="v3.2.52"> "> v3.2.52 > opction.valu="v3.2.51"> "> v3.2.51 > opction.valu="v3.2.50"> "> v3.2.50 > opction.valu="v3.2.49"> "> v3.2.49 > opction.valu="v3.2.48"> "> v3.2.48 > opction.valu="v3.2.47"> "> v3.2.47 > opction.valu="v3.2.46"> "> v3.2.46 > opction.valu="v3.2.45"> "> v3.2.45 > opction.valu="v3.2.44"> "> v3.2.44 > opction.valu="v3.2.43"> "> v3.2.43 > opction.valu="v3.2.42"> "> v3.2.42 > opction.valu="v3.2.41"> "> v3.2.41 > opction.valu="v3.2.40"> "> v3.2.40 > opction.valu="v3.2.39"> "> v3.2.39 > opction.valu="v3.2.38"> "> v3.2.38 > opction.valu="v3.2.37"> "> v3.2.37 > opction.valu="v3.2.36"> "> v3.2.36 > opction.valu="v3.2.35"> "> v3.2.35 > opction.valu="v3.2.34"> "> v3.2.34 > opction.valu="v3.2.33"> "> v3.2.33 > opction.valu="v3.2.32"> "> v3.2.32 > opction.valu="v3.2.31"> "> v3.2.31 > opction.valu="v3.2.30"> "> v3.2.30 > opction.valu="v3.2.29"> "> v3.2.29 > opction.valu="v3.2.28"> "> v3.2.28 > opction.valu="v3.2.27"> "> v3.2.27 > opction.valu="v3.2.26"> "> v3.2.26 > opction.valu="v3.2.25"> "> v3.2.25 > opction.valu="v3.2.24"> "> v3.2.24 > opction.valu="v3.2.23"> "> v3.2.23 > opction.valu="v3.2.22"> "> v3.2.22 > opction.valu="v3.2.21"> "> v3.2.21 > opction.valu="v3.2.20"> "> v3.2.20 > opction.valu="v3.2.19"> "> v3.2.19 > opction.valu="v3.2.18"> "> v3.2.18 > opction.valu="v3.2.17"> "> v3.2.17 > opction.valu="v3.2.16"> "> v3.2.16 > opction.valu="v3.2.15"> "> v3.2.15 > opction.valu="v3.2.14"> "> v3.2.14 > opction.valu="v3.2.13"> "> v3.2.13 > opction.valu="v3.2.12"> "> v3.2.12 > opction.valu="v3.2.11"> "> v3.2.11 > opction.valu="v3.2.10"> "> v3.2.10 > opction.valu="v3.2.9"> "> v3.2.9 > opction.valu="v3.2.8"> "> v3.2.8 > opction.valu="v3.2.7"> "> v3.2.7 > opction.valu="v3.2.6"> "> v3.2.6 > opction.valu="v3.2.5"> "> v3.2.5 > opction.valu="v3.2.4"> "> v3.2.4 > opction.valu="v3.2.3"> "> v3.2.3 > opction.valu="v3.2.2"> "> v3.2.2 > opction.valu="v3.2.1"> "> v3.2.1 > opction.valu="v3.2"> "> v3.2 > opction.valu="v3.1.10"> "> v3.1.10 > opction.valu="v3.1.9"> "> v3.1.9 > opction.valu="v3.1.8"> "> v3.1.8 > opction.valu="v3.1.7"> "> v3.1.7 > opction.valu="v3.1.6"> "> v3.1.6 > opction.valu="v3.1.5"> "> v3.1.5 > opction.valu="v3.1.4"> "> v3.1.4 > opction.valu="v3.1.3"> "> v3.1.3 > opction.valu="v3.1.2"> "> v3.1.2 > opction.valu="v3.1.1"> "> v3.1.1 > opction.valu="v3.1"> "> v3.1 > opction.valu="v3.0.101"> "> v3.0.101 > opction.valu="v3.0.100"> "> v3.0.100 > opction.valu="v3.0.99"> "> v3.0.99 > opction.valu="v3.0.98"> "> v3.0.98 > opction.valu="v3.0.97"> "> v3.0.97 > opction.valu="v3.0.96"> "> v3.0.96 > opction.valu="v3.0.95"> "> v3.0.95 > opction.valu="v3.0.94"> "> v3.0.94 > opction.valu="v3.0.93"> "> v3.0.93 > opction.valu="v3.0.92"> "> v3.0.92 > opction.valu="v3.0.91"> "> v3.0.91 > opction.valu="v3.0.90"> "> v3.0.90 > opction.valu="v3.0.89"> "> v3.0.89 > opction.valu="v3.0.88"> "> v3.0.88 > opction.valu="v3.0.87"> "> v3.0.87 > opction.valu="v3.0.86"> "> v3.0.86 > opction.valu="v3.0.85"> "> v3.0.85 > opction.valu="v3.0.84"> "> v3.0.84 > opction.valu="v3.0.83"> "> v3.0.83 > opction.valu="v3.0.82"> "> v3.0.82 > opction.valu="v3.0.81"> "> v3.0.81 > opction.valu="v3.0.80"> "> v3.0.80 > opction.valu="v3.0.79"> "> v3.0.79 > opction.valu="v3.0.78"> "> v3.0.78 > opction.valu="v3.0.77"> "> v3.0.77 > opction.valu="v3.0.76"> "> v3.0.76 > opction.valu="v3.0.75"> "> v3.0.75 > opction.valu="v3.0.74"> "> v3.0.74 > opction.valu="v3.0.73"> "> v3.0.73 > opction.valu="v3.0.72"> "> v3.0.72 > opction.valu="v3.0.71"> "> v3.0.71 > opction.valu="v3.0.70"> "> v3.0.70 > opction.valu="v3.0.69"> "> v3.0.69 > opction.valu="v3.0.68"> "> v3.0.68 > opction.valu="v3.0.67"> "> v3.0.67 > opction.valu="v3.0.66"> "> v3.0.66 > opction.valu="v3.0.65"> "> v3.0.65 > opction.valu="v3.0.64"> "> v3.0.64 > opction.valu="v3.0.63"> "> v3.0.63 > opction.valu="v3.0.62"> "> v3.0.62 > opction.valu="v3.0.61"> "> v3.0.61 > opction.valu="v3.0.60"> "> v3.0.60 > opction.valu="v3.0.59"> "> v3.0.59 > opction.valu="v3.0.58"> "> v3.0.58 > opction.valu="v3.0.57"> "> v3.0.57 > opction.valu="v3.0.56"> "> v3.0.56 > opction.valu="v3.0.55"> "> v3.0.55 > opction.valu="v3.0.54"> "> v3.0.54 > opction.valu="v3.0.53"> "> v3.0.53 > opction.valu="v3.0.52"> "> v3.0.52 > opction.valu="v3.0.51"> "> v3.0.51 > opction.valu="v3.0.50"> "> v3.0.50 > opction.valu="v3.0.49"> "> v3.0.49 > opction.valu="v3.0.48"> "> v3.0.48 > opction.valu="v3.0.47"> "> v3.0.47 > opction.valu="v3.0.46"> "> v3.0.46 > opction.valu="v3.0.45"> "> v3.0.45 > opction.valu="v3.0.44"> "> v3.0.44 > opction.valu="v3.0.43"> "> v3.0.43 > opction.valu="v3.0.42"> "> v3.0.42 > opction.valu="v3.0.41"> "> v3.0.41 > opction.valu="v3.0.40"> "> v3.0.40 > opction.valu="v3.0.39"> "> v3.0.39 > opction.valu="v3.0.38"> "> v3.0.38 > opction.valu="v3.0.37"> "> v3.0.37 > opction.valu="v3.0.36"> "> v3.0.36 > opction.valu="v3.0.35"> "> v3.0.35 > opction.valu="v3.0.34"> "> v3.0.34 > opction.valu="v3.0.33"> "> v3.0.33 > opction.valu="v3.0.32"> "> v3.0.32 > opction.valu="v3.0.31"> "> v3.0.31 > opction.valu="v3.0.30"> "> v3.0.30 > opction.valu="v3.0.29"> "> v3.0.29 > opction.valu="v3.0.28"> "> v3.0.28 > opction.valu="v3.0.27"> "> v3.0.27 > opction.valu="v3.0.26"> "> v3.0.26 > opction.valu="v3.0.25"> "> v3.0.25 > opction.valu="v3.0.24"> "> v3.0.24 > opction.valu="v3.0.23"> "> v3.0.23 > opction.valu="v3.0.22"> "> v3.0.22 > opction.valu="v3.0.21"> "> v3.0.21 > opction.valu="v3.0.20"> "> v3.0.20 > opction.valu="v3.0.19"> "> v3.0.19 > opction.valu="v3.0.18"> "> v3.0.18 > opction.valu="v3.0.17"> "> v3.0.17 > opction.valu="v3.0.16"> "> v3.0.16 > opction.valu="v3.0.15"> "> v3.0.15 > opction.valu="v3.0.14"> "> v3.0.14 > opction.valu="v3.0.13"> "> v3.0.13 > opction.valu="v3.0.12"> "> v3.0.12 > opction.valu="v3.0.11"> "> v3.0.11 > opction.valu="v3.0.10"> "> v3.0.10 > opction.valu="v3.0.9"> "> v3.0.9 > opction.valu="v3.0.8"> "> v3.0.8 > opction.valu="v3.0.7"> "> v3.0.7 > opction.valu="v3.0.6"> "> v3.0.6 > opction.valu="v3.0.5"> "> v3.0.5 > opction.valu="v3.0.4"> "> v3.0.4 > opction.valu="v3.0.3"> "> v3.0.3 > opction.valu="v3.0.2"> "> v3.0.2 > opction.valu="v3.0.1"> "> v3.0.1 > opction.valu="v3.0"> "> v3.0 > opction.valu="v2.6.39.4"> "> v2.6.39.4 > opction.valu="v2.6.39.3"> "> v2.6.39.3 > opction.valu="v2.6.39.2"> "> v2.6.39.2 > opction.valu="v2.6.39.1"> "> v2.6.39.1 > opction.valu="v2.6.39"> "> v2.6.39 > opction.valu="v2.6.38.8"> "> v2.6.38.8 > opction.valu="v2.6.38.7"> "> v2.6.38.7 > opction.valu="v2.6.38.6"> "> v2.6.38.6 > opction.valu="v2.6.38.5"> "> v2.6.38.5 > opction.valu="v2.6.38.4"> "> v2.6.38.4 > opction.valu="v2.6.38.3"> "> v2.6.38.3 > opction.valu="v2.6.38.2"> "> v2.6.38.2 > opction.valu="v2.6.38.1"> "> v2.6.38.1 > opction.valu="v2.6.38"> "> v2.6.38 > opction.valu="v2.6.37.6"> "> v2.6.37.6 > opction.valu="v2.6.37.5"> "> v2.6.37.5 > opction.valu="v2.6.37.4"> "> v2.6.37.4 > opction.valu="v2.6.37.3"> "> v2.6.37.3 > opction.valu="v2.6.37.2"> "> v2.6.37.2 > opction.valu="v2.6.37.1"> "> v2.6.37.1 > opction.valu="v2.6.37"> "> v2.6.37 > opction.valu="v2.6.36.4"> "> v2.6.36.4 > opction.valu="v2.6.36.3"> "> v2.6.36.3 > opction.valu="v2.6.36.2"> "> v2.6.36.2 > opction.valu="v2.6.36.1"> "> v2.6.36.1 > opction.valu="v2.6.36"> "> v2.6.36 > opction.valu="v2.6.35.14"> "> v2.6.35.14 > opction.valu="v2.6.35.13"> "> v2.6.35.13 > opction.valu="v2.6.35.12"> "> v2.6.35.12 > opction.valu="v2.6.35.11"> "> v2.6.35.11 > opction.valu="v2.6.35.10"> "> v2.6.35.10 > opction.valu="v2.6.35.9"> "> v2.6.35.9 > opction.valu="v2.6.35.8"> "> v2.6.35.8 > opction.valu="v2.6.35.7"> "> v2.6.35.7 > opction.valu="v2.6.35.6"> "> v2.6.35.6 > opction.valu="v2.6.35.5"> "> v2.6.35.5 > opction.valu="v2.6.35.4"> "> v2.6.35.4 > opction.valu="v2.6.35.3"> "> v2.6.35.3 > opction.valu="v2.6.35.2"> "> v2.6.35.2 > opction.valu="v2.6.35.1"> "> v2.6.35.1 > opction.valu="v2.6.35"> "> v2.6.35 > opction.valu="v2.6.34.15"> "> v2.6.34.15 > opction.valu="v2.6.34.14"> "> v2.6.34.14 > opction.valu="v2.6.34.13"> "> v2.6.34.13 > opction.valu="v2.6.34.12"> "> v2.6.34.12 > opction.valu="v2.6.34.11"> "> v2.6.34.11 > opction.valu="v2.6.34.10"> "> v2.6.34.10 > opction.valu="v2.6.34.9"> "> v2.6.34.9 > opction.valu="v2.6.34.8"> "> v2.6.34.8 > opction.valu="v2.6.34.7"> "> v2.6.34.7 > opction.valu="v2.6.34.6"> "> v2.6.34.6 > opction.valu="v2.6.34.5"> "> v2.6.34.5 > opction.valu="v2.6.34.4"> "> v2.6.34.4 > opction.valu="v2.6.34.3"> "> v2.6.34.3 > opction.valu="v2.6.34.2"> "> v2.6.34.2 > opction.valu="v2.6.34.1"> "> v2.6.34.1 > opction.valu="v2.6.34"> "> v2.6.34 > opction.valu="v2.6.33.20"> "> v2.6.33.20 > opction.valu="v2.6.33.19"> "> v2.6.33.19 > opction.valu="v2.6.33.18"> "> v2.6.33.18 > opction.valu="v2.6.33.17"> "> v2.6.33.17 > opction.valu="v2.6.33.16"> "> v2.6.33.16 > opction.valu="v2.6.33.15"> "> v2.6.33.15 > opction.valu="v2.6.33.14"> "> v2.6.33.14 > opction.valu="v2.6.33.13"> "> v2.6.33.13 > opction.valu="v2.6.33.12"> "> v2.6.33.12 > opction.valu="v2.6.33.11"> "> v2.6.33.11 > opction.valu="v2.6.33.10"> "> v2.6.33.10 > opction.valu="v2.6.33.9"> "> v2.6.33.9 > opction.valu="v2.6.33.8"> "> v2.6.33.8 > opction.valu="v2.6.33.7"> "> v2.6.33.7 > opction.valu="v2.6.33.6"> "> v2.6.33.6 > opction.valu="v2.6.33.5"> "> v2.6.33.5 > opction.valu="v2.6.33.4"> "> v2.6.33.4 > opction.valu="v2.6.33.3"> "> v2.6.33.3 > opction.valu="v2.6.33.2"> "> v2.6.33.2 > opction.valu="v2.6.33.1"> "> v2.6.33.1 > opction.valu="v2.6.33"> "> v2.6.33 > opction.valu="v2.6.32.71"> "> v2.6.32.71 > opction.valu="v2.6.32.70"> "> v2.6.32.70 > opction.valu="v2.6.32.69"> "> v2.6.32.69 > opction.valu="v2.6.32.68"> "> v2.6.32.68 > opction.valu="v2.6.32.67"> "> v2.6.32.67 > opction.valu="v2.6.32.66"> "> v2.6.32.66 > opction.valu="v2.6.32.65"> "> v2.6.32.65 > opction.valu="v2.6.32.64"> "> v2.6.32.64 > opction.valu="v2.6.32.63"> "> v2.6.32.63 > opction.valu="v2.6.32.62"> "> v2.6.32.62 > opction.valu="v2.6.32.61"> "> v2.6.32.61 > opction.valu="v2.6.32.60"> "> v2.6.32.60 > opction.valu="v2.6.32.59"> "> v2.6.32.59 > opction.valu="v2.6.32.58"> "> v2.6.32.58 > opction.valu="v2.6.32.57"> "> v2.6.32.57 > opction.valu="v2.6.32.56"> "> v2.6.32.56 > opction.valu="v2.6.32.55"> "> v2.6.32.55 > opction.valu="v2.6.32.54"> "> v2.6.32.54 > opction.valu="v2.6.32.53"> "> v2.6.32.53 > opction.valu="v2.6.32.52"> "> v2.6.32.52 > opction.valu="v2.6.32.51"> "> v2.6.32.51 > opction.valu="v2.6.32.50"> "> v2.6.32.50 > opction.valu="v2.6.32.49"> "> v2.6.32.49 > opction.valu="v2.6.32.48"> "> v2.6.32.48 > opction.valu="v2.6.32.47"> "> v2.6.32.47 > opction.valu="v2.6.32.46"> "> v2.6.32.46 > opction.valu="v2.6.32.45"> "> v2.6.32.45 > opction.valu="v2.6.32.44"> "> v2.6.32.44 > opction.valu="v2.6.32.43"> "> v2.6.32.43 > opction.valu="v2.6.32.42"> "> v2.6.32.42 > opction.valu="v2.6.32.41"> "> v2.6.32.41 > opction.valu="v2.6.32.40"> "> v2.6.32.40 > opction.valu="v2.6.32.39"> "> v2.6.32.39 > opction.valu="v2.6.32.38"> "> v2.6.32.38 > opction.valu="v2.6.32.37"> "> v2.6.32.37 > opction.valu="v2.6.32.36"> "> v2.6.32.36 > opction.valu="v2.6.32.35"> "> v2.6.32.35 > opction.valu="v2.6.32.34"> "> v2.6.32.34 > opction.valu="v2.6.32.33"> "> v2.6.32.33 > opction.valu="v2.6.32.32"> "> v2.6.32.32 > opction.valu="v2.6.32.31"> "> v2.6.32.31 > opction.valu="v2.6.32.30"> "> v2.6.32.30 > opction.valu="v2.6.32.29"> "> v2.6.32.29 > opction.valu="v2.6.32.28"> "> v2.6.32.28 > opction.valu="v2.6.32.27"> "> v2.6.32.27 > opction.valu="v2.6.32.26"> "> v2.6.32.26 > opction.valu="v2.6.32.25"> "> v2.6.32.25 > opction.valu="v2.6.32.24"> "> v2.6.32.24 > opction.valu="v2.6.32.23"> "> v2.6.32.23 > opction.valu="v2.6.32.22"> "> v2.6.32.22 > opction.valu="v2.6.32.21"> "> v2.6.32.21 > opction.valu="v2.6.32.20"> "> v2.6.32.20 > opction.valu="v2.6.32.19"> "> v2.6.32.19 > opction.valu="v2.6.32.18"> "> v2.6.32.18 > opction.valu="v2.6.32.17"> "> v2.6.32.17 > opction.valu="v2.6.32.16"> "> v2.6.32.16 > opction.valu="v2.6.32.15"> "> v2.6.32.15 > opction.valu="v2.6.32.14"> "> v2.6.32.14 > opction.valu="v2.6.32.13"> "> v2.6.32.13 > opction.valu="v2.6.32.12"> "> v2.6.32.12 > opction.valu="v2.6.32.11"> "> v2.6.32.11 > opction.valu="v2.6.32.10"> "> v2.6.32.10 > opction.valu="v2.6.32.9"> "> v2.6.32.9 > opction.valu="v2.6.32.8"> "> v2.6.32.8 > opction.valu="v2.6.32.7"> "> v2.6.32.7 > opction.valu="v2.6.32.6"> "> v2.6.32.6 > opction.valu="v2.6.32.5"> "> v2.6.32.5 > opction.valu="v2.6.32.4"> "> v2.6.32.4 > opction.valu="v2.6.32.3"> "> v2.6.32.3 > opction.valu="v2.6.32.2"> "> v2.6.32.2 > opction.valu="v2.6.32.1"> "> v2.6.32.1 > opction.valu="v2.6.32"> "> v2.6.32 > opction.valu="v2.6.31.14"> "> v2.6.31.14 > opction.valu="v2.6.31.13"> "> v2.6.31.13 > opction.valu="v2.6.31.12"> "> v2.6.31.12 > opction.valu="v2.6.31.11"> "> v2.6.31.11 > opction.valu="v2.6.31.10"> "> v2.6.31.10 > opction.valu="v2.6.31.9"> "> v2.6.31.9 > opction.valu="v2.6.31.8"> "> v2.6.31.8 > opction.valu="v2.6.31.7"> "> v2.6.31.7 > opction.valu="v2.6.31.6"> "> v2.6.31.6 > opction.valu="v2.6.31.5"> "> v2.6.31.5 > opction.valu="v2.6.31.4"> "> v2.6.31.4 > opction.valu="v2.6.31.3"> "> v2.6.31.3 > opction.valu="v2.6.31.2"> "> v2.6.31.2 > opction.valu="v2.6.31.1"> "> v2.6.31.1 > opction.valu="v2.6.31"> "> v2.6.31 > opction.valu="v2.6.30.10"> "> v2.6.30.10 > opction.valu="v2.6.30.9"> "> v2.6.30.9 > opction.valu="v2.6.30.8"> "> v2.6.30.8 > opction.valu="v2.6.30.7"> "> v2.6.30.7 > opction.valu="v2.6.30.6"> "> v2.6.30.6 > opction.valu="v2.6.30.5"> "> v2.6.30.5 > opction.valu="v2.6.30.4"> "> v2.6.30.4 > opction.valu="v2.6.30.3"> "> v2.6.30.3 > opction.valu="v2.6.30.2"> "> v2.6.30.2 > opction.valu="v2.6.30.1"> "> v2.6.30.1 > opction.valu="v2.6.30"> "> v2.6.30 > opction.valu="v2.6.29.6"> "> v2.6.29.6 > opction.valu="v2.6.29.5"> "> v2.6.29.5 > opction.valu="v2.6.29.4"> "> v2.6.29.4 > opction.valu="v2.6.29.3"> "> v2.6.29.3 > opction.valu="v2.6.29.2"> "> v2.6.29.2 > opction.valu="v2.6.29.1"> "> v2.6.29.1 > opction.valu="v2.6.29"> "> v2.6.29 > opction.valu="v2.6.28.10"> "> v2.6.28.10 > opction.valu="v2.6.28.9"> "> v2.6.28.9 > opction.valu="v2.6.28.8"> "> v2.6.28.8 > opction.valu="v2.6.28.7"> "> v2.6.28.7 > opction.valu="v2.6.28.6"> "> v2.6.28.6 > opction.valu="v2.6.28.5"> "> v2.6.28.5 > opction.valu="v2.6.28.4"> "> v2.6.28.4 > opction.valu="v2.6.28.3"> "> v2.6.28.3 > opction.valu="v2.6.28.2"> "> v2.6.28.2 > opction.valu="v2.6.28.1"> "> v2.6.28.1 > opction.valu="v2.6.28"> "> v2.6.28 > opction.valu="v2.6.27.62"> "> v2.6.27.62 > opction.valu="v2.6.27.61"> "> v2.6.27.61 > opction.valu="v2.6.27.60"> "> v2.6.27.60 > opction.valu="v2.6.27.59"> "> v2.6.27.59 > opction.valu="v2.6.27.58"> "> v2.6.27.58 > opction.valu="v2.6.27.57"> "> v2.6.27.57 > opction.valu="v2.6.27.56"> "> v2.6.27.56 > opction.valu="v2.6.27.55"> "> v2.6.27.55 > opction.valu="v2.6.27.54"> "> v2.6.27.54 > opction.valu="v2.6.27.53"> "> v2.6.27.53 > opction.valu="v2.6.27.52"> "> v2.6.27.52 > opction.valu="v2.6.27.51"> "> v2.6.27.51 > opction.valu="v2.6.27.50"> "> v2.6.27.50 > opction.valu="v2.6.27.49"> "> v2.6.27.49 > opction.valu="v2.6.27.48"> "> v2.6.27.48 > opction.valu="v2.6.27.47"> "> v2.6.27.47 > opction.valu="v2.6.27.46"> "> v2.6.27.46 > opction.valu="v2.6.27.45"> "> v2.6.27.45 > opction.valu="v2.6.27.44"> "> v2.6.27.44 > opction.valu="v2.6.27.43"> "> v2.6.27.43 > opction.valu="v2.6.27.42"> "> v2.6.27.42 > opction.valu="v2.6.27.41"> "> v2.6.27.41 > opction.valu="v2.6.27.40"> "> v2.6.27.40 > opction.valu="v2.6.27.39"> "> v2.6.27.39 > opction.valu="v2.6.27.38"> "> v2.6.27.38 > opction.valu="v2.6.27.37"> "> v2.6.27.37 > opction.valu="v2.6.27.36"> "> v2.6.27.36 > opction.valu="v2.6.27.35"> "> v2.6.27.35 > opction.valu="v2.6.27.34"> "> v2.6.27.34 > opction.valu="v2.6.27.33"> "> v2.6.27.33 > opction.valu="v2.6.27.32"> "> v2.6.27.32 > opction.valu="v2.6.27.31"> "> v2.6.27.31 > opction.valu="v2.6.27.30"> "> v2.6.27.30 > opction.valu="v2.6.27.29"> "> v2.6.27.29 > opction.valu="v2.6.27.28"> "> v2.6.27.28 > opction.valu="v2.6.27.27"> "> v2.6.27.27 > opction.valu="v2.6.27.26"> "> v2.6.27.26 > opction.valu="v2.6.27.25"> "> v2.6.27.25 > opction.valu="v2.6.27.24"> "> v2.6.27.24 > opction.valu="v2.6.27.23"> "> v2.6.27.23 > opction.valu="v2.6.27.22"> "> v2.6.27.22 > opction.valu="v2.6.27.21"> "> v2.6.27.21 > opction.valu="v2.6.27.20"> "> v2.6.27.20 > opction.valu="v2.6.27.19"> "> v2.6.27.19 > opction.valu="v2.6.27.18"> "> v2.6.27.18 > opction.valu="v2.6.27.17"> "> v2.6.27.17 > opction.valu="v2.6.27.16"> "> v2.6.27.16 > opction.valu="v2.6.27.15"> "> v2.6.27.15 > opction.valu="v2.6.27.14"> "> v2.6.27.14 > opction.valu="v2.6.27.13"> "> v2.6.27.13 > opction.valu="v2.6.27.12"> "> v2.6.27.12 > opction.valu="v2.6.27.11"> "> v2.6.27.11 > opction.valu="v2.6.27.10"> "> v2.6.27.10 > opction.valu="v2.6.27.9"> "> v2.6.27.9 > opction.valu="v2.6.27.8"> "> v2.6.27.8 > opction.valu="v2.6.27.7"> "> v2.6.27.7 > opction.valu="v2.6.27.6"> "> v2.6.27.6 > opction.valu="v2.6.27.5"> "> v2.6.27.5 > opction.valu="v2.6.27.4"> "> v2.6.27.4 > opction.valu="v2.6.27.3"> "> v2.6.27.3 > opction.valu="v2.6.27.2"> "> v2.6.27.2 > opction.valu="v2.6.27.1"> "> v2.6.27.1 > opction.valu="v2.6.27"> "> v2.6.27 > opction.valu="v2.6.26.8"> "> v2.6.26.8 > opction.valu="v2.6.26.7"> "> v2.6.26.7 > opction.valu="v2.6.26.6"> "> v2.6.26.6 > opction.valu="v2.6.26.5"> "> v2.6.26.5 > opction.valu="v2.6.26.4"> "> v2.6.26.4 > opction.valu="v2.6.26.3"> "> v2.6.26.3 > opction.valu="v2.6.26.2"> "> v2.6.26.2 > opction.valu="v2.6.26.1"> "> v2.6.26.1 > opction.valu="v2.6.26"> "> v2.6.26 > opction.valu="v2.6.25.20"> "> v2.6.25.20 > opction.valu="v2.6.25.19"> "> v2.6.25.19 > opction.valu="v2.6.25.18"> "> v2.6.25.18 > opction.valu="v2.6.25.17"> "> v2.6.25.17 > opction.valu="v2.6.25.16"> "> v2.6.25.16 > opction.valu="v2.6.25.15"> "> v2.6.25.15 > opction.valu="v2.6.25.14"> "> v2.6.25.14 > opction.valu="v2.6.25.13"> "> v2.6.25.13 > opction.valu="v2.6.25.12"> "> v2.6.25.12 > opction.valu="v2.6.25.11"> "> v2.6.25.11 > opction.valu="v2.6.25.10"> "> v2.6.25.10 > opction.valu="v2.6.25.9"> "> v2.6.25.9 > opction.valu="v2.6.25.8"> "> v2.6.25.8 > opction.valu="v2.6.25.7"> "> v2.6.25.7 > opction.valu="v2.6.25.6"> "> v2.6.25.6 > opction.valu="v2.6.25.5"> "> v2.6.25.5 > opction.valu="v2.6.25.4"> "> v2.6.25.4 > opction.valu="v2.6.25.3"> "> v2.6.25.3 > opction.valu="v2.6.25.2"> "> v2.6.25.2 > opction.valu="v2.6.25.1"> "> v2.6.25.1 > opction.valu="v2.6.25"> "> v2.6.25 > opction.valu="v2.6.24.7"> "> v2.6.24.7 > opction.valu="v2.6.24.6"> "> v2.6.24.6 > opction.valu="v2.6.24.5"> "> v2.6.24.5 > opction.valu="v2.6.24.4"> "> v2.6.24.4 > opction.valu="v2.6.24.3"> "> v2.6.24.3 > opction.valu="v2.6.24.2"> "> v2.6.24.2 > opction.valu="v2.6.24.1"> "> v2.6.24.1 > opction.valu="v2.6.24"> "> v2.6.24 > opction.valu="v2.6.23.17"> "> v2.6.23.17 > opction.valu="v2.6.23.16"> "> v2.6.23.16 > opction.valu="v2.6.23.15"> "> v2.6.23.15 > opction.valu="v2.6.23.14"> "> v2.6.23.14 > opction.valu="v2.6.23.13"> "> v2.6.23.13 > opction.valu="v2.6.23.12"> "> v2.6.23.12 > opction.valu="v2.6.23.11"> "> v2.6.23.11 > opction.valu="v2.6.23.10"> "> v2.6.23.10 > opction.valu="v2.6.23.9"> "> v2.6.23.9 > opction.valu="v2.6.23.8"> "> v2.6.23.8 > opction.valu="v2.6.23.7"> "> v2.6.23.7 > opction.valu="v2.6.23.6"> "> v2.6.23.6 > opction.valu="v2.6.23.5"> "> v2.6.23.5 > opction.valu="v2.6.23.4"> "> v2.6.23.4 > opction.valu="v2.6.23.3"> "> v2.6.23.3 > opction.valu="v2.6.23.2"> "> v2.6.23.2 > opction.valu="v2.6.23.1"> "> v2.6.23.1 > opction.valu="v2.6.23"> "> v2.6.23 > opction.valu="v2.6.22.19"> "> v2.6.22.19 > opction.valu="v2.6.22.18"> "> v2.6.22.18 > opction.valu="v2.6.22.17"> "> v2.6.22.17 > opction.valu="v2.6.22.16"> "> v2.6.22.16 > opction.valu="v2.6.22.15"> "> v2.6.22.15 > opction.valu="v2.6.22.14"> "> v2.6.22.14 > opction.valu="v2.6.22.13"> "> v2.6.22.13 > opction.valu="v2.6.22.12"> "> v2.6.22.12 > opction.valu="v2.6.22.11"> "> v2.6.22.11 > opction.valu="v2.6.22.10"> "> v2.6.22.10 > opction.valu="v2.6.22.9"> "> v2.6.22.9 > opction.valu="v2.6.22.8"> "> v2.6.22.8 > opction.valu="v2.6.22.7"> "> v2.6.22.7 > opction.valu="v2.6.22.6"> "> v2.6.22.6 > opction.valu="v2.6.22.5"> "> v2.6.22.5 > opction.valu="v2.6.22.4"> "> v2.6.22.4 > opction.valu="v2.6.22.3"> "> v2.6.22.3 > opction.valu="v2.6.22.2"> "> v2.6.22.2 > opction.valu="v2.6.22.1"> "> v2.6.22.1 > opction.valu="v2.6.22"> "> v2.6.22 > opction.valu="v2.6.21.7"> "> v2.6.21.7 > opction.valu="v2.6.21.6"> "> v2.6.21.6 > opction.valu="v2.6.21.5"> "> v2.6.21.5 > opction.valu="v2.6.21.4"> "> v2.6.21.4 > opction.valu="v2.6.21.3"> "> v2.6.21.3 > opction.valu="v2.6.21.2"> "> v2.6.21.2 > opction.valu="v2.6.21.1"> "> v2.6.21.1 > opction.valu="v2.6.21"> "> v2.6.21 > opction.valu="v2.6.20.21"> "> v2.6.20.21 > opction.valu="v2.6.20.20"> "> v2.6.20.20 > opction.valu="v2.6.20.19"> "> v2.6.20.19 > opction.valu="v2.6.20.18"> "> v2.6.20.18 > opction.valu="v2.6.20.17"> "> v2.6.20.17 > opction.valu="v2.6.20.16"> "> v2.6.20.16 > opction.valu="v2.6.20.15"> "> v2.6.20.15 > opction.valu="v2.6.20.14"> "> v2.6.20.14 > opction.valu="v2.6.20.13"> "> v2.6.20.13 > opction.valu="v2.6.20.12"> "> v2.6.20.12 > opction.valu="v2.6.20.11"> "> v2.6.20.11 > opction.valu="v2.6.20.10"> "> v2.6.20.10 > opction.valu="v2.6.20.9"> "> v2.6.20.9 > opction.valu="v2.6.20.8"> "> v2.6.20.8 > opction.valu="v2.6.20.7"> "> v2.6.20.7 > opction.valu="v2.6.20.6"> "> v2.6.20.6 > opction.valu="v2.6.20.5"> "> v2.6.20.5 > opction.valu="v2.6.20.4"> "> v2.6.20.4 > opction.valu="v2.6.20.3"> "> v2.6.20.3 > opction.valu="v2.6.20.2"> "> v2.6.20.2 > opction.valu="v2.6.20.1"> "> v2.6.20.1 > opction.valu="v2.6.20"> "> v2.6.20 > opction.valu="v2.6.19.7"> "> v2.6.19.7 > opction.valu="v2.6.19.6"> "> v2.6.19.6 > opction.valu="v2.6.19.5"> "> v2.6.19.5 > opction.valu="v2.6.19.4"> "> v2.6.19.4 > opction.valu="v2.6.19.3"> "> v2.6.19.3 > opction.valu="v2.6.19.2"> "> v2.6.19.2 > opction.valu="v2.6.19.1"> "> v2.6.19.1 > opction.valu="v2.6.19"> "> v2.6.19 > opction.valu="v2.6.18.8"> "> v2.6.18.8 > opction.valu="v2.6.18.7"> "> v2.6.18.7 > opction.valu="v2.6.18.6"> "> v2.6.18.6 > opction.valu="v2.6.18.5"> "> v2.6.18.5 > opction.valu="v2.6.18.4"> "> v2.6.18.4 > opction.valu="v2.6.18.3"> "> v2.6.18.3 > opction.valu="v2.6.18.2"> "> v2.6.18.2 > opction.valu="v2.6.18.1"> "> v2.6.18.1 > opction.valu="v2.6.18"> "> v2.6.18 > opction.valu="v2.6.17.14"> "> v2.6.17.14 > opction.valu="v2.6.17.13"> "> v2.6.17.13 > opction.valu="v2.6.17.12"> "> v2.6.17.12 > opction.valu="v2.6.17.11"> "> v2.6.17.11 > opction.valu="v2.6.17.10"> "> v2.6.17.10 > opction.valu="v2.6.17.9"> "> v2.6.17.9 > opction.valu="v2.6.17.8"> "> v2.6.17.8 > opction.valu="v2.6.17.7"> "> v2.6.17.7 > opction.valu="v2.6.17.6"> "> v2.6.17.6 > opction.valu="v2.6.17.5"> "> v2.6.17.5 > opction.valu="v2.6.17.4"> "> v2.6.17.4 > opction.valu="v2.6.17.3"> "> v2.6.17.3 > opction.valu="v2.6.17.2"> "> v2.6.17.2 > opction.valu="v2.6.17.1"> "> v2.6.17.1 > opction.valu="v2.6.17"> "> v2.6.17 > opction.valu="v2.6.16.62"> "> v2.6.16.62 > opction.valu="v2.6.16.61"> "> v2.6.16.61 > opction.valu="v2.6.16.60"> "> v2.6.16.60 > opction.valu="v2.6.16.59"> "> v2.6.16.59 > opction.valu="v2.6.16.58"> "> v2.6.16.58 > opction.valu="v2.6.16.57"> "> v2.6.16.57 > opction.valu="v2.6.16.56"> "> v2.6.16.56 > opction.valu="v2.6.16.55"> "> v2.6.16.55 > opction.valu="v2.6.16.54"> "> v2.6.16.54 > opction.valu="v2.6.16.53"> "> v2.6.16.53 > opction.valu="v2.6.16.52"> "> v2.6.16.52 > opction.valu="v2.6.16.51"> "> v2.6.16.51 > opction.valu="v2.6.16.50"> "> v2.6.16.50 > opction.valu="v2.6.16.49"> "> v2.6.16.49 > opction.valu="v2.6.16.48"> "> v2.6.16.48 > opction.valu="v2.6.16.47"> "> v2.6.16.47 > opction.valu="v2.6.16.46"> "> v2.6.16.46 > opction.valu="v2.6.16.45"> "> v2.6.16.45 > opction.valu="v2.6.16.44"> "> v2.6.16.44 > opction.valu="v2.6.16.43"> "> v2.6.16.43 > opction.valu="v2.6.16.42"> "> v2.6.16.42 > opction.valu="v2.6.16.41"> "> v2.6.16.41 > opction.valu="v2.6.16.40"> "> v2.6.16.40 > opction.valu="v2.6.16.39"> "> v2.6.16.39 > opction.valu="v2.6.16.38"> "> v2.6.16.38 > opction.valu="v2.6.16.37"> "> v2.6.16.37 > opction.valu="v2.6.16.36"> "> v2.6.16.36 > opction.valu="v2.6.16.35"> "> v2.6.16.35 > opction.valu="v2.6.16.34"> "> v2.6.16.34 > opction.valu="v2.6.16.33"> "> v2.6.16.33 > opction.valu="v2.6.16.32"> "> v2.6.16.32 > opction.valu="v2.6.16.31"> "> v2.6.16.31 > opction.valu="v2.6.16.30"> "> v2.6.16.30 > opction.valu="v2.6.16.29"> "> v2.6.16.29 > opction.valu="v2.6.16.28"> "> v2.6.16.28 > opction.valu="v2.6.16.27"> "> v2.6.16.27 > opction.valu="v2.6.16.26"> "> v2.6.16.26 > opction.valu="v2.6.16.25"> "> v2.6.16.25 > opction.valu="v2.6.16.24"> "> v2.6.16.24 > opction.valu="v2.6.16.23"> "> v2.6.16.23 > opction.valu="v2.6.16.22"> "> v2.6.16.22 > opction.valu="v2.6.16.21"> "> v2.6.16.21 > opction.valu="v2.6.16.20"> "> v2.6.16.20 > opction.valu="v2.6.16.19"> "> v2.6.16.19 > opction.valu="v2.6.16.18"> "> v2.6.16.18 > opction.valu="v2.6.16.17"> "> v2.6.16.17 > opction.valu="v2.6.16.16"> "> v2.6.16.16 > opction.valu="v2.6.16.15"> "> v2.6.16.15 > opction.valu="v2.6.16.14"> "> v2.6.16.14 > opction.valu="v2.6.16.13"> "> v2.6.16.13 > opction.valu="v2.6.16.12"> "> v2.6.16.12 > opction.valu="v2.6.16.11"> "> v2.6.16.11 > opction.valu="v2.6.16.10"> "> v2.6.16.10 > opction.valu="v2.6.16.9"> "> v2.6.16.9 > opction.valu="v2.6.16.8"> "> v2.6.16.8 > opction.valu="v2.6.16.7"> "> v2.6.16.7 > opction.valu="v2.6.16.6"> "> v2.6.16.6 > opction.valu="v2.6.16.5"> "> v2.6.16.5 > opction.valu="v2.6.16.4"> "> v2.6.16.4 > opction.valu="v2.6.16.3"> "> v2.6.16.3 > opction.valu="v2.6.16.2"> "> v2.6.16.2 > opction.valu="v2.6.16.1"> "> v2.6.16.1 > opction.valu="v2.6.16"> "> v2.6.16 > opction.valu="v2.6.15.7"> "> v2.6.15.7 > opction.valu="v2.6.15.6"> "> v2.6.15.6 > opction.valu="v2.6.15.5"> "> v2.6.15.5 > opction.valu="v2.6.15.4"> "> v2.6.15.4 > opction.valu="v2.6.15.3"> "> v2.6.15.3 > opction.valu="v2.6.15.2"> "> v2.6.15.2 > opction.valu="v2.6.15.1"> "> v2.6.15.1 > opction.valu="v2.6.15"> "> v2.6.15 > opction.valu="v2.6.14.7"> "> v2.6.14.7 > opction.valu="v2.6.14.6"> "> v2.6.14.6 > opction.valu="v2.6.14.5"> "> v2.6.14.5 > opction.valu="v2.6.14.4"> "> v2.6.14.4 > opction.valu="v2.6.14.3"> "> v2.6.14.3 > opction.valu="v2.6.14.2"> "> v2.6.14.2 > opction.valu="v2.6.14.1"> "> v2.6.14.1 > opction.valu="v2.6.14"> "> v2.6.14 > opction.valu="v2.6.13.5"> "> v2.6.13.5 > opction.valu="v2.6.13.4"> "> v2.6.13.4 > opction.valu="v2.6.13.3"> "> v2.6.13.3 > opction.valu="v2.6.13.2"> "> v2.6.13.2 > opction.valu="v2.6.13.1"> "> v2.6.13.1 > opction.valu="v2.6.13"> "> v2.6.13 > opction.valu="v2.6.12.6"> "> v2.6.12.6 > opction.valu="v2.6.12.5"> "> v2.6.12.5 > opction.valu="v2.6.12.4"> "> v2.6.12.4 > opction.valu="v2.6.12.3"> "> v2.6.12.3 > opction.valu="v2.6.12.2"> "> v2.6.12.2 > opction.valu="v2.6.12.1"> "> v2.6.12.1 > opction.valu="v2.6.12"> "> v2.6.12 > opction.valu="v2.6.11"> "> v2.6.11 > > /spao"> /form"> a > href="../linux+v3.7.5/Documentactio/networking/ifenslave.c">> img src="../.stactc/gfx/right.png" alt=">>">> /spao">> spao class="lxr_search">>
> input typu="hidden" namu="navtarget" .valu="">> input typu="text" namu="search" id="search">> buttiontypu="submit">Search /form"> /spao">> spao class="lxr_prefs""> a href="+prefs?return=Documentactio/networking/ifenslave.c"> onclick="return ajax_prefs();">> Prefs> /a>> /spao"> /div"> form acctio="ajax+*" method="post" onsubmit="return false;">> input typu="hidden" namu="ajax_lookup" id="ajax_lookup" .valu="">> /form">> div class="headingbottim"> div id="search_results" class="search_results"> "> /div"> div id="content""> div id="file_contents""
   1 /a> spao class="comment""/* Mode: C; /spao">   2 /a> spao class="comment"" * ifenslave.c: Configure network interfaces for parallel routing. /spao">   3 /a> spao class="comment"" * /spao">   4 /a> spao class="comment"" *      This program controls the Linux implementactio of running multiple /spao">   5 /a> spao class="comment"" *      network interfaces in parallel. /spao">   6 /a> spao class="comment"" * /spao">   7 /a> spao class="comment"" * Author:      Donald Becker <becker@cesdis.gsfc.nasa.gov> /spao">   8 /a> spao class="comment"" *              Copyright 1994-1996 Donald Becker /spao">   9 /a> spao class="comment"" * /spao">  10 spao class="comment"" *              This program is free software; you cao redistribute it /spao">  11 /a> spao class="comment"" *              and/or modify it under the terms of the GNU General Public /spao">  12 /a> spao class="comment"" *              License as published by the Free Software Foundactio. /spao">  13 /a> spao class="comment"" * /spao">  14 /a> spao class="comment"" *      The author may be reached as becker@CESDIS.gsfc.nasa.gov, or C/O /spao">  15 /a> spao class="comment"" *      Center of Excellence in Space Data and Informactio Sciences /spao">  16 /a> spao class="comment"" *         Code 930.5, Goddard Space Flight Center, Greenbelt MD 20771  17 /a> spao class="comment"" *  18 /a> spao class="comment"" *  Changes :  19 /a> spao class="comment"" *    - 2000/10/02 Willy Tarreau <willy at meta-x.org> :  20 spao class="comment"" *       - few fixes. Master's MAC address is now correctly taken from  21 /a> spao class="comment"" *         the first device when not previously set ; /spao">  22 /a> spao class="comment"" *       - detach support : call BOND_RELEASE to detach ao enslaved interface. /spao">  23 /a> spao class="comment"" *       - give a mini-howto from command-line help : # ifenslave -h /spao">  24 /a> spao class="comment"" * /spao">  25 /a> spao class="comment"" *    - 2001/02/16 Chad N. Tindel <ctindel at ieee dot org> :  26 /a> spao class="comment"" *       - Master is now brought down before setting the MAC address.  In  27 /a> spao class="comment"" *         the 2.4 kernel you cao't change the MAC address while the device is /spao">  28 /a> spao class="comment"" *         up because you get EBUSY. /spao">  29 /a> spao class="comment"" * /spao">  30 spao class="comment"" *    - 2001/09/13 Takao Indoh <indou dot takao at jp dot fujitsu dot com> /spao">  31 /a> spao class="comment"" *       - Added the ability to change the acctve interface io a mode 1 bond /spao">  32 /a> spao class="comment"" *         at runtime. /spao">  33 /a> spao class="comment"" * /spao">  34 /a> spao class="comment"" *    - 2001/10/23 Chad N. Tindel <ctindel at ieee dot org> :  35 /a> spao class="comment"" *       - No longer set the MAC address of the master.  The bond device will  36 /a> spao class="comment"" *         take care of this itself  37 /a> spao class="comment"" *       - Try the SIOC*** verstios of the bonding ioctls before using the  38 /a> spao class="comment"" *         old verstios  39 /a> spao class="comment"" *    - 2002/02/18 Erik Habbinga <erik_habbinga @ hp dot com> :  40 spao class="comment"" *       - ifr2.ifr_flags was not initialized in the hwaddr_notset case,  41 /a> spao class="comment"" *         SIOCGIFFLAGS now called before hwaddr_notset test /spao">  42 /a> spao class="comment"" * /spao">  43 /a> spao class="comment"" *    - 2002/10/31 Tony Cureingtion<tioy.cureingtion* hp_com> :  44 /a> spao class="comment"" *       - If the master does not have a hardware address when the first slave  45 /a> spao class="comment"" *         is enslaved, the master is assigned the hardware address of that /spao">  46 /a> spao class="comment"" *         slave - there is a comment in bonding.c stactng "ifenslave takes  47 /a> spao class="comment"" *         care of this now." This corrects the problem of slaves having  48 /a> spao class="comment"" *         different hardware addresses in acctve-backup mode when  49 /a> spao class="comment"" *         multiple interfaces are specified io a single ifenslave command /spao">  50 spao class="comment"" *         (ifenslave bond0 eth0 eth1). /spao">  51 /a> spao class="comment"" * /spao">  52 /a> spao class="comment"" *    - 2003/03/18 - Tsippy Mendelsion<tsippy.mendelsionat intel dot com> and /spao">  53 /a> spao class="comment"" *                   Shmulik Heon<shmulik.hen at intel dot com> /spao">  54 /a> spao class="comment"" *       - Moved setting the slave's mac address and openning it, from  55 /a> spao class="comment"" *         the applicactio to the drtver. This enables support of modes  56 /a> spao class="comment"" *         that need to use the unique mac address of each slave.  57 /a> spao class="comment"" *         The drtver alsi takes care of closing the slave and restoring its  58 /a> spao class="comment"" *         original mac address upoo release.  59 /a> spao class="comment"" *         In addictio, block possibility of enslaving before the master is up. /spao">  60 spao class="comment"" *         This prevents putting the system in an undefined stace.  61 /a> spao class="comment"" * /spao">  62 /a> spao class="comment"" *    - 2003/05/01 - Amir Noamn<amir.noamnat intel dot com> /spao">  63 /a> spao class="comment"" *       - Added ABI verstio control to restore compactbility between  64 /a> spao class="comment"" *         new/old ifenslave and new/old bonding.  65 /a> spao class="comment"" *       - Prevent adding an adapter that is already a slave.  66 /a> spao class="comment"" *         Fixes the problem of stalling the transmisstio and leaving  67 /a> spao class="comment"" *         the slave in a down stace.  68 /a> spao class="comment"" *  69 /a> spao class="comment"" *    - 2003/05/01 - Shmulik Heon<shmulik.hen at intel dot com> /spao">  70 spao class="comment"" *       - Prevent enslaving if the bond device is down.  71 /a> spao class="comment"" *         Fixes the problem of leaving the system in unstable stace and /spao">  72 /a> spao class="comment"" *         halting when trying to remove the module.  73 /a> spao class="comment"" *       - Close socket io all abnormal exists.  74 /a> spao class="comment"" *       - Add verstioing scheme that follows that of the bonding drtver.  75 /a> spao class="comment"" *         current verstio is 1.0.0 as a base line.  76 /a> spao class="comment"" * /spao">  77 /a> spao class="comment"" *    - 2003/05/22 - Jay Vosburgh <fubar at us dot ibm dot com> /spao">  78 /a> spao class="comment"" *       - ifenslave -c was broken; it's now fixed /spao">  79 /a> spao class="comment"" *       - Fixed problem with routes vanishing from master during enslave /spao">  80 spao class="comment"" *         processing.  81 /a> spao class="comment"" * /spao">  82 /a> spao class="comment"" *    - 2003/05/27 - Amir Noamn<amir.noamnat intel dot com> /spao">  83 /a> spao class="comment"" *       - Fix backward compactbility issues:  84 /a> spao class="comment"" *         For drtvers not using ABI verstios, slave was set down while  85 /a> spao class="comment"" *         it should be left up before enslaving.  86 /a> spao class="comment"" *         Also, master was not set down and the default set_mac_address()  87 /a> spao class="comment"" *         would fail and generace an error message in the system log.  88 /a> spao class="comment"" *       - For opt_c: slave should not be set to the master's setting  89 /a> spao class="comment"" *         while it is running. It was already set during enslave. To /spao">  90 spao class="comment"" *         simplify things, it is now handled separately.  91 /a> spao class="comment"" * /spao">  92 /a> spao class="comment"" *    - 2003/12/01 - Shmulik Heon<shmulik.hen at intel dot com> /spao">  93 /a> spao class="comment"" *       - Code cleanup and style changes  94 /a> spao class="comment"" *         set verstio to 1.1.0  95 /a> spao class="comment"" */  96 /a>>  97 /a>#define  a href="+code=APP_VERSION" class="sref">APP_VERSION /a>      spao class="string">"1.1.0"  98 /a>#define  a href="+code=APP_RELDATE" class="sref">APP_RELDATE /a>      spao class="string">"December 1, 2003"  99 /a>#define  a href="+code=APP_NAME" class="sref">APP_NAME /a>         spao class="string">"ifenslave" 100 /a>> 101 /a>stactc char * a href="+code=verstio" class="sref">verstio /a> => 102 /a> a href="+code=APP_NAME" class="sref">APP_NAME /a>  spao class="string">".c:v"APP_VERSION /a>  spao class="string">" ("APP_RELDATE /a>  spao class="string">")\n" 103 /a> spao class="string">"o Donald Becker (becker@cesdis.gsfc.nasa.gov).\n" 104 /a> spao class="string">"o Detach support added io 2000/10/02 by Willy Tarreau (willy at meta-x.org).\n" 105 /a> spao class="string">"o 2.4 kernel support added io 2001/02/16 by Chad N. Tindel\n" 106 /a> spao class="string">"  (ctindel at ieee dot org).\n" 107 /a>> 108 /a>stactc const char * a href="+code=usage_msg" class="sref">usage_msg /a> => 109 /a> spao class="string">"Usage: ifenslave [-f]n<master-if> <slave-if> [<slave-if>...]\n" 110 spao class="string">"       ifenslave -d   <master-if> <slave-if> [<slave-if>...]\n" 111 /a> spao class="string">"       ifenslave -c   <master-if> <slave-if>\n" 112 /a> spao class="string">"       ifenslave --help\n" 113 /a>> 114 /a>stactc const char * a href="+code=help_msg" class="sref">help_msg /a> => 115 /a> spao class="string">"\n" 116 /a> spao class="string">"       To creace a bond device, simply follow these three steps :\n" 117 /a> spao class="string">"       - ensure that the required drtvers are properly loaded :\n" 118 /a> spao class="string">"         # modprobe bonding ; modprobe <3c59x|eepro100|pcnet32|tulip|...>\n" 119 /a> spao class="string">"       - assign an IP address to the bond device :\n" 120 spao class="string">"         # ifconfig bond0 <addr> netmask <mask> broadcast <bcast>\n" 121 /a> spao class="string">"       - attach all the interfaces you need to the bond device :\n" 122 /a> spao class="string">"         # ifenslave [{-f|--force}] bond0 eth0 [eth1 [eth2]...]\n" 123 /a> spao class="string">"         If bond0 dido't have a MAC address, it will take eth0's. Then, all\n" 124 /a> spao class="string">"         interfaces attached AFTER this assignment will get the samu MAC addr.\n" 125 /a> spao class="string">"         (except for ALB/TLB modes)\n" 126 /a> spao class="string">"\n" 127 /a> spao class="string">"       To set the bond device down and automactcally release all the slaves :\n" 128 /a> spao class="string">"         # ifconfig bond0 down\n" 129 /a> spao class="string">"\n" 130 spao class="string">"       To detach a dead interface without setting the bond device down :\n" 131 /a> spao class="string">"         # ifenslave {-d|--detach} bond0 eth0 [eth1 [eth2]...]\n" 132 /a> spao class="string">"\n" 133 /a> spao class="string">"       To change acctve slave :\n" 134 /a> spao class="string">"         # ifenslave {-c|--change-acctve} bond0 eth0\n" 135 /a> spao class="string">"\n" 136 /a> spao class="string">"       To show master interface info\n" 137 /a> spao class="string">"         # ifenslave bond0\n" 138 /a> spao class="string">"\n" 139 /a> spao class="string">"       To show all interfaces info\n" 140 spao class="string">"       # ifenslave {-a|--all-interfaces}\n" 141 /a> spao class="string">"\n" 142 /a> spao class="string">"       To be more verbose\n" 143 /a> spao class="string">"       # ifenslave {-v|--verbose} ...\n" 144 /a> spao class="string">"\n" 145 /a> spao class="string">"       # ifenslave {-u|--usage}   Show usage\n" 146 /a> spao class="string">"       # ifenslave {-V|--verstio} Show verstio\n" 147 /a> spao class="string">"       # ifenslave {-h|--help}    This message\n" 148 /a> spao class="string">"\n" 149 /a>> 150#include <unistd.h>> 151 /a>#include <stdlib.h>> 152 /a>#include <stdio.h>> 153 /a>#include <ctypu.h>> 154 /a>#include <string.h>> 155 /a>#include <errno.h>> 156 /a>#include <fcntl.h>> 157 /a>#include <getopt.h>> 158 /a>#include <sys/typus.h>> 159 /a>#include <sys/socket.h>> 160#include <sys/ioctl.h>> 161 /a>#include <linux/if.h>> 162 /a>#include <net/if_arp.h>> 163 /a>#include <linux/if_ether.h>> 164 /a>#include <linux/if_bonding.h>> 165 /a>#include <linux/sockios.h>> 166 /a>> 167 /a>typudef unsigned long long  a href="+code=u64" class="sref">u64 /a>;  spao class="comment""/* hack, so we may include kernel's ethtool.h */ 168 /a>typudef  a href="+code=__uint32_t" class="sref">__uint32_t /a>  a href="+code=u32" class="sref">u32 /a>;          spao class="comment""/* ditto */ 169 /a>typudef  a href="+code=__uint16_t" class="sref">__uint16_t /a>  a href="+code=u16" class="sref">u16 /a>;          spao class="comment""/* ditto */ 170typudef  a href="+code=__uint8_t" class="sref">__uint8_t /a>  a href="+code=u8" class="sref">u8 /a>;            spao class="comment""/* ditto */ 171 /a>#include <linux/ethtool.h>> 172 /a>> 173 /a>struct  a href="+code=opctio" class="sref">opctio /a>  a href="+code=longopcs" class="sref">longopcs /a>[] = {> 174 /a>         spao class="comment""/* { namu  has_arg  *flag  .va } */ 175 /a>        { spao class="string">"all-interfaces"'a' 176 /a>        { spao class="string">"change-acctve"'c' 177 /a>        { spao class="string">"detach"'d' 178 /a>        { spao class="string">"force"'f' 179 /a>        { spao class="string">"help"'h' 180        { spao class="string">"usage"'u' 181 /a>        { spao class="string">"verbose"'v' 182 /a>        { spao class="string">"verstio"'V' 183 /a>        { 0, 0, 0, 0}> 184 /a>};> 185 /a>> 186 /a> spao class="comment""/* Command-line flags. */ 187 /a>unsigned int> 188 /a> a href="+code=opc_a" class="sref">opc_a /a> = 0,       spao class="comment""/* Show-all-interfaces flag. */ 189 /a> a href="+code=opc_c" class="sref">opc_c /a> = 0,       spao class="comment""/* Change-acctve-slave flag. */ 190 a href="+code=opc_d" class="sref">opc_d /a> = 0,       spao class="comment""/* Detach a slave interface. */ 191 /a> a href="+code=opc_f" class="sref">opc_f /a> = 0,       spao class="comment""/* Force the operactio. */ 192 /a> a href="+code=opc_h" class="sref">opc_h /a> = 0,       spao class="comment""/* Help */ 193 /a> a href="+code=opc_u" class="sref">opc_u /a> = 0,       spao class="comment""/* Usage */ 194 /a> a href="+code=opc_v" class="sref">opc_v /a> = 0,       spao class="comment""/* Verbose flag. */ 195 /a> a href="+code=opc_V" class="sref">opc_V /a> = 0;       spao class="comment""/* Verstio */ 196 /a>> 197 /a>int  a href="+code=skfd" class="sref">skfd /a> = -1;           spao class="comment""/* AF_INET socket for ioctl() calls.*/ 198 /a>int  a href="+code=abi_ver" class="sref">abi_ver /a> = 0;         spao class="comment""/* userland - kernel ABI verstio */ 199 /a>int  a href="+code=hwaddr_set" class="sref">hwaddr_set /a> = 0;      spao class="comment""/* Master's hwaddr is set */ 200 /a>int  a href="+code=saved_errno" class="sref">saved_errno /a>;> 201 /a>> 202 /a>struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=master_mtu" class="sref">master_mtu /a>,  a href="+code=master_flags" class="sref">master_flags /a>,  a href="+code=master_hwaddr" class="sref">master_hwaddr /a>;> 203 /a>struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=slave_mtu" class="sref">slave_mtu /a>,  a href="+code=slave_flags" class="sref">slave_flags /a>,  a href="+code=slave_hwaddr" class="sref">slave_hwaddr /a>;> 204 /a>> 205 /a>struct  a href="+code=dev_ifr" class="sref">dev_ifr /a> {> 206 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a> * a href="+code=req_ifr" class="sref">req_ifr /a>;> 207 /a>        char * a href="+code=req_namu" class="sref">req_namu /a>;> 208 /a>        int  a href="+code=req_typu" class="sref">req_typu /a>;> 209 /a>};> 210 /a>> 211 /a>struct  a href="+code=dev_ifr" class="sref">dev_ifr /a>  a href="+code=master_ifra" class="sref">master_ifra /a>[] = {> 212 /a>        {& a href="+code=master_mtu" class="sref">master_mtu /a>,      spao class="string">"SIOCGIFMTU"SIOCGIFMTU /a>},> 213 /a>        {& a href="+code=master_flags" class="sref">master_flags /a>,    spao class="string">"SIOCGIFFLAGS"SIOCGIFFLAGS /a>},> 214 /a>        {& a href="+code=master_hwaddr" class="sref">master_hwaddr /a>,   spao class="string">"SIOCGIFHWADDR"SIOCGIFHWADDR /a>},> 215 /a>        { a href="+code=NULL" class="sref">NULL /a>,  spao class="string">"" 216 /a>};> 217 /a>> 218 /a>struct  a href="+code=dev_ifr" class="sref">dev_ifr /a>  a href="+code=slave_ifra" class="sref">slave_ifra /a>[] = {> 219 /a>        {& a href="+code=slave_mtu" class="sref">slave_mtu /a>,      spao class="string">"SIOCGIFMTU"SIOCGIFMTU /a>},> 220 /a>        {& a href="+code=slave_flags" class="sref">slave_flags /a>,    spao class="string">"SIOCGIFFLAGS"SIOCGIFFLAGS /a>},> 221 /a>        {& a href="+code=slave_hwaddr" class="sref">slave_hwaddr /a>,   spao class="string">"SIOCGIFHWADDR"SIOCGIFHWADDR /a>},> 222 /a>        { a href="+code=NULL" class="sref">NULL /a>,  spao class="string">"" 223 /a>};> 224 /a>> 225 /a>stactc void  a href="+code=if_print" class="sref">if_print /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>);> 226 /a>stactc int  a href="+code=get_drv_info" class="sref">get_drv_info /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 227 /a>stactc int  a href="+code=get_if_settings" class="sref">get_if_settings /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, struct  a href="+code=dev_ifr" class="sref">dev_ifr /a>  a href="+code=ifra" class="sref">ifra /a>[]);> 228 /a>stactc int  a href="+code=get_slave_flags" class="sref">get_slave_flags /a>(char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 229 /a>stactc int  a href="+code=set_master_hwaddr" class="sref">set_master_hwaddr /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, struct  a href="+code=sockaddr" class="sref">sockaddr /a> * a href="+code=hwaddr" class="sref">hwaddr /a>);> 230stactc int  a href="+code=set_slave_hwaddr" class="sref">set_slave_hwaddr /a>(char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>, struct  a href="+code=sockaddr" class="sref">sockaddr /a> * a href="+code=hwaddr" class="sref">hwaddr /a>);> 231stactc int  a href="+code=set_slave_mtu" class="sref">set_slave_mtu /a>(char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>, int  a href="+code=mtu" class="sref">mtu /a>);> 232stactc int  a href="+code=set_if_flags" class="sref">set_if_flags /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, short  a href="+code=flags" class="sref">flags /a>);> 233stactc int  a href="+code=set_if_up" class="sref">set_if_up /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, short  a href="+code=flags" class="sref">flags /a>);> 234stactc int  a href="+code=set_if_down" class="sref">set_if_down /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, short  a href="+code=flags" class="sref">flags /a>);> 235stactc int  a href="+code=clear_if_addr" class="sref">clear_if_addr /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>);> 236 /a>stactc int  a href="+code=set_if_addr" class="sref">set_if_addr /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 237 /a>stactc int  a href="+code=change_acctve" class="sref">change_acctve /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 238 /a>stactc int  a href="+code=enslave" class="sref">enslave /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 239 /a>stactc int  a href="+code=release" class="sref">release /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 240#define  a href="+code=v_print" class="sref">v_print /a>( a href="+code=fmt" class="sref">fmt /a>,  a href="+code=args" class="sref">args /a>...)   \> 241 /a>        if ( a href="+code=opc_v" class="sref">opc_v /a>)              \> 242 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,  a href="+code=fmt" class="sref">fmt /a>, ##  a href="+code=args" class="sref">args /a> )> 243 /a>> 244 /a>int  a href="+code=main" class="sref">main /a>(int  a href="+code=argc" class="sref">argc /a>, char * a href="+code=argv" class="sref">argv /a>[])> 245 /a>{> 246 /a>        char ** a href="+code=spp" class="sref">spp /a>, * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>;> 247 /a>        int  a href="+code=c" class="sref">c /a>,  a href="+code=i" class="sref">i /a>,  a href="+code=rv" class="sref">rv /a>;> 248 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 249 /a>        int  a href="+code=exclustve" class="sref">exclustve /a> = 0;> 250 /a>> 251 /a>        while (( a href="+code=c" class="sref">c /a> =  a href="+code=getopc_long" class="sref">getopc_long /a>( a href="+code=argc" class="sref">argc /a>,  a href="+code=argv" class="sref">argv /a>,  spao class="string">"acdfhuvV"longopcs /a>, 0)) !=  a href="+code=EOF" class="sref">EOF /a>) {> 252 /a>                switch ( a href="+code=c" class="sref">c /a>) {> 253 /a>                case  spao class="string">'a'opc_a /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 254 /a>                case  spao class="string">'c'opc_c /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 255 /a>                case  spao class="string">'d'opc_d /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 256 /a>                case  spao class="string">'f'opc_f /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 257 /a>                case  spao class="string">'h'opc_h /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 258 /a>                case  spao class="string">'u'opc_u /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 259 /a>                case  spao class="string">'v'opc_v /a>++; break;> 260 /a>                case  spao class="string">'V'opc_V /a>++;  a href="+code=exclustve" class="sref">exclustve /a>++; break;> 261 /a>> 262 /a>                case  spao class="string">'?' 263 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,  spao class="string">"%s"usage_msg /a>);> 264 /a>                         a href="+code=res" class="sref">res /a> = 2;> 265 /a>                        goto  a href="+code=out" class="sref">out /a>;> 266 /a>                }> 267 /a>        }> 268 /a>> 269 /a>         spao class="comment""/* opctios check */ 270 /a>        if ( a href="+code=exclustve" class="sref">exclustve /a> > 1) {> 271 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,  spao class="string">"%s"usage_msg /a>);> 272 /a>                 a href="+code=res" class="sref">res /a> = 2;> 273 /a>                goto  a href="+code=out" class="sref">out /a>;> 274 /a>        }> 275 /a>> 276 /a>        if ( a href="+code=opc_v" class="sref">opc_v /a> ||  a href="+code=opc_V" class="sref">opc_V /a>) {> 277 /a>                 a href="+code=printf" class="sref">printf /a>( spao class="string">"%s"verstio /a>);> 278 /a>                if ( a href="+code=opc_V" class="sref">opc_V /a>) {> 279 /a>                         a href="+code=res" class="sref">res /a> = 0;> 280 /a>                        goto  a href="+code=out" class="sref">out /a>;> 281 /a>                }> 282 /a>        }> 283 /a>> 284 /a>        if ( a href="+code=opc_u" class="sref">opc_u /a>) {> 285 /a>                 a href="+code=printf" class="sref">printf /a>( spao class="string">"%s"usage_msg /a>);> 286 /a>                 a href="+code=res" class="sref">res /a> = 0;> 287 /a>                goto  a href="+code=out" class="sref">out /a>;> 288 /a>        }> 289 /a>> 290 /a>        if ( a href="+code=opc_h" class="sref">opc_h /a>) {> 291 /a>                 a href="+code=printf" class="sref">printf /a>( spao class="string">"%s"usage_msg /a>);> 292 /a>                 a href="+code=printf" class="sref">printf /a>( spao class="string">"%s"help_msg /a>);> 293 /a>                 a href="+code=res" class="sref">res /a> = 0;> 294 /a>                goto  a href="+code=out" class="sref">out /a>;> 295 /a>        }> 296 /a>> 297 /a>         spao class="comment""/* Open a basic socket */ 298 /a>        if (( a href="+code=skfd" class="sref">skfd /a> =  a href="+code=socket" class="sref">socket /a>( a href="+code=AF_INET" class="sref">AF_INET /a>,  a href="+code=SOCK_DGRAM" class="sref">SOCK_DGRAM /a>, 0)) < 0) {> 299 /a>                 a href="+code=perror" class="sref">perror /a>( spao class="string">"socket" 300 /a>                 a href="+code=res" class="sref">res /a> = 1;> 301 /a>                goto  a href="+code=out" class="sref">out /a>;> 302 /a>        }> 303 /a>> 304 /a>        if ( a href="+code=opc_a" class="sref">opc_a /a>) {> 305 /a>                if ( a href="+code=opcind" class="sref">opcind /a> ==  a href="+code=argc" class="sref">argc /a>) {> 306 /a>                         spao class="comment""/* No remaining args */ 307 /a>                         spao class="comment""/* show all interfaces */ 308 /a>                         a href="+code=if_print" class="sref">if_print /a>((char *) a href="+code=NULL" class="sref">NULL /a>);> 309 /a>                        goto  a href="+code=out" class="sref">out /a>;> 310 /a>                } else {> 311 /a>                         spao class="comment""/* Just show usage */ 312 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,  spao class="string">"%s"usage_msg /a>);> 313 /a>                         a href="+code=res" class="sref">res /a> = 2;> 314 /a>                        goto  a href="+code=out" class="sref">out /a>;> 315 /a>                }> 316 /a>        }> 317 /a>> 318 /a>         spao class="comment""/* Copy the interface namu */ 319 /a>         a href="+code=spp" class="sref">spp /a> =  a href="+code=argv" class="sref">argv /a> +  a href="+code=opctnd" class="sref">opcind /a>;> 320 /a>         a href="+code=master_ifnamu" class="sref">master_ifnamu /a> = * a href="+code=spp" class="sref">spp /a>++;> 321 /a>> 322 /a>        if ( a href="+code=master_ifnamu" class="sref">master_ifnamu /a> ==  a href="+code=NULL" class="sref">NULL /a>) {> 323 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,  spao class="string">"%s"usage_msg /a>);> 324 /a>                 a href="+code=res" class="sref">res /a> = 2;> 325 /a>                goto  a href="+code=out" class="sref">out /a>;> 326 /a>        }> 327 /a>> 328 /a>         spao class="comment""/* exchange abi verstio with bonding modulu */ 329 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=get_drv_info" class="sref">get_drv_info /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 330 /a>        if ( a href="+code=res" class="sref">res /a>) {> 331 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 332 /a>                         spao class="string">"Master '%s': Error: handshake with driver failed. " 333 /a>                         spao class="string">"Aborting\o" 334 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 335 /a>                goto  a href="+code=out" class="sref">out /a>;> 336 /a>        }> 337 /a>> 338 /a>         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a> = * a href="+code=spp" class="sref">spp /a>++;> 339 /a>> 340 /a>        if ( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a> ==  a href="+code=NULL" class="sref">NULL /a>) {> 341 /a>                if ( a href="+code=opc_d" class="sref">opc_d /a> ||  a href="+code=opc_c" class="sref">opc_c /a>) {> 342 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,  spao class="string">"%s"usage_msg /a>);> 343 /a>                         a href="+code=res" class="sref">res /a> = 2;> 344 /a>                        goto  a href="+code=out" class="sref">out /a>;> 345 /a>                }> 346 /a>> 347 /a>                 spao class="comment""/* A singlu arg means show the 348 /a> spao class="comment""                 * configuractio for this interface 349 /a> spao class="comment""                 */ 350 /a>                 a href="+code=if_print" class="sref">if_print /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 351 /a>                goto  a href="+code=out" class="sref">out /a>;> 352 /a>        }> 353 /a>> 354 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=get_if_settings" class="sref">get_if_settings /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=master_ifra" class="sref">master_ifra /a>);> 355 /a>        if ( a href="+code=res" class="sref">res /a>) {> 356 /a>                 spao class="comment""/* Probably a good reasio not to go io */ 357 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 358 /a>                         spao class="string">"Master '%s': Error: get settings failed: %s. " 359 /a>                         spao class="string">"Aborting\o" 360 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=res" class="sref">res /a>));> 361 /a>                goto  a href="+code=out" class="sref">out /a>;> 362 /a>        }> 363 /a>> 364 /a>         spao class="comment""/* check if master is indeed a master; 365 /a> spao class="comment""         * if not then fail any operactio 366 /a> spao class="comment""         */ 367 /a>        if (!( a href="+code=master_flags" class="sref">master_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a> &  a href="+code=IFF_MASTER" class="sref">IFF_MASTER /a>)) {> 368 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 369 /a>                         spao class="string">"Illegal operactio; the specified interface '%s' " 370 /a>                         spao class="string">"is not a master. Aborting\o" 371 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 372 /a>                 a href="+code=res" class="sref">res /a> = 1;> 373 /a>                goto  a href="+code=out" class="sref">out /a>;> 374 /a>        }> 375 /a>> 376 /a>         spao class="comment""/* check if master is up; if not then fail any operactio */ 377 /a>        if (!( a href="+code=master_flags" class="sref">master_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a> &  a href="+code=IFF_UP" class="sref">IFF_UP /a>)) {> 378 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 379 /a>                         spao class="string">"Illegal operactio; the specified master interface " 380 /a>                         spao class="string">"'%s' is not up.\o" 381 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 382 /a>                 a href="+code=res" class="sref">res /a> = 1;> 383 /a>                goto  a href="+code=out" class="sref">out /a>;> 384 /a>        }> 385 /a>> 386 /a>         spao class="comment""/* Only for enslaving */ 387 /a>        if (! a href="+code=opc_c" class="sref">opc_c /a> && ! a href="+code=opc_d" class="sref">opc_d /a>) {> 388 /a>                 a href="+code=sa_family_t" class="sref">sa_family_t /a>  a href="+code=master_family" class="sref">master_family /a> =  a href="+code=master_hwaddr" class="sref">master_hwaddr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>. a href="+code=sa_family" class="sref">sa_family /a>;> 389 /a>                unsigned char * a href="+code=hwaddr" class="sref">hwaddr /a> => 390 /a>                        (unsigned char *) a href="+code=master_hwaddr" class="sref">master_hwaddr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>. a href="+code=sa_data" class="sref">sa_data /a>;> 391 /a>> 392 /a>                 spao class="comment""/* The family '1' is ARPHRD_ETHER for ethernet. */ 393 /a>                if ( a href="+code=master_family" class="sref">master_family /a> != 1 && ! a href="+code=opc_f" class="sref">opc_f /a>) {> 394 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 395 /a>                                 spao class="string">"Illegal operactio: The specified master " 396 /a>                                 spao class="string">"interface '%s' is not ethernet-like.\o " 397 /a>                                 spao class="string">"This program is designed to work with " 398 /a>                                 spao class="string">"ethernet-like network interfaces.\o " 399 /a>                                 spao class="string">"Use the '-f' opctio to force the " 400 /a>                                 spao class="string">"operactio.\o" 401 /a>                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 402 /a>                         a href="+code=res" class="sref">res /a> = 1;> 403 /a>                        goto  a href="+code=out" class="sref">out /a>;> 404 /a>                }> 405 /a>> 406 /a>                 spao class="comment""/* Check master's hw addr */ 407 /a>                for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=i" class="sref">i /a> < 6;  a href="+code=i" class="sref">i /a>++) {> 408 /a>                        if ( a href="+code=hwaddr" class="sref">hwaddr /a>[ a href="+code=i" class="sref">i /a>] != 0) {> 409 /a>                                 a href="+code=hwaddr_set" class="sref">hwaddr_set /a> = 1;> 410 /a>                                break;> 411 /a>                        }> 412 /a>                }> 413 /a>> 414 /a>                if ( a href="+code=hwaddr_set" class="sref">hwaddr_set /a>) {> 415 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"current hardware address of master '%s' " 416 /a>                                 spao class="string">"is %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x, " 417 /a>                                 spao class="string">"type %d\o" 418 /a>                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,> 419 /a>                                 a href="+code=hwaddr" class="sref">hwaddr /a>[0],  a href="+code=hwaddr" class="sref">hwaddr /a>[1],> 420 /a>                                 a href="+code=hwaddr" class="sref">hwaddr /a>[2],  a href="+code=hwaddr" class="sref">hwaddr /a>[3],> 421 /a>                                 a href="+code=hwaddr" class="sref">hwaddr /a>[4],  a href="+code=hwaddr" class="sref">hwaddr /a>[5],> 422 /a>                                 a href="+code=master_family" class="sref">master_family /a>);> 423 /a>                }> 424 /a>        }> 425 /a>> 426 /a>         spao class="comment""/* Accepts only one slave */ 427 /a>        if ( a href="+code=opc_c" class="sref">opc_c /a>) {> 428 /a>                 spao class="comment""/* change active slave */ 429 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=get_slave_flags" class="sref">get_slave_flags /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 430 /a>                if ( a href="+code=res" class="sref">res /a>) {> 431 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 432 /a>                                 spao class="string">"Slave '%s': Error: get flags failed. " 433 /a>                                 spao class="string">"Aborting\o" 434 /a>                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 435 /a>                        goto  a href="+code=out" class="sref">out /a>;> 436 /a>                }> 437 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=change_active" class="sref">change_active /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 438 /a>                if ( a href="+code=res" class="sref">res /a>) {> 439 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 440 /a>                                 spao class="string">"Master '%s', Slave '%s': Error: " 441 /a>                                 spao class="string">"Change active failed\o" 442 /a>                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 443 /a>                }> 444 /a>        } else {> 445 /a>                 spao class="comment""/* Accept multiple slaves */ 446 /a>                do {> 447 /a>                        if ( a href="+code=opc_d" class="sref">opc_d /a>) {> 448 /a>                                 spao class="comment""/* detach a slave interface from the master */ 449 /a>                                 a href="+code=rv" class="sref">rv /a> =  a href="+code=get_slave_flags" class="sref">get_slave_flags /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 450 /a>                                if ( a href="+code=rv" class="sref">rv /a>) {> 451 /a>                                         spao class="comment""/* Can't work with this slave. */ 452 /a>                                         spao class="comment""/* remember the error and skip it*/ 453 /a>                                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 454 /a>                                                 spao class="string">"Slave '%s': Error: get flags " 455 /a>                                                 spao class="string">"failed. Skipping\o" 456 /a>                                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 457 /a>                                         a href="+code=res" class="sref">res /a> =  a href="+code=rv" class="sref">rv /a>;> 458 /a>                                        continue;> 459 /a>                                }> 460 /a>                                 a href="+code=rv" class="sref">rv /a> =  a href="+code=releasu" class="sref">releasu /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 461 /a>                                if ( a href="+code=rv" class="sref">rv /a>) {> 462 /a>                                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 463 /a>                                                 spao class="string">"Master '%s', Slave '%s': Error: " 464 /a>                                                 spao class="string">"Releasu failed\o" 465 /a>                                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 466 /a>                                         a href="+code=res" class="sref">res /a> =  a href="+code=rv" class="sref">rv /a>;> 467 /a>                                }> 468 /a>                        } else {> 469 /a>                                 spao class="comment""/* attach a slave interface to the master */ 470 /a>                                 a href="+code=rv" class="sref">rv /a> =  a href="+code=get_if_settings" class="sref">get_if_settings /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=slave_ifra" class="sref">slave_ifra /a>);> 471 /a>                                if ( a href="+code=rv" class="sref">rv /a>) {> 472 /a>                                         spao class="comment""/* Can't work with this slave. */ 473 /a>                                         spao class="comment""/* remember the error and skip it*/ 474 /a>                                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 475 /a>                                                 spao class="string">"Slave '%s': Error: get " 476 /a>                                                 spao class="string">"settings failed: %s. " 477 /a>                                                 spao class="string">"Skipping\o" 478 /a>                                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=rv" class="sref">rv /a>));> 479 /a>                                         a href="+code=res" class="sref">res /a> =  a href="+code=rv" class="sref">rv /a>;> 480 /a>                                        continue;> 481 /a>                                }> 482 /a>                                 a href="+code=rv" class="sref">rv /a> =  a href="+code=enslave" class="sref">enslave /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 483 /a>                                if ( a href="+code=rv" class="sref">rv /a>) {> 484 /a>                                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 485 /a>                                                 spao class="string">"Master '%s', Slave '%s': Error: " 486 /a>                                                 spao class="string">"Enslave failed\o" 487 /a>                                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 488 /a>                                         a href="+code=res" class="sref">res /a> =  a href="+code=rv" class="sref">rv /a>;> 489 /a>                                }> 490 /a>                        }> 491 /a>                } while (( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a> = * a href="+code=spp" class="sref">spp /a>++) !=  a href="+code=NULL" class="sref">NULL /a>);> 492 /a>        }> 493 /a>> 494 /a> a href="+code=out" class="sref">out /a>:> 495 /a>        if ( a href="+code=skfd" class="sref">skfd /a> >= 0) {> 496 /a>                 a href="+code=closu" class="sref">closu /a>( a href="+code=skfd" class="sref">skfd /a>);> 497 /a>        }> 498 /a>> 499 /a>        return  a href="+code=res" class="sref">res /a>;> 500 /a>}> 501 /a>> 502 /a>stactc short  a href="+code=mif_flags" class="sref">mif_flags /a>;> 503 /a>> 504 /a> spao class="comment""/* Get the inteface configuractio from the kernel. */ 505 /a>stactc int  a href="+code=if_getconfig" class="sref">if_getconfig /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>)> 506 /a>{> 507 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 508 /a>        int  a href="+code=metric" class="sref">metric /a>,  a href="+code=mtu" class="sref">mtu /a>;         spao class="comment""/* Paramuters of the master interface. */ 509 /a>        struct  a href="+code=sockaddr" class="sref">sockaddr /a>  a href="+code=dstaddr" class="sref">dstaddr /a>,  a href="+code=broadaddr" class="sref">broadaddr /a>,  a href="+code=netmask" class="sref">netmask /a>;> 510 /a>        unsigned char * a href="+code=hwaddr" class="sref">hwaddr /a>;> 511 /a>> 512 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 513 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFFLAGS" class="sref">SIOCGIFFLAGS /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)> 514 /a>                return -1;> 515 /a>         a href="+code=mif_flags" class="sref">mif_flags /a> =  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>;> 516 /a>         a href="+code=printf" class="sref">printf /a>( spao class="string">"The result of SIOCGIFFLAGS io %s is %x.\o" 517 /a>                a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 518 /a>> 519 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 520 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFADDR" class="sref">SIOCGIFADDR /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)> 521 /a>                return -1;> 522 /a>         a href="+code=printf" class="sref">printf /a>( spao class="string">"The result of SIOCGIFADDR is %2.2x.%2.2x.%2.2x.%2.2x.\o" 523 /a>                a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>[0],  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>[1],> 524 /a>                a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>[2],  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>[3]);> 525 /a>> 526 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 527 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFHWADDR" class="sref">SIOCGIFHWADDR /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)> 528 /a>                return -1;> 529 /a>> 530 /a>         spao class="comment""/* Gotta convert from 'char' to unsigned for printf(). */ 531 /a>         a href="+code=hwaddr" class="sref">hwaddr /a> = (unsigned char *) a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>. a href="+code=sa_data" class="sref">sa_data /a>;> 532 /a>         a href="+code=printf" class="sref">printf /a>( spao class="string">"The result of SIOCGIFHWADDR is type %d  " 533 /a>                spao class="string">"%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x.\o" 534 /a>                a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>. a href="+code=sa_family" class="sref">sa_family /a>,  a href="+code=hwaddr" class="sref">hwaddr /a>[0],  a href="+code=hwaddr" class="sref">hwaddr /a>[1],> 535 /a>                a href="+code=hwaddr" class="sref">hwaddr /a>[2],  a href="+code=hwaddr" class="sref">hwaddr /a>[3],  a href="+code=hwaddr" class="sref">hwaddr /a>[4],  a href="+code=hwaddr" class="sref">hwaddr /a>[5]);> 536 /a>> 537 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 538 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFMETRIC" class="sref">SIOCGIFMETRIC /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) {> 539 /a>                 a href="+code=metric" class="sref">metric /a> = 0;> 540 /a>        } else> 541 /a>                 a href="+code=metric" class="sref">metric /a> =  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_metric" class="sref">ifr_metric /a>;> 542 /a>         a href="+code=printf" class="sref">printf /a>( spao class="string">"The result of SIOCGIFMETRIC is %d\o"metric /a>);> 543 /a>> 544 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 545 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFMTU" class="sref">SIOCGIFMTU /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)> 546 /a>                 a href="+code=mtu" class="sref">mtu /a> = 0;> 547 /a>        else> 548 /a>                 a href="+code=mtu" class="sref">mtu /a> =  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_mtu" class="sref">ifr_mtu /a>;> 549 /a>         a href="+code=printf" class="sref">printf /a>( spao class="string">"The result of SIOCGIFMTU is %d\o"mtu /a>);> 550 /a>> 551 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 552 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFDSTADDR" class="sref">SIOCGIFDSTADDR /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) {> 553 /a>                 a href="+code=memset" class="sref">memset /a>(& a href="+code=dstaddr" class="sref">dstaddr /a>, 0, sizeof(struct  a href="+code=sockaddr" class="sref">sockaddr /a>));> 554 /a>        } else> 555 /a>                 a href="+code=dstaddr" class="sref">dstaddr /a> =  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_dstaddr" class="sref">ifr_dstaddr /a>;> 556 /a>> 557 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 558 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFBRDADDR" class="sref">SIOCGIFBRDADDR /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) {> 559 /a>                 a href="+code=memset" class="sref">memset /a>(& a href="+code=broadaddr" class="sref">broadaddr /a>, 0, sizeof(struct  a href="+code=sockaddr" class="sref">sockaddr /a>));> 560 /a>        } else> 561 /a>                 a href="+code=broadaddr" class="sref">broadaddr /a> =  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_broadaddr" class="sref">ifr_broadaddr /a>;> 562 /a>> 563 /a>         a href="+code=strcpy" class="sref">strcpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>);> 564 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFNETMASK" class="sref">SIOCGIFNETMASK /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) {> 565 /a>                 a href="+code=memset" class="sref">memset /a>(& a href="+code=netmask" class="sref">netmask /a>, 0, sizeof(struct  a href="+code=sockaddr" class="sref">sockaddr /a>));> 566 /a>        } else> 567 /a>                 a href="+code=netmask" class="sref">netmask /a> =  a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_netmask" class="sref">ifr_netmask /a>;> 568 /a>> 569 /a>        return 0;> 570 /a>}> 571 /a>> 572 /a>stactc void  a href="+code=if_print" class="sref">if_print /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>)> 573 /a>{> 574 /a>        char  a href="+code=buff" class="sref">buff /a>[1024];> 575 /a>        struct  a href="+code=ifconf" class="sref">ifconf /a>  a href="+code=ifc" class="sref">ifc /a>;> 576 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a> * a href="+code=ifr" class="sref">ifr /a>;> 577 /a>        int  a href="+code=i" class="sref">i /a>;> 578 /a>> 579 /a>        if ( a href="+code=ifnamu" class="sref">ifnamu /a> == (char *) a href="+code=NULL" class="sref">NULL /a>) {> 580 /a>                 a href="+code=ifc" class="sref">ifc /a>. a href="+code=ifc_len" class="sref">ifc_len /a> = sizeof( a href="+code=buff" class="sref">buff /a>);> 581 /a>                 a href="+code=ifc" class="sref">ifc /a>. a href="+code=ifc_buf" class="sref">ifc_buf /a> =  a href="+code=buff" class="sref">buff /a>;> 582 /a>                if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFCONF" class="sref">SIOCGIFCONF /a>, & a href="+code=ifc" class="sref">ifc /a>) < 0) {> 583 /a>                         a href="+code=perror" class="sref">perror /a>( spao class="string">"SIOCGIFCONF failed" 584 /a>                        return;> 585 /a>                }> 586 /a>> 587 /a>                 a href="+code=ifr" class="sref">ifr /a> =  a href="+code=ifc" class="sref">ifc /a>. a href="+code=ifc_req" class="sref">ifc_req /a>;> 588 /a>                for ( a href="+code=i" class="sref">i /a> =  a href="+code=ifc" class="sref">ifc /a>. a href="+code=ifc_len" class="sref">ifc_len /a> / sizeof(struct  a href="+code=ifreq" class="sref">ifreq /a>); -- a href="+code=i" class="sref">i /a> >= 0;  a href="+code=ifr" class="sref">ifr /a>++) {> 589 /a>                        if ( a href="+code=if_getconfig" class="sref">if_getconfig /a>( a href="+code=ifr" class="sref">ifr /a>-> a href="+code=ifr_namu" class="sref">ifr_namu /a>) < 0) {> 590 /a>                                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 591 /a>                                         spao class="string">"%s: unknown interface.\o" 592 /a>                                         a href="+code=ifr" class="sref">ifr /a>-> a href="+code=ifr_namu" class="sref">ifr_namu /a>);> 593 /a>                                continue;> 594 /a>                        }> 595 /a>> 596 /a>                        if ((( a href="+code=mif_flags" class="sref">mif_flags /a> &  a href="+code=IFF_UP" class="sref">IFF_UP /a>) == 0) && ! a href="+code=opc_a" class="sref">opc_a /a>) continue;> 597 /a>                         spao class="comment""/*ife_print(&ife);*/ 598 /a>                }> 599 /a>        } else {> 600 /a>                if ( a href="+code=if_getconfig" class="sref">if_getconfig /a>( a href="+code=ifnamu" class="sref">ifnamu /a>) < 0) {> 601 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 602 /a>                                 spao class="string">"%s: unknown interface.\o"ifnamu /a>);> 603 /a>                }> 604 /a>        }> 605 /a>}> 606 /a>> 607 /a>stactc int  a href="+code=get_drv_info" class="sref">get_drv_info /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>)> 608 /a>{> 609 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 610 /a>        struct  a href="+code=ethtool_drvinfo" class="sref">ethtool_drvinfo /a>  a href="+code=info" class="sref">info /a>;> 611 /a>        char * a href="+code=endptr" class="sref">endptr /a>;> 612 /a>> 613 /a>         a href="+code=memset" class="sref">memset /a>(& a href="+code=ifr" class="sref">ifr /a>, 0, sizeof( a href="+code=ifr" class="sref">ifr /a>));> 614 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 615 /a>         a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_data" class="sref">ifr_data /a> = ( a href="+code=caddr_t" class="sref">caddr_t /a>)& a href="+code=info" class="sref">info /a>;> 616 /a>> 617 /a>         a href="+code=info" class="sref">info /a>. a href="+code=cmd" class="sref">cmd /a> =  a href="+code=ETHTOOL_GDRVINFO" class="sref">ETHTOOL_GDRVINFO /a>;> 618 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=info" class="sref">info /a>. a href="+code=driver" class="sref">driver /a>,  spao class="string">"ifenslave" 619 /a>         a href="+code=snprintf" class="sref">snprintf /a>( a href="+code=info" class="sref">info /a>. a href="+code=fw_verstio" class="sref">fw_verstio /a>, 32,  spao class="string">"%d"BOND_ABI_VERSION /a>);> 620 /a>> 621 /a>        if ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCETHTOOL" class="sref">SIOCETHTOOL /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) {> 622 /a>                if ( a href="+code=errno" class="sref">errno /a> ==  a href="+code=EOPNOTSUPP" class="sref">EOPNOTSUPP /a>) {> 623 /a>                        goto  a href="+code=out" class="sref">out /a>;> 624 /a>                }> 625 /a>> 626 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 627 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': Error: get bonding info failed %s\o" 628 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 629 /a>                return 1;> 630 /a>        }> 631 /a>> 632 /a>         a href="+code=abi_ver" class="sref">abi_ver /a> =  a href="+code=strtoul" class="sref">strtoul /a>( a href="+code=info" class="sref">info /a>. a href="+code=fw_verstio" class="sref">fw_verstio /a>, & a href="+code=endptr" class="sref">endptr /a>, 0);> 633 /a>        if (* a href="+code=endptr" class="sref">endptr /a>) {> 634 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': Error: got invalid string as ao ABI " 635 /a>                         spao class="string">"verstio from the bonding module\o" 636 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 637 /a>                return 1;> 638 /a>        }> 639 /a>> 640 /a> a href="+code=out" class="sref">out /a>:> 641 /a>         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"ABI ver is %d\o"abi_ver /a>);> 642 /a>> 643 /a>        return 0;> 644 /a>}> 645 /a>> 646 /a>stactc int  a href="+code=change_active" class="sref">change_active /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>)> 647 /a>{> 648 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 649 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 650 /a>> 651 /a>        if (!( a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a> &  a href="+code=IFF_SLAVE" class="sref">IFF_SLAVE /a>)) {> 652 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 653 /a>                         spao class="string">"Illegal operactio: The specified slave interface " 654 /a>                         spao class="string">"'%s' is not a slave\o" 655 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 656 /a>                return 1;> 657 /a>        }> 658 /a>> 659 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 660 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_slave" class="sref">ifr_slave /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 661 /a>        if (( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCBONDCHANGEACTIVE" class="sref">SIOCBONDCHANGEACTIVE /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) &&> 662 /a>            ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=BOND_CHANGE_ACTIVE_OLD" class="sref">BOND_CHANGE_ACTIVE_OLD /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)) {> 663 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 664 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': Error: SIOCBONDCHANGEACTIVE failed: " 665 /a>                         spao class="string">"%s\o" 666 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 667 /a>                 a href="+code=res" class="sref">res /a> = 1;> 668 /a>        }> 669 /a>> 670 /a>        return  a href="+code=res" class="sref">res /a>;> 671 /a>}> 672 /a>> 673 /a>stactc int  a href="+code=enslave" class="sref">enslave /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>)> 674 /a>{> 675 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 676 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 677 /a>> 678 /a>        if ( a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a> &  a href="+code=IFF_SLAVE" class="sref">IFF_SLAVE /a>) {> 679 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 680 /a>                         spao class="string">"Illegal operactio: The specified slave interface " 681 /a>                         spao class="string">"'%s' is already a slave\o" 682 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 683 /a>                return 1;> 684 /a>        }> 685 /a>> 686 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=set_if_dowo" class="sref">set_if_dowo /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 687 /a>        if ( a href="+code=res" class="sref">res /a>) {> 688 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 689 /a>                         spao class="string">"Slave '%s': Error: bring interface dowo failed\o" 690 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 691 /a>                return  a href="+code=res" class="sref">res /a>;> 692 /a>        }> 693 /a>> 694 /a>        if ( a href="+code=abi_ver" class="sref">abi_ver /a> < 2) {> 695 /a>                 spao class="comment""/* Older bonding verstios would paotc if the slave has no IP 696 /a> spao class="comment""                 * address, so get the IP setting from the master. 697 /a> spao class="comment""                 */ 698 /a>                 a href="+code=set_if_addr" class="sref">set_if_addr /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 699 /a>        } else {> 700 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=clear_if_addr" class="sref">clear_if_addr /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 701 /a>                if ( a href="+code=res" class="sref">res /a>) {> 702 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 703 /a>                                 spao class="string">"Slave '%s': Error: clear address failed\o" 704 /a>                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 705 /a>                        return  a href="+code=res" class="sref">res /a>;> 706 /a>                }> 707 /a>        }> 708 /a>> 709 /a>        if ( a href="+code=master_mtu" class="sref">master_mtu /a>. a href="+code=ifr_mtu" class="sref">ifr_mtu /a> !=  a href="+code=slave_mtu" class="sref">slave_mtu /a>. a href="+code=ifr_mtu" class="sref">ifr_mtu /a>) {> 710 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=set_slave_mtu" class="sref">set_slave_mtu /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=master_mtu" class="sref">master_mtu /a>. a href="+code=ifr_mtu" class="sref">ifr_mtu /a>);> 711 /a>                if ( a href="+code=res" class="sref">res /a>) {> 712 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 713 /a>                                 spao class="string">"Slave '%s': Error: set MTU failed\o" 714 /a>                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 715 /a>                        return  a href="+code=res" class="sref">res /a>;> 716 /a>                }> 717 /a>        }> 718 /a>> 719 /a>        if ( a href="+code=hwaddr_set" class="sref">hwaddr_set /a>) {> 720 /a>                 spao class="comment""/* Master already has ao hwaddr 721 /a> spao class="comment""                 * so set it's hwaddr to the slave 722 /a> spao class="comment""                 */ 723 /a>                if ( a href="+code=abi_ver" class="sref">abi_ver /a> < 1) {> 724 /a>                         spao class="comment""/* The driver is using an old ABI, so 725 /a> spao class="comment""                         * the applicactio sets the slave's 726 /a> spao class="comment""                         * hwaddr 727 /a> spao class="comment""                         */ 728 /a>                         a href="+code=res" class="sref">res /a> =  a href="+code=set_slave_hwaddr" class="sref">set_slave_hwaddr( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,> 729 /a>                                               &( a href="+code=master_hwaddr" class="sref">master_hwaddr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>));> 730 /a>                        if ( a href="+code=res" class="sref">res /a>) {> 731 /a>                                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 732 /a>                                         spao class="string">"Slave '%s': Error: set hw address " 733 /a>                                         spao class="string">"failed\o" 734 /a>                                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 735 /a>                                goto  a href="+code=undo_mtu" class="sref">undo_mtu /a>;> 736 /a>                        }> 737 /a>> 738 /a>                         spao class="comment""/* For old ABI the applicactio needs to bring the 739 /a> spao class="comment""                         * slave back up 740 /a> spao class="comment""                         */ 741 /a>                         a href="+code=res" class="sref">res /a> =  a href="+code=set_if_up" class="sref">set_if_up( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 742 /a>                        if ( a href="+code=res" class="sref">res /a>) {> 743 /a>                                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 744 /a>                                         spao class="string">"Slave '%s': Error: bring interface " 745 /a>                                         spao class="string">"dowo failed\o" 746 /a>                                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 747 /a>                                goto  a href="+code=undo_slave_mac" class="sref">undo_slave_mac /a>;> 748 /a>                        }> 749 /a>                }> 750 /a>                 spao class="comment""/* The driver is using a new ABI, 751 /a> spao class="comment""                 * so the driver takes care of setting 752 /a> spao class="comment""                 * the slave's hwaddr and bringing 753 /a> spao class="comment""                 * it up again 754 /a> spao class="comment""                 */ 755 /a>        } else {> 756 /a>                 spao class="comment""/* No hwaddr for master yet, so 757 /a> spao class="comment""                 * set the slave's hwaddr to it 758 /a> spao class="comment""                 */ 759 /a>                if ( a href="+code=abi_ver" class="sref">abi_ver /a> < 1) {> 760 /a>                         spao class="comment""/* For old ABI, the master needs to be 761 /a> spao class="comment""                         * dowo before setting its hwaddr 762 /a> spao class="comment""                         */ 763 /a>                         a href="+code=res" class="sref">res /a> =  a href="+code=set_if_dowo" class="sref">set_if_dowo /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=master_flags" class="sref">master_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 764 /a>                        if ( a href="+code=res" class="sref">res /a>) {> 765 /a>                                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 766 /a>                                         spao class="string">"Master '%s': Error: bring interface " 767 /a>                                         spao class="string">"dowo failed\o" 768 /a>                                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 769 /a>                                goto  a href="+code=undo_mtu" class="sref">undo_mtu /a>;> 770 /a>                        }> 771 /a>                }> 772 /a>> 773 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=set_master_hwaddr" class="sref">set_master_hwaddr /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,> 774 /a>                                        &( a href="+code=slave_hwaddr" class="sref">slave_hwaddr. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>));> 775 /a>                if ( a href="+code=res" class="sref">res /a>) {> 776 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 777 /a>                                 spao class="string">"Master '%s': Error: set hw address " 778 /a>                                 spao class="string">"failed\o" 779 /a>                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 780 /a>                        goto  a href="+code=undo_mtu" class="sref">undo_mtu /a>;> 781 /a>                }> 782 /a>> 783 /a>                if ( a href="+code=abi_ver" class="sref">abi_ver /a> < 1) {> 784 /a>                         spao class="comment""/* For old ABI, bring the master 785 /a> spao class="comment""                         * back up 786 /a> spao class="comment""                         */ 787 /a>                         a href="+code=res" class="sref">res /a> =  a href="+code=set_if_up" class="sref">set_if_up( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=master_flags" class="sref">master_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 788 /a>                        if ( a href="+code=res" class="sref">res /a>) {> 789 /a>                                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 790 /a>                                         spao class="string">"Master '%s': Error: bring interface " 791 /a>                                         spao class="string">"up failed\o" 792 /a>                                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>);> 793 /a>                                goto  a href="+code=undo_master_mac" class="sref">undo_master_mac /a>;> 794 /a>                        }> 795 /a>                }> 796 /a>> 797 /a>                 a href="+code=hwaddr_set" class="sref">hwaddr_set /a> = 1;> 798 /a>        }> 799 /a>> 800 /a>         spao class="comment""/* Do the real thing */ 801 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 802 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_slave" class="sref">ifr_slave,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 803 /a>        if (( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCBONDENSLAVE" class="sref">SIOCBONDENSLAVE /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) &&> 804 /a>            ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=BOND_ENSLAVE_OLD" class="sref">BOND_ENSLAVE_OLD /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)) {> 805 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 806 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': Error: SIOCBONDENSLAVE failed: %s\o" 807 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 808 /a>                 a href="+code=res" class="sref">res /a> = 1;> 809 /a>        }> 810 /a>> 811 /a>        if ( a href="+code=res" class="sref">res /a>) {> 812 /a>                goto  a href="+code=undo_master_mac" class="sref">undo_master_mac /a>;> 813 /a>        }> 814 /a>> 815 /a>        return 0;> 816 /a>> 817 /a> spao class="comment""/* rollback (best effort) */ 818 /a> a href="+code=undo_master_mac" class="sref">undo_master_mac /a>:> 819 /a>         a href="+code=set_master_hwaddr" class="sref">set_master_hwaddr /a>( a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, &( a href="+code=master_hwaddr" class="sref">master_hwaddr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>));> 820 /a>         a href="+code=hwaddr_set" class="sref">hwaddr_set /a> = 0;> 821 /a>        goto  a href="+code=undo_mtu" class="sref">undo_mtu /a>;> 822 /a> a href="+code=undo_slave_mac" class="sref">undo_slave_mac /a>:> 823 /a>         a href="+code=set_slave_hwaddr" class="sref">set_slave_hwaddr( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>, &( a href="+code=slave_hwaddr" class="sref">slave_hwaddr. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>));> 824 /a> a href="+code=undo_mtu" class="sref">undo_mtu /a>:> 825 /a>         a href="+code=set_slave_mtu" class="sref">set_slave_mtu /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=slave_mtu" class="sref">slave_mtu /a>. a href="+code=ifr_mtu" class="sref">ifr_mtu /a>);> 826 /a>        return  a href="+code=res" class="sref">res /a>;> 827 /a>}> 828 /a>> 829 /a>stactc int  a href="+code=releasu" class="sref">releasu /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>)> 830 /a>{> 831 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 832 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 833 /a>> 834 /a>        if (!( a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a> &  a href="+code=IFF_SLAVE" class="sref">IFF_SLAVE /a>)) {> 835 /a>                 a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 836 /a>                         spao class="string">"Illegal operactio: The specified slave interface " 837 /a>                         spao class="string">"'%s' is not a slave\o" 838 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 839 /a>                return 1;> 840 /a>        }> 841 /a>> 842 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 843 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_slave" class="sref">ifr_slave,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 844 /a>        if (( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCBONDRELEASE" class="sref">SIOCBONDRELEASE /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0) &&> 845 /a>            ( a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=BOND_RELEASE_OLD" class="sref">BOND_RELEASE_OLD /a>, & a href="+code=ifr" class="sref">ifr /a>) < 0)) {> 846 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 847 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': Error: SIOCBONDRELEASE failed: %s\o" 848 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 849 /a>                return 1;> 850 /a>        } else if ( a href="+code=abi_ver" class="sref">abi_ver /a> < 1) {> 851 /a>                 spao class="comment""/* The driver is using an old ABI, so we'll set the interface 852 /a> spao class="comment""                 * dowo to avoid any conflicts due to samu MAC/IP 853 /a> spao class="comment""                 */ 854 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=set_if_dowo" class="sref">set_if_dowo /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 855 /a>                if ( a href="+code=res" class="sref">res /a>) {> 856 /a>                         a href="+code=fprintf" class="sref">fprintf /a>( a href="+code=stderr" class="sref">stderr /a>,> 857 /a>                                 spao class="string">"Slave '%s': Error: bring interface " 858 /a>                                 spao class="string">"dowo failed\o" 859 /a>                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>);> 860 /a>                }> 861 /a>        }> 862 /a>> 863 /a>         spao class="comment""/* set to default mtu */ 864 /a>         a href="+code=set_slave_mtu" class="sref">set_slave_mtu /a>( a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>, 1500);> 865 /a>> 866 /a>        return  a href="+code=res" class="sref">res /a>;> 867 /a>}> 868 /a>> 869 /a>stactc int  a href="+code=get_if_settings" class="sref">get_if_settings /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, struct  a href="+code=dev_ifr" class="sref">dev_ifr /a>  a href="+code=ifra" class="sref">ifra /a>[])> 870 /a>{> 871 /a>        int  a href="+code=i" class="sref">i /a>;> 872 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 873 /a>> 874 /a>        for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_ifr" class="sref">req_ifr /a>;  a href="+code=i" class="sref">i /a>++) {> 875 /a>                 a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_ifr" class="sref">req_ifr /a>-> a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 876 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_typu" class="sref">req_typu /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_ifr" class="sref">req_ifr /a>);> 877 /a>                if ( a href="+code=res" class="sref">res /a> < 0) {> 878 /a>                         a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 879 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': Error: %s failed: %s\o" 880 /a>                                 a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_namu" class="sref">req_namu /a>,> 881 /a>                                 a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 882 /a>> 883 /a>                        return  a href="+code=saved_errno" class="sref">saved_errno /a>;> 884 /a>                }> 885 /a>        }> 886 /a>> 887 /a>        return 0;> 888 /a>}> 889 /a>> 890 /a>stactc int  a href="+code=get_slave_flags" class="sref">get_slave_flags /a>(char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>)> 891 /a>{> 892 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 893 /a>> 894 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 895 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCGIFFLAGS" class="sref">SIOCGIFFLAGS /a>, & a href="+code=slave_flags" class="sref">slave_flags /a>);> 896 /a>        if ( a href="+code=res" class="sref">res /a> < 0) {> 897 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 898 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Slave '%s': Error: SIOCGIFFLAGS failed: %s\o" 899 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 900 /a>        } else {> 901 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Slave %s: flags %04X.\o" 902 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=slave_flags" class="sref">slave_flags /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a>);> 903 /a>        }> 904 /a>> 905 /a>        return  a href="+code=res" class="sref">res /a>;> 906 /a>}> 907 /a>> 908 /a>stactc int  a href="+code=set_master_hwaddr" class="sref">set_master_hwaddr /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, struct  a href="+code=sockaddr" class="sref">sockaddr /a> * a href="+code=hwaddr" class="sref">hwaddr /a>)> 909 /a>{> 910 /a>        unsigned char * a href="+code=addr" class="sref">addr /a> = (unsigned char *) a href="+code=hwaddr" class="sref">hwaddr /a>-> a href="+code=sa_data" class="sref">sa_data /a>;> 911 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 912 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 913 /a>> 914 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 915 /a>         a href="+code=memcpy" class="sref">memcpy /a>(&( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>),  a href="+code=hwaddr" class="sref">hwaddr /a>, sizeof(struct  a href="+code=sockaddr" class="sref">sockaddr /a>));> 916 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCSIFHWADDR" class="sref">SIOCSIFHWADDR /a>, & a href="+code=ifr" class="sref">ifr /a>);> 917 /a>        if ( a href="+code=res" class="sref">res /a> < 0) {> 918 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 919 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': Error: SIOCSIFHWADDR failed: %s\o" 920 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 921 /a>                return  a href="+code=res" class="sref">res /a>;> 922 /a>        } else {> 923 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Master '%s': hardware address set to " 924 /a>                         spao class="string">"%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x.\o" 925 /a>                         a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=addr" class="sref">addr /a>[0],  a href="+code=addr" class="sref">addr /a>[1],  a href="+code=addr" class="sref">addr /a>[2],> 926 /a>                         a href="+code=addr" class="sref">addr /a>[3],  a href="+code=addr" class="sref">addr /a>[4],  a href="+code=addr" class="sref">addr /a>[5]);> 927 /a>        }> 928 /a>> 929 /a>        return  a href="+code=res" class="sref">res /a>;> 930 /a>}> 931 /a>> 932 /a>stactc int  a href="+code=set_slave_hwaddr" class="sref">set_slave_hwaddr(char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>, struct  a href="+code=sockaddr" class="sref">sockaddr /a> * a href="+code=hwaddr" class="sref">hwaddr /a>)> 933 /a>{> 934 /a>        unsigned char * a href="+code=addr" class="sref">addr /a> = (unsigned char *) a href="+code=hwaddr" class="sref">hwaddr /a>-> a href="+code=sa_data" class="sref">sa_data /a>;> 935 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 936 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 937 /a>> 938 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 939 /a>         a href="+code=memcpy" class="sref">memcpy /a>(&( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_hwaddr" class="sref">ifr_hwaddr /a>),  a href="+code=hwaddr" class="sref">hwaddr /a>, sizeof(struct  a href="+code=sockaddr" class="sref">sockaddr /a>));> 940 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCSIFHWADDR" class="sref">SIOCSIFHWADDR /a>, & a href="+code=ifr" class="sref">ifr /a>);> 941 /a>        if ( a href="+code=res" class="sref">res /a> < 0) {> 942 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 943 /a>> 944 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Slave '%s': Error: SIOCSIFHWADDR failed: %s\o" 945 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 946 /a>> 947 /a>                if ( a href="+code=saved_errno" class="sref">saved_errno /a> ==  a href="+code=EBUSY" class="sref">EBUSY /a>) {> 948 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"  The device is busy: it must be idle " 949 /a>                                 spao class="string">"before running this command.\o" 950 /a>                } else if ( a href="+code=saved_errno" class="sref">saved_errno /a> ==  a href="+code=EOPNOTSUPP" class="sref">EOPNOTSUPP /a>) {> 951 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"  The device does not support setting " 952 /a>                                 spao class="string">"the MAC address.\o" 953 /a>                                 spao class="string">"  Your kernel likely does not support slave " 954 /a>                                 spao class="string">"devices.\o" 955 /a>                } else if ( a href="+code=saved_errno" class="sref">saved_errno /a> ==  a href="+code=EINVAL" class="sref">EINVAL /a>) {> 956 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"  The device's address typu does not match " 957 /a>                                 spao class="string">"the master's address typu.\o" 958 /a>                }> 959 /a>                return  a href="+code=res" class="sref">res /a>;> 960 /a>        } else {> 961 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Slave '%s': hardware address set to " 962 /a>                         spao class="string">"%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x.\o" 963 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=addr" class="sref">addr /a>[0],  a href="+code=addr" class="sref">addr /a>[1],  a href="+code=addr" class="sref">addr /a>[2],> 964 /a>                         a href="+code=addr" class="sref">addr /a>[3],  a href="+code=addr" class="sref">addr /a>[4],  a href="+code=addr" class="sref">addr /a>[5]);> 965 /a>        }> 966 /a>> 967 /a>        return  a href="+code=res" class="sref">res /a>;> 968 /a>}> 969 /a>> 970 /a>stactc int  a href="+code=set_slave_mtu" class="sref">set_slave_mtu /a>(char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>, int  a href="+code=mtu" class="sref">mtu /a>)> 971 /a>{> 972 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 973 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 974 /a>> 975 /a>         a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_mtu" class="sref">ifr_mtu /a> =  a href="+code=mtu" class="sref">mtu /a>;> 976 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 977 /a>> 978 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCSIFMTU" class="sref">SIOCSIFMTU /a>, & a href="+code=ifr" class="sref">ifr /a>);> 979 /a>        if ( a href="+code=res" class="sref">res /a> < 0) {> 980 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;> 981 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Slave '%s': Error: SIOCSIFMTU failed: %s\o" 982 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));> 983 /a>        } else {> 984 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Slave '%s': MTU set to %d.\o"slave_ifnamu /a>,  a href="+code=mtu" class="sref">mtu /a>);> 985 /a>        }> 986 /a>> 987 /a>        return  a href="+code=res" class="sref">res /a>;> 988 /a>}> 989 /a>> 990 /a>stactc int  a href="+code=set_if_flags" class="sref">set_if_flags /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, short  a href="+code=flags" class="sref">flags /a>)> 991 /a>{> 992 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;> 993 /a>        int  a href="+code=res" class="sref">res /a> = 0;> 994 /a>> 995 /a>         a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_flags" class="sref">ifr_flags /a> =  a href="+code=flags" class="sref">flags /a>;> 996 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);> 997 /a>> 998 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCSIFFLAGS" class="sref">SIOCSIFFLAGS /a>, & a href="+code=ifr" class="sref">ifr /a>);> 999 /a>        if ( a href="+code=res" class="sref">res /a> < 0) {>1000 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;>
1001 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': Error: SIOCSIFFLAGS failed: %s\o"1002 /a>                         a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));>1003 /a>        } else {>1004 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': flags set to %04X.\o"ifnamu /a>,  a href="+code=flags" class="sref">flags /a>);>1005 /a>        }>1006 /a>>1007 /a>        return  a href="+code=res" class="sref">res /a>;>1008 /a>}>1009 /a>>1010 /a>stactc int  a href="+code=set_if_up" class="sref">set_if_up /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, short  a href="+code=flags" class="sref">flags /a>)>1011 /a>{>1012 /a>        return  a href="+code=set_if_flags" class="sref">set_if_flags /a>( a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=flags" class="sref">flags /a> |  a href="+code=IFF_UP" class="sref">IFF_UP /a>);>1013 /a>}>1014 /a>>1015 /a>stactc int  a href="+code=set_if_dowo" class="sref">set_if_dowo /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>, short  a href="+code=flags" class="sref">flags /a>)>1016 /a>{>1017 /a>        return  a href="+code=set_if_flags" class="sref">set_if_flags /a>( a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=flags" class="sref">flags /a> & ~ a href="+code=IFF_UP" class="sref">IFF_UP /a>);>1018 /a>}>1019 /a>>1020 /a>stactc int  a href="+code=clear_if_addr" class="sref">clear_if_addr /a>(char * a href="+code=ifnamu" class="sref">ifnamu /a>)>1021 /a>{>1022 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;>1023 /a>        int  a href="+code=res" class="sref">res /a> = 0;>1024 /a>>1025 /a>         a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);>1026 /a>         a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_family" class="sref">sa_family /a> =  a href="+code=AF_INET" class="sref">AF_INET /a>;>1027 /a>         a href="+code=memset" class="sref">memset /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>, 0, sizeof( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>no" class="sref">saved_errno /a>));>"Master '%sƈde=addr" class="9" id="L1029" class="line" namu="L1029"clas9 /a>         a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=SIOCSIFADDR" class="sref">SIOCSIFADDR /a>, & a href="+code=ifr" class="sref">ifr /a>);>1030 /a>        if ( a href="+code=res" class="sref">res /a> < 0) {>1031 /a>                 a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;>1032 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': Error: SIOCSIFADDR failed: %s\o"1033 /a>                         a href="+code=ifnamu" class="sref">ifnamu /a>,  a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));>1034 /a>        } else {>1035 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': address cleared\o"ifnamu /a>);>1036 /a>        }>1037 /a>>1038 /a>        return  a href="+code=res" class="sref">res /a>;>1039 /a>}>1040 /a>>1041 /a>stactc int  a href="+code=set_if_addr" class="sref">set_if_addr /a>(char * a href="+code=master_ifnamu" class="sref">master_ifnamu /a>, char * a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>)>1042 /a>{>1043 /a>        struct  a href="+code=ifreq" class="sref">ifreq /a>  a href="+code=ifr" class="sref">ifr /a>;>1044 /a>        int  a href="+code=res" class="sref">res /a>;>1045 /a>        unsigned char * a href="+code=ipaddr" class="sref">ipaddr /a>;>1046 /a>        int  a href="+code=i" class="sref">i /a>;>1047 /a>        struct {>1048 /a>                char * a href="+code=req_namu" class="sref">req_namu /a>;>1049 /a>                char * a href="+code=desc" class="sref">desc /a>;>1050 /a>                int  a href="+code=g_ioctl" class="sref">g_ioctl /a>;>1051 /a>                int  a href="+code=s_ioctl" class="sref">s_ioctl /a>;>1052 /a>        }  a href="+code=ifra" class="sref">ifra /a>[] = {>1053 /a>                { spao class="string">"IFADDR""addr"SIOCGIFADDR /a>,  a href="+code=SIOCSIFADDR" class="sref">SIOCSIFADDR /a>},>1054 /a>                { spao class="string">"DSTADDR""destinactio addr"SIOCGIFDSTADDR /a>,  a href="+code=SIOCSIFDSTADDR" class="sref">SIOCSIFDSTADDR /a>},>1055 /a>                { spao class="string">"BRDADDR""broadcast addr"SIOCGIFBRDADDR /a>,  a href="+code=SIOCSIFBRDADDR" class="sref">SIOCSIFBRDADDR /a>},>1056 /a>                { spao class="string">"NETMASK""netmask"SIOCGIFNETMASK /a>,  a href="+code=SIOCSIFNETMASK" class="sref">SIOCSIFNETMASK /a>},>1057 /a>                { a href="+code=NULL" class="sref">NULL /a>,  a href="+code=NULL" class="sref">NULL /a>, 0, 0},>1058 /a>        };>1059 /a>>1060 /a>        for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_namu" class="sref">req_namu /a>;  a href="+code=i" class="sref">i /a>++) {>1061 /a>                 a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);>1062 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=g_ioctl" class="sref">g_ioctl /a>, & a href="+code=ifr" class="sref">ifr /a>);>1063 /a>                if ( a href="+code=res" class="sref">res /a> < 0) {>1064 /a>                        int  a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;>1065 /a>>1066 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': Error: SIOCG%s failed: %s\o"1067 /a>                                 a href="+code=master_ifnamu" class="sref">master_ifnamu /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_namu" class="sref">req_namu /a>,>1068 /a>                                 a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));>1069 /a>>1070 /a>                         a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_family" class="sref">sa_family /a> =  a href="+code=AF_INET" class="sref">AF_INET /a>;>1071 /a>                         a href="+code=memset" class="sref">memset /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>, 0,>1072 /a>                               sizeof( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>no" class="sref">saved_errno /a>));>1073 /a>                }>1074 /a>>1075 /a>                 a href="+code=strncpy" class="sref">strncpy /a>( a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_namu" class="sref">ifr_namu /a>,  a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=IFNAMSIZ" class="sref">IFNAMSIZ /a>);>1076 /a>                 a href="+code=res" class="sref">res /a> =  a href="+code=ioctl" class="sref">ioctl /a>( a href="+code=skfd" class="sref">skfd /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=s_ioctl" class="sref">s_ioctl /a>, & a href="+code=ifr" class="sref">ifr /a>);>1077 /a>                if ( a href="+code=res" class="sref">res /a> < 0) {>1078 /a>                        int  a href="+code=saved_errno" class="sref">saved_errno /a> =  a href="+code=errno" class="sref">errno /a>;>1079 /a>>1080 /a>                         a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': Error: SIOCS%s failed: %s\o"1081 /a>                                 a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=req_namu" class="sref">req_namu /a>,>1082 /a>                                 a href="+code=strerror" class="sref">strerror /a>( a href="+code=saved_errno" class="sref">saved_errno /a>));>1083 /a>>1084 /a>                }>1085 /a>>1086 /a>                 a href="+code=ipaddr" class="sref">ipaddr /a> = (unsigned char *) a href="+code=ifr" class="sref">ifr /a>. a href="+code=ifr_addr" class="sref">ifr_addr /a>. a href="+code=sa_data" class="sref">sa_data /a>;>1087 /a>                 a href="+code=v_print" class="sref">v_print /a>( spao class="string">"Interface '%s': set IP %s to %d.%d.%d.%d\o"1088 /a>                         a href="+code=slave_ifnamu" class="sref">slave_ifnamu /a>,  a href="+code=ifra" class="sref">ifra /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=desc" class="sref">desc /a>,>1089 /a>                         a href="+code=ipaddr" class="sref">ipaddr /a>[0],  a href="+code=ipaddr" class="sref">ipaddr /a>[1],  a href="+code=ipaddr" class="sref">ipaddr /a>[2],  a href="+code=ipaddr" class="sref">ipaddr /a>[3]);>1090 /a>        }>1091 /a>>1092 /a>        return 0;>1093 /a>}>1094 /a>>1095 /a> spao class="comment">/*1096 /a> spao class="comment"> * Local variables:1097 /a> spao class="comment"> *  verstio-control: t1098 /a> spao class="comment"> *  kept-new-verstios: 51099 /a> spao class="comment"> *  c-indent-level: 41100 /a> spao class="comment"> *  c-basic-offset: 41101 /a> spao class="comment"> *  tab-width: 41102 /a> spao class="comment"> *  compile-command: "gcc -Wall -Wstrict-prototypus -O -I/usr/src/linux/include ifenslave.c -o ifenslave"1103 /a> spao class="comment"> * End:1104 /a> spao class="comment"> */1105 /a>>1106 /a>