<div dir="ltr"><div dir="ltr"><div>Hi Hasan,</div><div>FPM in one-way: it's a way of making some of zebra's information available to an external consumer. As you observed, it's not possible to use FPM to influence what information zebra holds or how it processes the information it receives.<br></div><div><br></div><div>We've begun adding a dataplane subsystem to zebra that is designed to be more complete, and to be bi-directional. The zebra dataplane is asynchronous, and it supports plugins to implement support for a system's forwarding path - the default plugin supports the local kernel, for example. We've moved ip route programming, interface address programming, and LSP programming into this kernel plugin so far. You can take a look at zebra/zebra_dplane.[ch] to see how the current support works.  I'll be working on EVPN this summer, as a matter of fact, and hopefully we'll be able to offer a useful set of features.<br></div><div><br></div><div>-- Mark<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 22, 2019 at 5:00 PM Syed Hasan Raza Naqvi via dev <<a href="mailto:dev@lists.frrouting.org">dev@lists.frrouting.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><br><br>---------- Forwarded message ----------<br>From: Syed Hasan Raza Naqvi <<a href="mailto:syed.naqvi@broadcom.com" target="_blank">syed.naqvi@broadcom.com</a>><br>To: <a href="mailto:dev@lists.frrouting.org" target="_blank">dev@lists.frrouting.org</a><br>Cc: <br>Bcc: <br>Date: Mon, 22 Jul 2019 13:58:07 -0700<br>Subject: FPM-Zebra interactions and EVPN MAC route handing<br><div dir="ltr"><div><br></div><div>Hi,</div><div><br></div><div>I have below queries related to Zebra-FPM interaction and EVPN MAC handling in FRR. Would appreciate if someone could answer. </div><div><br></div><div><br></div><div>(1)  First of all, I don't see any communication from Fpm to Zebra today. The code in Zebra just de-queues from the fpm socket and discards.</div><div>    zebra_fpm.c:<span style="color:rgb(111,66,193);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre-wrap">zfpm_read_cb()
...</span></div><div><span style="color:rgb(111,66,193);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre-wrap">        /*</span></div><div><span style="color:rgb(111,66,193);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre-wrap">         * Just throw it away for now.
         */</span></div><div>    Wondering if we never had a situation where specific info or feedback is required from Fpm? </div><div>    For example, the route installation errors in Fpm communicated back to Zebra?<span style="color:rgb(111,66,193);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre-wrap"><br></span></div><div><br></div><div><br></div><div>(2) This question is related to above. In systems where L2 forwarding/learning is achieved in hardware (asic) forwarding plane, not all of the MACs will be available in Linux FDB. Only the MACs which were learned due to ARP/ND would be present in Linux FDB.</div><div><br></div><div>    In such a case, it might be better to inject the local MACs into Zebra directly from Fpm. But looks like the only way for local MACs to be advertised into EVPN is to somehow inject  them into Linux FDB and let Zebra learn from Linux.</div><div><br></div><div>    Is this correct understanding? And will it be acceptable to introduce a knob in zebra to get the local MACs from Fpm instead of Linux FDB?</div><div><br></div><div><br></div><div>(3) On the similar lines as above, not all of the remote EVPN MACs need to be present in Linux FDB. Only those MACs which have corresponding IP (ARP/ND) are required in Linux FDB. In such a case, it might be better to selectively install MACs into Linux, and send all of the EVPN MACs to Fpm so that they can be installed in asic. But I don't see zebra gives any MAC to Fpm. I would like to hear the rationale behind this as well. And is it a good idea to introduce a knob in Zebra to achieve it?</div><div><br></div><div>Thanks in advance!</div><div><br></div><div>Regards,</div><div>Hasan</div><div><br></div></div>

</blockquote></div></div>