7=  org/freertr/ip/ipRtr()V   org/freertr/rtr/rtrOspf4 segrouMaxI    segrouBase   bierLen   bierMax  fwdCoreLorg/freertr/ip/ipFwd;  udpCoreLorg/freertr/prt/prtUdp;org/freertr/tab/tabGen  " #$algosLorg/freertr/tab/tabGen; & '$ifaces ) *$areas,org/freertr/addr/addrIPv4 + / 01routerIDLorg/freertr/addr/addrIPv4; 3 41 traffEngID 6 7  distantExt 9 :  distantInt < =  distantSum ? @routerCreateComputed BCD EF&org/freertr/tab/tabRouteAttr$routeTypeospf4(Lorg/freertr/tab/tabRouteAttr$routeType; HIJ KLorg/freertr/ip/ipFwd routerAddB(Lorg/freertr/ip/ipRtr;Lorg/freertr/tab/tabRouteAttr$routeType;I)V NOP QRjava/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String;T UVmakeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; XYZ [\org/freertr/util/debugger rtrOspf4evntZ^ create table `ab cdorg/freertr/util/loggerdebug(Ljava/lang/String;)Vforg/freertr/tab/tabRoutehospf ej d l mnsize()I p qrget(I)Ljava/lang/Comparable;torg/freertr/rtr/rtrOspf4area vwx yz org/freertr/tab/tabRoute$addTypeecmp"Lorg/freertr/tab/tabRoute$addType; s| }~routesLorg/freertr/tab/tabRoute;org/freertr/tab/tabRouteAttr? e  mergeFrom@(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRoute;I)V   segrouLab [Lorg/freertr/tab/tabLabelEntry; s $ segrouUsd  org/freertr/tab/tabIndex mergeTable3(Lorg/freertr/tab/tabGen;Lorg/freertr/tab/tabGen;)I !(ILorg/freertr/addr/addrPrefix;)V  find.(Ljava/lang/Comparable;)Ljava/lang/Comparable;  #org/freertr/tab/tabLabelEntry$owner ospf4srgb%Lorg/freertr/tab/tabLabelEntry$owner;  org/freertr/tab/tabLabelEntry setFwdDrop((Lorg/freertr/tab/tabLabelEntry$owner;)V  bierLaborg/freertr/rtr/rtrOspf4iface brIndexorg/freertr/tab/tabLabelBier label num2bsl(I)I (II)V idx s bierResLorg/freertr/tab/tabLabelBier; !(Lorg/freertr/tab/tabLabelBier;)V  ospf4bier  setBierMpls\(Lorg/freertr/tab/tabLabelEntry$owner;Lorg/freertr/ip/ipFwd;Lorg/freertr/tab/tabLabelBier;)V  FrouterProtoTyp   routerProcNum e setProto,(Lorg/freertr/tab/tabRouteAttr$routeType;I)V  ~routerComputedU e  preserveTime(Lorg/freertr/tab/tabRoute;)Z  $routerComputedI  compareTables3(Lorg/freertr/tab/tabGen;Lorg/freertr/tab/tabGen;)Z  ~routerComputedMrx  ~routerComputedF H  routerChg(Lorg/freertr/ip/ipRtr;Z)Vorg/freertr/rtr/rtrAlgo s #Ljava/util/List;  qjava/util/List(I)Ljava/lang/Object;java/lang/Exception vrfLorg/freertr/rtr/rtrAlgoVrf;  org/freertr/rtr/rtrAlgoVrf update2ip(Lorg/freertr/tab/tabRoute;)V  genLsas(I)V 31 2 router-id specify router id    org/freertr/user/userHelpingadd%(Ljava/util/List;Ljava/lang/String;)V+2 . router id@1 2 traffeng-id specify traffic engineering id'2 . te id<1 2 segrout segment routing parameters/2 3,. maximum index.3 4 base specify base,4 3,. label base 11 2 bier bier parameters"22 3 bitstring length$/3 . maximum index&41 2 area configure one area(-2 3 area number*23 . enable create this area,13 . spf-bidir spf bidir check.63 4,. spf-topolog spf topology logging0>4 4,. noappear exclude node (dis)appearance2>4 4,. noconnect exclude link (dis)connection4A4 4,. noforward exclude forward (un)willingness6<4 4,. noreachable exclude node (un)reachable8<4 4,. nometric exclude link metric change:74 4,. noprefix exclude prefix change<33 . spf-hops spf hops disallow>03 . spf-ecmp spf ecmp allow@.3 4 spf-log spf log sizeB34 . number of entriesD=3 . max-metric configure as maximum metricF33 . stub configure as stubH33 . nssa configure as nssaJC3 . traffeng configure for traffic engineeringL?3 . segrout configure for segment routingN43 . bier configure for bierP=3 . suppress-prefix do not advertise interfacesR43 . hostname advertise hostnameT93 . default-originate advertise default routeVA3 4 route-map-from process prefixes from this areaX34 . name of route mapZA3 4 route-map-into process prefixes into this area\A3 4 route-policy-from process prefixes from this area^64 . name of route policy`A3 4 route-policy-into process prefixes into this areab@3 4 prefix-list-from filter prefixes from this aread54 . name of prefix listf@3 4 prefix-list-into filter prefixes into this areah:1 2 distance specify default distancej52 3 intra-area distancel53 4 inter-area distancen34 . external distancep51 2 flexalgo flexalgo parametersr.2 3 algorithm idt,3 . vrf to usev Uw8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; y z(Ljava/lang/Object;)Zv} U'(Ljava/lang/String;I)Ljava/lang/String;segrout U'(ILjava/lang/String;)Ljava/lang/String;  org/freertr/util/cmdscfgLineJ(Ljava/util/List;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vbier U(II)Ljava/lang/String; s  area U(I)Ljava/lang/String;v s lastSpfLorg/freertr/spf/spfCalc;  org/freertr/spf/spfCalclogSizeLorg/freertr/util/syncInt; UJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;  topoLog  qnorg/freertr/util/syncInt T  getTopoLogMode()Ljava/lang/String;  bidir T  hops T  y T s \ maxMetric T s \stubT s \nssaT s \traffEngT s \ segrouEnaT s \bierEnaT s \hostnameT s \ suppressAddrT s \ defOriginT s  prflstFromLorg/freertr/tab/tabListing;TT s  prflstIntoT s  roumapFromT s  roumapIntoT s  roupolFromT s  roupolIntoT U)(Ljava/lang/String;III)Ljava/lang/String;v  word router-id N zequals +   fromString(Ljava/lang/String;)Z    org/freertr/cfg/cfgAllifcFind-(Ljava/lang/String;I)Lorg/freertr/cfg/cfgIfc;  1org/freertr/cfg/cfgIfcaddr4 + setAddr(Lorg/freertr/addr/addrType;)Vflexalgo   org/freertr/util/bitsstr2num(Ljava/lang/String;)I  " #$vrfFind-(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgVrf;& no such vrf ( )derror +,- .org/freertr/cfg/cfgVrffwd4 0 1C(ILorg/freertr/ip/ipFwd;Lorg/freertr/tab/tabRouteAttr$routeType;I)V 3  5 6 register2ip8 traffeng-id :;< =>org/freertr/tab/tabLabelreleaseg([Lorg/freertr/tab/tabLabelEntry;Lorg/freertr/tab/tabLabelEntry$owner;)[Lorg/freertr/tab/tabLabelEntry; N@ AnlengthCbase :E FGallocateI(Lorg/freertr/tab/tabLabelEntry$owner;II)[Lorg/freertr/tab/tabLabelEntry; I J normalizeBsl :L FMH(Lorg/freertr/tab/tabLabelEntry$owner;I)[Lorg/freertr/tab/tabLabelEntry;Odistance sR S(Lorg/freertr/rtr/rtrOspf4;I)VUenableWarea already exists sY ZstartNow s\ ] schedWork_area not existsaspf-log c dsetf spf-topolog h ijsetTopoLogMode(Lorg/freertr/util/cmds;)Vl spf-bidirnspf-hopspspf-ecmpr max-metricvtraffengxsuppress-prefix{default-originate}prefix-list-from   prfxFind1(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgPrfxlst;no such prefix list  org/freertr/cfg/cfgPrfxlstprflstprefix-list-intoroute-map-from   rtmpFind/(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgRoump;no such route map  org/freertr/cfg/cfgRoumproumaproute-map-intoroute-policy-from   rtplFind0(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgRouplc;no such route policy  org/freertr/cfg/cfgRouplcrouplcroute-policy-intono  del   unregister2ip s stopNow   restartTimer(Z)V   closeNeighbors  V(Lorg/freertr/rtr/rtrOspf4;Lorg/freertr/rtr/rtrOspf4area;Lorg/freertr/ip/ipFwdIface;)V 5  ifaceLorg/freertr/ip/ipFwdIface;  closeUp(Lorg/freertr/ip/ipFwdIface;)V \org/freertr/user/userFormat|area|routerid|state|uptime  '(Ljava/lang/String;Ljava/lang/String;)V,interface|area|address|routerid|state|uptime  $neighsorg/freertr/rtr/rtrOspf4neigh  Lorg/freertr/rtr/rtrOspf4area;  1rtrID   status2string  upTimeJ  timePast(J)Ljava/lang/String; UK(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;  d  1peer  Uo(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,interface|area|address|routerid|metric|delay  n getMetric  echoCalcLorg/freertr/tab/tabAverage;  U^(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;interface|neighbors!   listAlgorithm()Lorg/freertr/user/userFormat; java/util/ArrayList  s  $lsasorg/freertr/rtr/rtrOspf4lsa  +  compareTo(Lorg/freertr/addr/addrType;)I  1lsaIDorg/freertr/pack/packHolder  (ZZ)V    writeData"(Lorg/freertr/pack/packHolder;IZ)I " #putSkip % & merge2beg ( )*getCopy()[B ,-. /0org/freertr/enc/enc7bitbuf2hex((Ljava/util/List;[BILjava/lang/String;)V 234 56org/freertr/rtr/rtrOspfDumpdump4lsaM(Ljava/util/List;Lorg/freertr/pack/packHolder;Lorg/freertr/rtr/rtrOspf4lsa;)V8%routerid|lsaid|sequence|type|len|time:empty < =listStatistics l @ A listTopology C AD:(Lorg/freertr/addr/addrType;)Lorg/freertr/user/userFormat; F G listUsages I JKlistTree()Ljava/util/List; M NO copyBytes()Lorg/freertr/spf/spfCalc; Q RSdoWorkQ(Lorg/freertr/tab/tabGen;Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrType;)Z U VW listGraphviz(I)Ljava/util/List; Y Z[ listNhIncons>(Lorg/freertr/tab/tabIntMatcher;)Lorg/freertr/user/userFormat; ] ^[ listMetIncons ` a listHostnames cde fgorg/freertr/addr/addrIPtoIPv4()Lorg/freertr/addr/addrIPv4; i ju(Lorg/freertr/rtr/rtrOspf4;Lorg/freertr/rtr/rtrOspf4area;Lorg/freertr/rtr/rtrOspf4iface;Lorg/freertr/addr/addrIPv4;)V lmn oporg/freertr/ip/ipFwdIfacelowerLorg/freertr/ip/ipIfc; rst uvorg/freertr/ip/ipIfcgetState!()Lorg/freertr/util/state$states; xyz {|org/freertr/util/state$statesupLorg/freertr/util/state$states; c c  fromIPv4addr(Lorg/freertr/addr/addrIPv4;)Vorg/freertr/tab/tabRouteEntry org/freertr/addr/addrPrefix  (Lorg/freertr/addr/addrType;I)V  prefixLorg/freertr/addr/addrPrefix; v zbetterorg/freertr/rtr/rtrBgpUtil  routerAutoMesh e addUpdatedEntry(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRoute;IILorg/freertr/tab/tabRouteEntry;ZLorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;)Iorg/freertr/spf/spfLnkst  listLinkStates=(Lorg/freertr/tab/tabRoute;IIILorg/freertr/addr/addrIPv4;II)VprotoNum ConstantValueYverNumsizeHead Signature3Lorg/freertr/tab/tabGen;9Lorg/freertr/tab/tabGen;8Lorg/freertr/tab/tabGen;2(Lorg/freertr/ip/ipFwd;Lorg/freertr/prt/prtUdp;I)VCodeLineNumberTabletoString StackMapTablerouterRedistChangedrouterOthersChanged routerGetHelp!(Lorg/freertr/user/userHelping;)VrouterGetConfig&(Ljava/util/List;Ljava/lang/String;I)V:(Ljava/util/List;Ljava/lang/String;I)VrouterConfigure(Lorg/freertr/util/cmds;)ZrouterCloseNow addInterface<(Lorg/freertr/ip/ipFwdIface;)Lorg/freertr/rtr/rtrOspf4iface; delInterfaceamIabr()Z showNeighs (Z)Lorg/freertr/user/userFormat; showMetrics showIfacesshowAlgorithms (I)Lorg/freertr/user/userFormat; showDatabase*(ILorg/freertr/util/cmds;)Ljava/util/List;>(ILorg/freertr/util/cmds;)Ljava/util/List; showRoute(I)Lorg/freertr/tab/tabRoute;8(I)Lorg/freertr/tab/tabRoute; showSpfStat showSpfTopo7(ILorg/freertr/util/cmds;)Lorg/freertr/user/userFormat; showSpfLog showSpfTree'(I)Ljava/util/List;showSpfOtherTreeshowSpfOtherTopo showSpfGraph(II)Ljava/util/List;((II)Ljava/util/List; showNhIncons?(ILorg/freertr/tab/tabIntMatcher;)Lorg/freertr/user/userFormat; showMetIncons showHostnamesfindPeer;(ILorg/freertr/addr/addrIP;)Lorg/freertr/rtr/rtrOspf4neigh;routerNeighCountrouterNeighList8(Lorg/freertr/tab/tabRoute;)VrouterIfaceCountrouterRecursionsrouterLinkStates:(Lorg/freertr/tab/tabRoute;IILorg/freertr/addr/addrIPv4;)VU(Lorg/freertr/tab/tabRoute;IILorg/freertr/addr/addrIPv4;)V SourceFile rtrOspf4.javaBootstrapMethods ospf on  router-id traffeng-id  base  area  enable spf-log  spf-topolog spf-bidir spf-hops spf-ecmp max-metricstubnssa traffeng segrout bier hostnamesuppress-prefixdefault-originateprefix-list-fromprefix-list-intoroute-map-fromroute-map-intoroute-policy-from route-policy-into"distance   $ flexalgo &|||( |||||*|, -./ U0$java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClasses routeTypeaddTypeowner6org/freertr/util/statestates9%java/lang/invoke/MethodHandles$Lookup;java/lang/invoke/MethodHandlesLookup!   0141    7 : = #$'$*$$|*** ***+*,*Y !*Y %*Y (*+Y-.*+Y-2*n5*n8*n;*>**AGJK PUZ"-8CNY_eko{% *MS!@` gW]_eYgiLY M>*(k,*(os:+u{*e>*(k(*(os: ,W>*(,Y*2*>6*%k4*%o: > ƻY*2*:6*(k)*(os: 6**2*DŽ+**ζ+*ն>*,ߚ~>*+*+*eYi*,**6*!k*!o:meYgiL6*(kK*(os:/e:: +u+q%69*J *7<?MSZgty|$3AFISYfy"%69;>CFQW`f & es s   ! !!s "$ee'! !sSe "* +  + + + + + + + + +! +# +% +' +) ++ +- +/ +1 +3 +5 +7 +9 +; += +? +A +C +E +G +I +K +M +O +Q +S +U +W +Y +W +[ +] +_ +] +a +c +e +c +g +i +k +m +o +q +s 7 ! "(#0$8%@&H'P(X)`*h+p,x-./0123456789:;<=>?@A B(C0D8E@FHGPHXI`JhKpLxMNOPQRST?+,*.MuxW+,*2M{xW|:* * ~:+*,*+*,**6*(k*(os::+,xW+,MxW+,+,|+,|+,|+,|+,|+Ě,|+Ț,|+̚,|+К,|+Ԛ,|+ؚ,|+ܚ,|+,M+,M+,M+,M+,M+,MA+,*8*;*5xW6*!k"+,*!oMxWر%^_(`-a4bAdaefghijklm@nbo~pqrst u&vBw^xyz{|}BfHap/ANLNN^NNaNNsNNNsNeNNsN`NNsN`NNsNZNNsNZNNsNZNNsNZNNsNZNNsNZNNsNZNNsNZNNsNZNNsNZNNsNdNNsNdNNsNdNNsNdNNsNdNNsN* +M,4+M*.,W, N--*.-*,S+>+!: +%'Y***η/:*!2W4*,7*2+W*,_*9W*+* +M,?,B*+ ** *D*,H*ĸ9W*+H*+***`d*lK*,N&*+8*+;*+5,PsY*+QN+M,T**(-2s: +V'-X-[*(-sN- +^',`-+bW,e -+g,k-bW-[,m-bW-[,o-bW-[,q--[,s---[,t---[,u--[,--[,--[,w--[,y--[,z--[,|,+~: +'--[,++~: +'--[,,+: +'--[,++: +'--[,,+: +'--[,++: +'--[,+M,^+>+!: +%'Y***η/:*!:*,$*9W*** *,$*ĸ9W****,P%sY*+QN*(-sN- +^'+M,T-*(-W*,`-bW,e-bW,k-bW-[,m-bW-[,o-bW-[,q--[,s--[,t--[,u--[,--[,--[,w--[,y--[,z--[,|--[,--[,--[,--[,--[,--[$#'.9>@JR\ahj'2@Kejlv  *24>JOQ[glnx     #(-/9>CEOT Y![#e$o%t&{'})*+-./01345789:;=>?ABC DEGH#I%K/L9M>NEOGQPRVSXUbVlWqXxYz[\]_abdefghijlmnoqrsu vwx!y&z+{-}7~BGLQVXbr~".35?DIKUZ_akpuw !&(27=?INSU_djlv{F9N)+/$N,Css !!!!!! .++**2s"u<*(k *(osM,,<*%k**%oM,,,,*9W*ĸ9WF  $*7CGJ O S X^it"s |0~<=*(k!*(osN--[ڱ"!$)/ sI+*(osM,Y*,+N*%-2:--,[-6 )*,-.0#1025385<6A7G8si+Y*+M*%,M,,,,ȱA BCDF$G*H4*(kP@bYͷMYҷM>*%k*%o:6Զko:f,,ٴܸM9,MٴMܸMvM,F[\^#`0a=bBcEeUfdgihljpkme`q'  #,5YL=*%k|*%oN-c6-ԶkT-o:8+-MٴMܸMM+6 z{|'}+~.=KPS{"!4FYL=*%k,*%oN+-M-Զk+'>D 3Z$sY*QM*(,sM,, s Y NsY*Q:*(s:-+Y-:+Y-:,W,W6 k o:gWG-MxWY:   ! $- '|+- 1u-f!&(1:DN^mru#(s(++#CeY7MsY*QN*(-sN-,6- k-- o:,M,2 $(*9GLO]c*s! `*sY*QM*(,sM,eY9i,{ %%sZ$sY*QM*(,sM,,; sIsY*QN*(-sN-,> -?+Y-:,W-B&   $,5? sZ$sY*QM*(,sM,,E !"#%sW`*sY*QM*(,sM, Y ,H/ 012"4"sNsY*QN*(-sN- Y -L:+Y-:,WPWH& ? @AB"D+E4F>GHH"sksY*QN*(-sN--L:+Y-:,WPW,> ?+Y-:,WB6 S TUVX%Y.Z8[B\J]P_Y`cas3+a+sY*QN*(-sN- Y -Tl mno"q"s[%sY*QN*(-sN--,X| }~s[%sY*QN*(-sN--,\ sZ$sY*QM*(,sM,,_ sisY*QN*(-sN-6*%k?*%o:Y*-,bh::2  +9JY^agsAnc+<=*%k*%oԶk`<#) $) =*%k*%oN--kqwn6-Զk_-o:CcY}:~Y:Y+*W_J  25DRWZcmv !?n *%knn4sY*Q:*(s:+ 3s"++++++++++++++++++ + + ++++++++++!+#+%+'+)1*B2@ve3@4@x57@8:<