<div dir="ltr"><div><div>Greetings,<br><br></div>Thanks Ondrej!<br><br></div>With the help from a little IEEE754 converter, it works!<br><div><br>Filter becomes:<br>---------------------------------<br> export filter {<br> # Bandwidth in IEEE floating point format<br> # <a href="http://www.h-schmidt.net/FloatConverter/IEEE754.html">http://www.h-schmidt.net/FloatConverter/IEEE754.html</a><br> # 10000 0x461c4000<br> # 9000 0x460ca000<br> # 8000 0x45fa0000<br> # 7000 0x45dac000<br> # 6000 0x45bb8000<br> # 5000 0x459c4000<br> # 4000 0x457a0000<br> # 3000 0x453b8000<br> # 2000 0x44fa0000<br> # 1000 0x447a0000<br> #bgp_ext_community.add((unknown 0x4004, 65300, 0x461c4000));<br> if net ~ [<a href="http://22.0.0.0/24">22.0.0.0/24</a>] then {<br> bgp_ext_community.add((unknown 0x4004, 65300, 0x461c4000));#10000<br> }<br> if net ~ [<a href="http://22.0.1.0/24">22.0.1.0/24</a>] then {<br> bgp_ext_community.add((unknown 0x4004, 65300, 0x460ca000));#9000<br> }<br> if net ~ [<a href="http://22.0.2.0/24">22.0.2.0/24</a>] then {<br> bgp_ext_community.add((unknown 0x4004, 65300, 0x45fa0000));#8000<br> }<br> if net ~ [<a href="http://22.0.3.0/24">22.0.3.0/24</a>] then {<br> bgp_ext_community.add((unknown 0x4004, 65300, 0x447a0000));#1000<br> }<br>---------------------------------<br><br></div><div>Community is correctly interpreted by a Juniper MX:<br></div><div>---------------------------------<br>root@cache-router> show route 22.0.0.0 detail <br><br>inet.0: 605 destinations, 1120 routes (604 active, 0 holddown, 1 hidden)<br><a href="http://22.0.0.0/24">22.0.0.0/24</a> (2 entries, 1 announced)<br> *BGP Preference: 170/-101<br> Next hop type: Indirect<br> Address: 0x290c1c0<br> Next-hop reference count: 514<br> Source: 10.1.0.2<br> Next hop type: Router, Next hop index: 635<br> Next hop: 10.0.0.2 via xe-1/0/0.10, selected<br> Session Id: 0x1<br> Next hop type: Router, Next hop index: 724<br> Next hop: 10.0.1.2 via xe-1/2/0.10<br> Session Id: 0x5<br> Protocol next hop: 10.0.0.2<br> Indirect next hop: 0x2930514 1048577 INH Session ID: 0xc1b<br> Protocol next hop: 10.0.1.2<br> Indirect next hop: 0x2930c30 1048578 INH Session ID: 0x96<br> State: <Active Int Ext><br> Peer AS: 65300<br> Age: 3:56 Metric2: 0 <br> Validation State: unverified <br> Task: BGP_65300_65300.10.1.0.2+57790<br> Announcement bits (3): 0-KRT 4-Resolve tree 2 6-RT <br> AS path: 65301 I<br> AS path: Recorded<br> Communities: bandwidth:65300:10000 <--------------- Yay!<br> Accepted Multipath<br> Localpref: 100<br> Router ID: 10.1.0.2<br> BGP Preference: 170/-101<br> Next hop type: Indirect<br> Address: 0x28a58b4 <br> Next-hop reference count: 385<br> Source: 10.1.0.6<br> Next hop type: Router, Next hop index: 724<br> Next hop: 10.0.1.2 via xe-1/2/0.10, selected<br> Session Id: 0x5<br> Protocol next hop: 10.0.1.2<br> Indirect next hop: 0x2930c30 1048578 INH Session ID: 0x96<br> State: <NotBest Int Ext><br> Inactive reason: Not Best in its group - Router ID<br> Peer AS: 65300<br> Age: 2d 22:58:54 Metric2: 0 <br> Validation State: unverified <br> Task: BGP_65300_65300.10.1.0.6+36217<br> AS path: 65301 I<br> AS path: Recorded<br> Accepted MultipathContrib<br> Localpref: 100<br> Router ID: 10.1.0.6<br>---------------------------------<br>root@cache-router> show route 22.0.0.0 detail | grep bandwidth <br> Communities: bandwidth:65300:10000<br><br>root@cache-router> show route 22.0.1.0 detail | grep bandwidth <br> Communities: bandwidth:65300:9000<br><br>root@cache-router> show route 22.0.2.0 detail | grep bandwidth <br> Communities: bandwidth:65300:8000<br><br>root@cache-router> show route 22.0.3.0 detail | grep bandwidth <br> Communities: bandwidth:65300:1000<br>---------------------------------<br><br></div><div>From an operational perspective, what's the best way make changes to these Bandwidth values without restarting the BGP sessions? I'd like to be able to make changes, and then push a new update message, like doing a 'clear ip bgp x.x.x.x soft clear out'. I've tried just updating the configurations file and then restarting the reloading the protocol, but that doesn't do it.<br>---------------------------------<br>bird> reload core<br>core: reloading<br>---------------------------------<br><br></div><div>Kind regards,<br>Dave<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 11, 2015 at 3:43 PM, Ondrej Zajicek <span dir="ltr"><<a href="mailto:santiago@crfreenet.org" target="_blank">santiago@crfreenet.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sun, Jan 11, 2015 at 02:16:18PM -0800, dave seddon wrote:<br>
> Greetings Ondrej,<br>
><br>
> Thanks for your reply regarding this extended community.<br>
><br>
> I have tried the following two (2) configurations:<br>
> -------------------------------------------------<br>
> bgp_ext_community.add((unknown 0x4004, 65300, 10000));<br>
> bgp_ext_community.add((unknown 0x4004, 65300, 0x03E8));<br>
> -------------------------------------------------<br>
><br>
> In both cases, the neighbour Juniper router see the bandwidth as zero.<br>
<br>
</span>According to <a href="https://tools.ietf.org/html/draft-ietf-idr-link-bandwidth-06" target="_blank">https://tools.ietf.org/html/draft-ietf-idr-link-bandwidth-06</a>,<br>
the bandwidth have to be encoded as floating point, while the 'unknown'<br>
format defines a raw value of local field of the community.<br>
<br>
You could try to set the value from the tcpdump of Juniper (1176255488)<br>
instead of 10000.<br>
<br>
Well, to be practical, we would have to add explicit support for this<br>
community instead of using universal format.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Elen sila lumenn' omentielvo<br>
<br>
Ondrej 'Santiago' Zajicek (email: <a href="mailto:santiago@crfreenet.org">santiago@crfreenet.org</a>)<br>
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, <a href="http://wwwkeys.pgp.net" target="_blank">wwwkeys.pgp.net</a>)<br>
"To err is human -- to blame it on a computer is even more so."<br>
</div></div></blockquote></div><br></div>