Hi nagp, I do indeed mean the result of a ip6_fib_table_lookup. The goal of a lookup is ultimately to find the adjacency to use (and thus eventually get to ip6_rwrite node). Since you know the adjacency’s full description, it is more efficient to retrieve it directly from the adjacency data-base and go directly to ip6_rewrite.
As you say, if one where to do a lookup for a link-local address in the FIB, then one should use the interface as part of the key, i.e. a /160 lookup, or perhaps in a per-interface link-local address only ‘FIB’. But VPP has no such function. The adjacency data-base serves this purpose*. Regards, Neale *if you are using this in the data-plane though, we should consider alternatives. From: Nagaprabhanjan Bellaru <nagp.li...@gmail.com> Date: Wednesday, 12 April 2017 at 14:04 To: "Neale Ranns (nranns)" <nra...@cisco.com> Cc: vpp-dev <vpp-dev@lists.fd.io> Subject: Re: [vpp-dev] How to send packets from control plane to a link local IPv6 address? Thanks Neale! By the "result of the lookup" do you mean looking up through ip6_fib_table_lookup? I don't this lookup taking a interface also (for the link local case). Please correct my understanding. Thanks, -nagp On Wed, Apr 12, 2017 at 4:30 PM, Neale Ranns (nranns) <nra...@cisco.com<mailto:nra...@cisco.com>> wrote: Hi nagp, If you know the destination address is link local and you know on which interface, then the result of the lookup will result in the adjacency for that link-local address on that interface, i.e. the adjacency you would get back from; adj_index_t ai = adj_nbr_add_or_lock(FIB_PROTOCOL_IP6, VNET_LINK_IP6, <ll_add>, <interface>); now you have the adjacency, the lookup is not required, so you can send the packet directly to ip6_rewrite/ip6_discover_neighbor. There is an example of this in the BFD code (see bfd_udp_input()). Hth, neale From: <vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io>> on behalf of Nagaprabhanjan Bellaru <nagp.li...@gmail.com<mailto:nagp.li...@gmail.com>> Date: Wednesday, 12 April 2017 at 11:27 To: vpp-dev <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>> Subject: [vpp-dev] How to send packets from control plane to a link local IPv6 address? Hi, How can I send packets to a link local IPv6 address? I know the interface on which the packet has to be sent, but when I enqueue the packet to "ip6_lookup" node, how can I encode the interface such that the neighor resolution happens on that interface and the packet gets transmitted? Thanks, -nagp
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev