Neale,
Given this constraint, IMO it should be verified prior to enacting the
change of the interface table and the request should be rejected if the
constraint is not met. The $64,000 question is whether this constraint
should be verified by VPP itself or the management agent.
Prior to open sourcing VPP, when there was a dedicated management agent,
Dave and I agreed that constraint verification was the responsibility of
the management agent.
Now that VPP is open source and there are potentially numerous
management agents, it seems to me that including configuration
constraint verification in the VPP might make more sense as a defensive
mechanism.
In either case, there is a general lack of documentation on feature
constraints that needs to be addressed. In the past, I have worked on a
system where the entire set of system configuration constraints was
documented in the bug tracking system. Needless to say, this was a less
than optimal means of communicating the set of requirements.
Thanks,
-daw-
On 1/17/2017 2:20 AM, Neale Ranns (nranns) wrote:
Hi Choonho,
An interface can only reside in (a.k.a be bound to) a single table. So
each time you do;
Set int ip table loop0 X
You are changing the table it is bound to, not adding tables. So the
output you see at the end of the sequence is correct, the loopback has
two addresses and is bound to table 5.
However, this is not a supported sequence of events. You MUST remove
all configured IP address on an interface before you change the
interface’s table.
Regards,
neale
*From: *<vpp-dev-boun...@lists.fd.io> on behalf of Choonho Son
<choonho....@gmail.com>
*Date: *Tuesday, 17 January 2017 at 00:17
*To: *"vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>
*Subject: *[vpp-dev] show interface address with multiple tables
With multiple tables(VRF), show interface addr display wrong table ID.
DBGvpp# create loopback interface
loop0
DBGvpp# set interface ip table loop0 1
DBGvpp# set interface ip address loop0 1.0.0.250/16
<http://1.0.0.250/16>
DBGvpp# sh int addr
local0 (dn):
loop0 (dn):
1.0.0.250/16 <http://1.0.0.250/16> table 1
DBGvpp# set interface ip table loop0 5
DBGvpp# set interface ip address loop0 5.0.0.250/16
<http://5.0.0.250/16>
DBGvpp# sh int addr
local0 (dn):
loop0 (dn):
1.0.0.250/16 <http://1.0.0.250/16> table 5
5.0.0.250/16 <http://5.0.0.250/16> table 5
DBGvpp#
The reason looks like
ip4_main_t has single fib_index_by_sw_if_index.
Even though sw_if_index has two table ID(fib_index) 1 and 5.
Last updated fib_index(Table 5) is updated at ip4_main_t.
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev