Hi Dmitry,

Please try this with 17.01 as the behaviour has changed for cross VRF scenarios 
like this.
Also a diagram, even if it’s just a photo of a white board, will help 
significantly.

Thanks,
neale

From: Dmitry Bufistov <dmi...@midokura.com>
Date: Wednesday, 11 January 2017 at 15:10
To: "Neale Ranns (nranns)" <nra...@cisco.com>
Cc: vpp-dev <vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] Get IPv6 neighbors MACs

Hi Neale,

Your understanding is correct. However I don't see any collision here.
There is following route in VRF1:

vpp# ip route table 1 add bbbb::/64 via 2001::2 Q

when packet hits this rule it will be sent via device Q, right?
The problem is that first the MAC address of 2001::2 should be obtained and VPP 
sends neighbour discovery request. When the response arrives VPP assumes it is 
for device P, since it has the same MAC address.

If I add MAC address of the next hop for device Q:

vpp# set ip6 neighbor Q 2001::2 76:5c:87:1a:09:eb

egress packets are correctly sent via interface Q. Remember, that interface Q 
cannot receive any ingress packet from external world. So my problem is to 
obtain the MAC address for set ip6 neighbour command.
Thank you very much for your help!

Dmitry

On Tue, Jan 10, 2017 at 5:56 PM, Neale Ranns (nranns) 
<nra...@cisco.com<mailto:nra...@cisco.com>> wrote:

Hi Dmitry,

IIUC you have two devices with identical IPv6 addresses, which we’ll call P and 
Q, connected on two different interfaces. These interfaces are in different 
VRFs so the addresses do not collide.

Now if we succeed in importing the discovered neighbours from VRF 0 to VRF 1, 
these addresses will now collide. Put another way, if a packet arrives in VRF 1 
destined to 2001::2 which device, P or Q, do you want to send it to?

Regards,
neale

From: <vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io>> on 
behalf of Dmitry Bufistov <dmi...@midokura.com<mailto:dmi...@midokura.com>>
Date: Tuesday, 10 January 2017 at 15:39
To: vpp-dev <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>>
Subject: [vpp-dev] Get IPv6 neighbors MACs

Hi list,

I ended up with a weired VPP configuration:

there are two host interfaces in VPP: A and B. They both have identical MAC and 
IP addresses. The IP address of B is on VRF 1.
Only interface A can get traffic from "real world", and it have one valid entry 
in its neighbour table:
DBGvpp# sh ip6 neighbors
    Time           Address       Flags     Link layer                     
Interface
     40.7989       2001::2         G    00:00:00:00:00:00           B
    106.3092       2001::2              76:5c:87:1a:09:eb            A

Now, from external application I would like to figure out the MACs of 
neighbours of interface A  and add corresponding neighbours for interface B. 
Basically: copy neighbours table of A to the neighbours table of B. It should 
be preferably done via java binding VPP API (JVPP).

VPP is good ad discovering neighbours so I believe there should be simple 
solution for my problem. There is JVPP ipNeighborAddDel() call that adds 
neighbour for given interface, but there is nothing I can find to query 
neighbours.

Could please somebody point out if there is a simple way to achieve what I want?

Thank you a lot in advance for any help,

Dmitry


_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to