Yes Jafar I fully agree with your description.

Note, that at some point quagga needs to be aware of the (VR)F/netns a
logical-table belongs to, because of netlink sockets, but that's pure
plumbing. (and of course can be implemented in a totally different
way on non Linux OSes; each OS will have it's own plumbing)

Best regards
Alain

On 06/05/2015 05:30 PM, Jafar Al-Gharaibeh wrote:

On 6/5/2015 9:51 AM, Alain Ritoux wrote:


On 06/05/2015 04:28 PM, Jafar Al-Gharaibeh wrote:

Except that it doesn't index a table really, it does index a "domain"
(for lack of a better term) where multiple tables can live.
No, it really indexes a logical-table (ex-domain); the way the
logical-table is mapped into one of the numerous kernel tables
is the "low" part.

In the patchset we propose, we offer to map the logical-table
to the linux "main" table of a specific netns. If someone wants
to use it to populate a specific table of the basic netns, it's
fine, he just has to provide the code to configure the lower part
but the "upper" part, i.e. the handling of multiple RIB will stay
unchanged.

for example it could be
   # current implementation
   # this means "main" table netns "VRF1"
   logical-table 1 netsn /var/run/VRF1

   # possible extensions

   # this means table #3 in defaut netns
   logical-table 1 table 3

   # this means table #3 in netns VRF1
   logical-table 1  netsn /var/run/VRF1 table 3

But the way/cli/ZAPI to add static routes to logical-tabla 1 or
the way for a routing protocol, to populate this table must stay
unchanged, whatever the logical-table represents (nested netns /
tables / etc.)


Are you describing a 1-to-1 mapping  between logical-tables(VRF) and
kernel-tables?

  I know that this is what the VRF patch provides at the moment, but
part of the discussion earlier was the possibility of having multiple
tables in each VRF, though we probably didn't explicitly state if we are
talking about VRFs at the kernel side or at Quagga side. Maybe the use
of the VRF term caused the confusion. Using your syntax I could do:

    logical-table 1  netsn /var/run/VRF1 table 1
    logical-table 2  netsn /var/run/VRF1 table 2
    logical-table 3  netsn /var/run/VRF1 table 3

    logical-table 4  netsn /var/run/VRF2 table 1
    logical-table 5  netsn /var/run/VRF2 table 2
    logical-table 6  netsn /var/run/VRF2 table 3

  This means we have two VRFs at the kernel side with three tables each.
In this case, Quagga doesn't really care (does it need to?) if logical
tables 1 & 2 are within the same VRF or if tables 3 & 4 are in two
separates VRFs.  Is that correct?

Regards,
Jafar








--
Alain RITOUX
Integration & Maintenance Manager
Tel +33-1-39-30-92-32
Fax +33-1-39-30-92-11
http://www.6wind.com/
http://www.6windblog.com/
===============================================================
This e-mail message, including any attachments, is for the sole
use of the intended recipient(s) and contains information that
is confidential and proprietary to 6WIND. All unauthorized
review, use, disclosure or distribution is prohibited. If you
are notthe intended recipient, please contact the sender by
reply e-mail and destroy all copies of the original message.
===============================================================


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to