<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,</div><div dir="ltr">Thanks for the reply. But my question was why there are 2 types of node in "struct route_node".  (MTYPE_ROUTE_SRC_NODE and MTYPE_ROUTE_NODE).<br><div>e.g., rnode_is_srcnode() and rnode_is_dstnode() .</div><div><br></div><div>Thanks,</div><div>Sudhanshu</div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 29, 2019 at 5:05 PM Donald Sharp <<a href="mailto:sharpd@cumulusnetworks.com">sharpd@cumulusnetworks.com</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">`struct route_node` -> Table route node data structure contains the<br>
prefix and some small additional data useful for keeping track of the<br>
node in the table.<br>
`struct rib_dest_t` -> A rib node that we have received data about it<br>
from an upper level protocol.  Contains some additional tracking<br>
information that zebra needs to keep track of in relation to the<br>
particular prefix in the rib.  We do not create a rib_dest_t per<br>
route_node.  We only create a rib_dest_t( with one caveat ) per<br>
routing entry given to zebra.<br>
`struct route_entry` -> A route handed to us from another protocol.<br>
We can have one of these per protocol running possibly.  zebra needs<br>
to track the different protocols attempting to install as well as some<br>
additional data unique to that route.  Zebra chooses one of these<br>
route entries to install into the kernel.<br>
<br>
I cannot answer the second question.<br>
<br>
donald<br>
<br>
On Mon, Apr 29, 2019 at 6:51 AM sudhanshu kumar <<a href="mailto:sudhanshu22@gmail.com" target="_blank">sudhanshu22@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
> I have 2 questions about zebra in frr.<br>
> 1. why do we maintain 2 types (source and destination route type) in zebra. I am not sure what source route type means ? Is it the source of the route (like the packet source or the neighbor from which the route got learnt) ?<br>
> 2.  How does frr routing stack interact with SONIC platform. I see that it has a TCP socket with SONIC which it uses to send messages for all protocols. Is it true ?<br>
><br>
> Thanks,<br>
> Sudhanshu<br>
> ---------- Forwarded message ---------<br>
> From: sudhanshu kumar <<a href="mailto:sudhanshu22@gmail.com" target="_blank">sudhanshu22@gmail.com</a>><br>
> Date: Thu, Apr 25, 2019 at 12:06 PM<br>
> Subject: help: frr interaction with SONIC<br>
> To: <<a href="mailto:dev-request@lists.frrouting.org" target="_blank">dev-request@lists.frrouting.org</a>><br>
><br>
><br>
> Hi,<br>
> I would like to know how does frr routing stack interact with SONIC platform. I see that it has a TCP socket with SONIC which it uses to send messages for all protocols. Is it true ?<br>
><br>
> Thanks & Regards,<br>
> Sudhanshu<br>
> _______________________________________________<br>
> dev mailing list<br>
> <a href="mailto:dev@lists.frrouting.org" target="_blank">dev@lists.frrouting.org</a><br>
> <a href="https://lists.frrouting.org/listinfo/dev" rel="noreferrer" target="_blank">https://lists.frrouting.org/listinfo/dev</a><br>
</blockquote></div>