7)  org/freertr/ip/ipRtr()V   org/freertr/rtr/rtrRift suppressAddrZ    defOriginorg/freertr/util/notifier   notifLorg/freertr/util/notifier;   need2run  fwdCoreLorg/freertr/ip/ipFwd;  !udpCoreLorg/freertr/prt/prtUdp; # $%nodeIDJ ' ()levelI + ,)distance$ / 0)lifeTime2org/freertr/tab/tabGen 1 5 67ifacesLorg/freertr/tab/tabGen; 9 :7ties <=> ?)org/freertr/ip/ipFwd ipVersion ABC DE&org/freertr/tab/tabRouteAttr$routeTyperift4(Lorg/freertr/tab/tabRouteAttr$routeType;Gorg/freertr/ip/ipCor4 I J)ipSize AL MErift6Oorg/freertr/ip/ipCor6Qorg/freertr/spf/spfCalc PS T(Lorg/freertr/spf/spfCalc;)V V WXlastSpfNLorg/freertr/spf/spfCalc; Z [XlastSpfS ] ^routerCreateComputed <` ab routerAddB(Lorg/freertr/ip/ipRtr;Lorg/freertr/tab/tabRouteAttr$routeType;I)Vdjava/lang/Thread cf g(Ljava/lang/Runnable;)V ci jstart lmn opjava/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String;r stmakeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; vwx y org/freertr/util/debugger rtrRiftEvntr |}~ org/freertr/util/loggerdebug(Ljava/lang/String;)Vorg/freertr/rtr/rtrRiftIface 7(Lorg/freertr/rtr/rtrRift;Lorg/freertr/ip/ipFwdIface;)V 1 add.(Ljava/lang/Comparable;)Ljava/lang/Comparable;  register2udporg/freertr/user/userFormat|%interface|address|nodeid|metric|delay '(Ljava/lang/String;Ljava/lang/String;)V 1 size()I 1 get(I)Ljava/lang/Comparable; ready peerLorg/freertr/addr/addrIP; %rtrId  getMetric  echoParamLorg/freertr/tab/tabAverage; sL(Ljava/lang/String;Ljava/lang/String;JILjava/lang/String;)Ljava/lang/String; r 1 del unregister2udpdir|origin|num|typ|seq|leftrorg/freertr/rtr/rtrRiftTie   org/freertr/util/cmdsword()Ljava/lang/String;  org/freertr/util/bitsstr2num(Ljava/lang/String;)I )directs l equals(Ljava/lang/Object;)Zn str2long(Ljava/lang/String;)J %origin )number 1 findjava/util/ArrayList org/freertr/enc/encThrift  elements Lorg/freertr/enc/encThriftEntry;  org/freertr/enc/encThriftEntryelmLjava/util/List; data s(I)Ljava/lang/String;  java/util/List s(J)Ljava/lang/String;  )type   %sequence    %expire  timeLeft r   putHeader3"()Lorg/freertr/enc/encThriftEntry;   dumpElement$(Lorg/freertr/enc/encThriftEntry;)[B  byteDump([BII)Ljava/lang/String; r r ! "#show()Ljava/util/List; % &'addAll(Ljava/util/Collection;)Z ) *+putField(IILjava/util/List;)V-org/freertr/pack/packHolder ,/ 0(ZZ)V 2 34toPacket (Lorg/freertr/pack/packHolder;)V ,6 78getCopy()[B:nodeid|name|uptime<iface|nodeid|name|peer|uptime > ?@ showNeighs!(Lorg/freertr/user/userFormat;Z)V BCD EForg/freertr/addr/addrIP compareTo(Lorg/freertr/addr/addrType;)IHinterface|neighbors J KLifaceLorg/freertr/ip/ipFwdIface;N1P0 R sS8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; lU V toLowerCase lX YZ startsWith(Ljava/lang/String;)Z \ ]^getSpf-(Ljava/lang/String;)Lorg/freertr/spf/spfCalc; P` ablistStatistics()Lorg/freertr/user/userFormat; Pe fb listTopologyhorg/freertr/rtr/rtrRiftTieSpf gj k(J)V Pm fn:(Lorg/freertr/addr/addrType;)Lorg/freertr/user/userFormat; Pp qb listUsages Ps t#listTree Pv wx copyBytes()Lorg/freertr/spf/spfCalc; Pz {|doWorkQ(Lorg/freertr/tab/tabGen;Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrType;)Z P~  listGraphviz(I)Ljava/util/List; P  listNhIncons>(Lorg/freertr/tab/tabIntMatcher;)Lorg/freertr/user/userFormat; P  listMetIncons P b listHostnames create tableorg/freertr/tab/tabRouteadv  org/freertr/tab/tabRouteEntry    getProtoVer  org/freertr/addr/addrPrefix defaultRoute (I)Lorg/freertr/addr/addrPrefix;  prefixLorg/freertr/addr/addrPrefix;   org/freertr/tab/tabRoute$addTypealways"Lorg/freertr/tab/tabRoute$addType;  F(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRouteEntry;ZZ)V  org/freertr/ip/ipFwdIfacelowerLorg/freertr/ip/ipIfc;  org/freertr/ip/ipIfcgetState!()Lorg/freertr/util/state$states;  org/freertr/util/state$statesupLorg/freertr/util/state$states;   unsuppressAddr  better  network  {(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/addr/addrPrefix;Lorg/freertr/addr/addrType;)Lorg/freertr/tab/tabRouteEntry;  bestLorg/freertr/tab/tabRouteAttr; A Econn  Eorg/freertr/tab/tabRouteAttrrouTyp  KLorg/freertr/tab/tabRouteIface; +  routerRedistedULorg/freertr/tab/tabRoute;   "(I)Lorg/freertr/tab/tabRouteEntry;  notyet  wC(Lorg/freertr/tab/tabRoute$addType;)Lorg/freertr/tab/tabRouteEntry;  )rouSrc   createNode(I)Lorg/freertr/rtr/rtrRiftTie; 1 put   createPrefix?(IILorg/freertr/tab/tabRouteEntry;)Lorg/freertr/rtr/rtrRiftTie;   haveNorthPeer()Zjava/lang/Integer  getTime()J   advertTie (Lorg/freertr/rtr/rtrRiftTie;Z)Vr    isExpiredu0  calcSpf(I)Lorg/freertr/tab/tabRoute;  ecmp?   mergeFrom@(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRoute;I)V  ErouterProtoTyp  ) routerProcNum   !setProto,(Lorg/freertr/tab/tabRouteAttr$routeType;I)V # $routerComputedU & '( preserveTime(Lorg/freertr/tab/tabRoute;)Z*rx , -routerComputedM / 0routerComputedF 2 37routerComputedI <5 67 routerChg(Lorg/freertr/ip/ipRtr;Z)V ' : ;<getField$(II)Lorg/freertr/enc/encThriftEntry; > ?@dat[B lB C([B)V PE FGaddIdent0(Lorg/freertr/addr/addrType;Ljava/lang/String;)V J K(I)Ljava/lang/Object; M N%val PP QRaddConnN(Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrType;IZZLjava/lang/String;)VTorg/freertr/addr/addrIPv4 S SW X8getBytes Z [\msbPutD([BII)V ^ _(Lorg/freertr/addr/addrType;I)V a bcip4toIP<(Lorg/freertr/addr/addrPrefix;)Lorg/freertr/addr/addrPrefix;eorg/freertr/addr/addrIPv6 d dh ijfromBuf([BI)V l mcip6toIP o p)metric r s)tag Pu vwaddPref>(Lorg/freertr/addr/addrType;Lorg/freertr/tab/tabRouteEntry;Z)V gW z {|msbPutQ([BIJ)V P~  addNextHop(ILorg/freertr/addr/addrType;Lorg/freertr/addr/addrIP;Lorg/freertr/tab/tabRouteIface;Lorg/freertr/addr/addrIP;Lorg/freertr/tab/tabRouteIface;)V P  getRoutes(Lorg/freertr/ip/ipFwd;Lorg/freertr/tab/tabLabelEntry$owner;[Lorg/freertr/tab/tabLabelEntry;Lorg/freertr/tab/tabGen;)Lorg/freertr/tab/tabRoute;rouorg/freertr/rtr/rtrBgpUtil  roumapInLorg/freertr/tab/tabListing;  roupolIn  prflstIn  addUpdatedTable(Lorg/freertr/tab/tabRoute$addType;IILorg/freertr/tab/tabRoute;Lorg/freertr/tab/tabRoute;ZLorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;)I <  commonLabelLorg/freertr/tab/tabLabelEntry;  routerDoAggregatess(ILorg/freertr/tab/tabRoute;Lorg/freertr/tab/tabRoute;Lorg/freertr/tab/tabLabelEntry;Lorg/freertr/addr/addrIPv4;I)V  byteComp ([BI[BII)I   Lorg/freertr/addr/addrType; B isIPv4  cip2ip4  msbGetD([BI)I  *(IIJ)V  )maskLen )  cip2ip6 dW  *(II[B)V  putTypKV(II)V  )ifwNum  )lnkId  org/freertr/cfg/cfgAllhostNameLjava/lang/String; lWshutdown11 2 router-id specify node id  org/freertr/user/userHelping%(Ljava/util/List;Ljava/lang/String;)V+2 . router id21 2 distance specify distance*2 . distance/1 2 level specify level'2 . level61 2 lifetime specify tie lifetime$2 . ms=1 . suppress-prefix do not advertise interfaces91 . default-originate advertise default route11 . spf-bidir spf bidir check61 2,. spf-topolog spf topology logging>2 2,. noappear exclude node (dis)appearance>2 2,. noconnect exclude link (dis)connectionA2 2,. noforward exclude forward (un)willingness<2 2,. noreachable exclude node (un)reachable<2 2,. nometric exclude link metric change72 2,. noprefix exclude prefix change31 . spf-hops spf hops disallow01 . spf-ecmp spf ecmp allow.1 2 spf-log spf log size32 . number of entries21 2 route-map process prefixes32 . name of route map 21 2 route-policy process prefixes 62 . name of route policy11 2 prefix-list filter prefixes52 . name of prefix list s'(Ljava/lang/String;J)Ljava/lang/String; s'(Ljava/lang/String;I)Ljava/lang/String;suppress-prefix   cfgLineJ(Ljava/util/List;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"default-originate P$ %&logSizeLorg/freertr/util/syncInt;R P) *&topoLog ,-. org/freertr/util/syncInt0 spf-topolog P2 3getTopoLogMode P5 6&bidir8 spf-bidir P: ;&hops=spf-hops P? &Aspf-ecmpC prefix-listE route-mapG route-policyInoK router-id(,Olifetime Q RwakeupTspf-log ,V WXset(I)I Z w[(Z)Lorg/freertr/util/cmds; P] ^_setTopoLogMode(Lorg/freertr/util/cmds;)V a bcprfxFind1(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgPrfxlst;eno such prefix list g herror jkl morg/freertr/cfg/cfgPrfxlstprflst o pqrtmpFind/(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgRoump;sno such route map uvw xorg/freertr/cfg/cfgRoumproumap z {|rtplFind0(Ljava/lang/String;Z)Lorg/freertr/cfg/cfgRouplc;~no such route policy  org/freertr/cfg/cfgRouplcrouplc  Xmisleepjava/lang/Exception |  traceback(Ljava/lang/Throwable;)V  routerAutoMesh  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 P listLinkStates=(Lorg/freertr/tab/tabRoute;IIILorg/freertr/addr/addrIPv4;II)Vjava/lang/RunnableportL ConstantValueportTmagicversion SignatureTLorg/freertr/tab/tabListing;SLorg/freertr/tab/tabListing;SLorg/freertr/tab/tabListing;8Lorg/freertr/tab/tabGen;6Lorg/freertr/tab/tabGen;:Lorg/freertr/spf/spfCalc;2(Lorg/freertr/ip/ipFwd;Lorg/freertr/prt/prtUdp;I)VCodeLineNumberTable StackMapTableorg/freertr/prt/prtUdptoString addInterface;(Lorg/freertr/ip/ipFwdIface;)Lorg/freertr/rtr/rtrRiftIface; showMetrics delInterface(Lorg/freertr/ip/ipFwdIface;)V showDatabase)(Lorg/freertr/util/cmds;)Ljava/util/List;=(Lorg/freertr/util/cmds;)Ljava/util/List; (Z)Lorg/freertr/user/userFormat; findNeigh9(Lorg/freertr/addr/addrIP;)Lorg/freertr/rtr/rtrRiftIface; showIfacesN(Ljava/lang/String;)Lorg/freertr/spf/spfCalc; showSpfStat1(Ljava/lang/String;)Lorg/freertr/user/userFormat; showSpfTopo6(Lorg/freertr/util/cmds;)Lorg/freertr/user/userFormat; showSpfLog showSpfTree$(Ljava/lang/String;)Ljava/util/List;8(Ljava/lang/String;)Ljava/util/List;showSpfOtherTreeshowSpfOtherTopo showSpfGraph%(Ljava/lang/String;I)Ljava/util/List;9(Ljava/lang/String;I)Ljava/util/List; showNhInconsP(Ljava/lang/String;Lorg/freertr/tab/tabIntMatcher;)Lorg/freertr/user/userFormat; showMetIncons showHostnames8(I)Lorg/freertr/tab/tabRoute;@Z(IILorg/freertr/tab/tabRouteEntry;)Lorg/freertr/rtr/rtrRiftTie;routerRedistChangedrouterOthersChangedrouterCloseNow 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;)ZrunrouterNeighCountrouterNeighList(Lorg/freertr/tab/tabRoute;)V8(Lorg/freertr/tab/tabRoute;)VrouterIfaceCountrouterRecursionsrouterLinkStates:(Lorg/freertr/tab/tabRoute;IILorg/freertr/addr/addrIPv4;)VU(Lorg/freertr/tab/tabRoute;IILorg/freertr/addr/addrIPv4;)V SourceFile rtrRift.javaBootstrapMethods rift on  add iface  |||| del iface  direction= originator=number=type= sequence= lifetime=header=body=| purging   router-id  level  distance  lifetime  spf-log   s$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 routeTypeaddTypeorg/freertr/util/statestates #org/freertr/tab/tabLabelEntry$owner"org/freertr/tab/tabLabelEntryowner%%java/lang/invoke/MethodHandles$Lookup'java/lang/invoke/MethodHandlesLookup!)))) !J)$%(),)67:7WX[X 0)  )e*** *Y**+*,* "*&*d**-.*1Y34*1Y38:*;5'@:*HK:*(H*PYRU*PYRY*\**_cY*ehn #(-39?JUXx}x<A % *kq>u+kz{+Y*+M*4,N--M,*\,. ".248< baYL=*4I*4N-0-&+-k-k---k+* %),36Y_ ";u+k{+Y*+M*4,M,,*\. !-126: bo5YL=*8+*8k+ -3 $$YM+N,-ǵ-жҙ,-ֶҙ,,+ص,+ǵ*8,M,Y:Y:,,ͺW,ܺW,ߺW,W, W, W*,W*,W $Wf  !"#$,%1'<(G)S*W+Y-b.k/w012345678!9 #l 'O'YM, +(,Y.N,-1-5=>?@"A?JY9MY;M>*4*4:,=,"LMO!Q.R;SBQHU $5=*4)*4N-+-A-"_ `ab d+e-_3h bUYGL=*4<*4N-#+-Ik- MOQ+"q rs&t*u-wMrSyFlll]^?+TֶW*U*Y} ~! *+[_a+*+[M+c,dgY+طiN,-l %P! *+[o! *+[rL(*+[uMgY+طiN,-yW,r #E*+[uMgY+طiN,-yW+c,dgY+طiN,-l #+0? 0Pg" *+[}" *+[," *+[,! *+[ *;!^Tu {*" YL* YM,*+,=*4z*4N-a-IL* - -4+-I:˲ϵ-Iڄ=*۶ߢ;*N-%-N--+-1Y3M,*W,*W>+ߢ.+:,*`W,*`W*$YN-*,*-WB6,',:!*.a **8d6*8:e !#uk{*8W;*"+,! a ** L+* +**+*"%*+"*Y)+*Y).*1Y31**4:N    !(0;ER^bewz !#$%&()*+#-. /*041;2J3Y0_5f6n7y8:;<=>;@ABCEFGIJ LMO$P'R/S2U<VC@IXOY^Zj[u\v^{_`abcV . 0!12',   ,?<*43*4M,,*&,8* f ghi k'l*n5o7f=r  PY*YRMPY*URM>*8*8:gYܷi:9:i9:=,lY=AD9:0%Hld6ehI: gY Li: h`I:  9:   L6 ,  O9:9:{Hld6fhI: :  9:  Q 9:  +SYU:  V LY 9:  Y  L]`:  9:  X 9:   =ĻdYf:   =g 9:  Y  L]k:  h`I:  9:  ] L6 6  9:   L6 Y: ** n q,tgY*"iN,-yW6*4c*4:GI1&-xy,-I},*:Y:***W** *,Y*,Uowxz |-}:~?BJMVYg+49<DQWZfknw|(-08;DOX]`ty||+9>ATW_bo) P .g' Kg 9 Pg(S $d% 8 PgPg! "Q*8+N-+ *8+W+- a-+= *8+W*+:*-:*8+WF    )<@IJT^gvw'Y,  cY:*"Y:-B`Y:Y:-:SV  XY:Y:-: d  Y:-˴n-˴q Y:   Y  ! "#$%$&-'=(F)O*X+p,}-./012345689:;%<.=;>D?P@`ATL vYM,,,*",YN-*&Y:Y6*4*4: Y:8Y:IÅƅY:      ɶ 1- -  Y: - - ˶Ѷ,Y, -,&EF GHIJ'K2L;MGNVOdPiQlStTwVWXYZ[\]^_`abNd(e0f9gBhNi[jfktl$J! !*\ stz<u Ҹ{*<*4 *4M,,۱*  *.15; i+Զ+۶+ݶ+߶+++++++++++++++++++++ + + +ֱv (08@HPX`hpxb+,*"W+,*&W+,**W+,*.W+*,+* ,!+,*U#k'W+*U(+,/*U1+*U4+,7+*U9+,<+*U>+,@+*,B*k+*,D*k+*,F*k>"3D[r!AaPlUlrl_l[l[lUl^l^l%+M>,Hҙ +M>,Jҙ*+ص"* ",Lҙ*+ǵ&,Mҙ*+ǵ*,Nҙ*+ǵ.,ҙ**P,!ҙ* *P,SҙD+M*U#,ǶUW*Y#,ǶUW*U#UW*Y#UW,/ҙ;*U(UW*Y(UW*U+Y\*Y+Y\,7ҙC*U4UW*Y4UW*U4UW*Y4UW*P,<ҙC*U9UW*Y9UW*U9UW*Y9UW*P,@ҙC*U>UW*Y>UW*U>UW*Y>UW*P,Bҙ?**P+`: +df*i*P,Dҙ?**P+n: +rf*t*P,Fҙ?**P+y: +}f**Ph"-168BMOYdfp{}".0<HJTX d s   "#%&&((2)6*;+B,D.N/S0Z1\3e4l5n7x8|9:;=>?@BCDFGHIJLMNOQRSUo"lRl Rl H'(((jul"*u0W**\L+"Z [\_b`abFx0<=*4"*4`<lmn(m.p` u=*4j*4N-Q-I<-2Y:Y-]+*W6 y z{| ~25<?H[nyt . *4-*U+d z   *A@@@!#@$&(