Hi Neale, Thanks for your reply. I can submit a patch that makes the changes to ip4_local_check_src() that you described.
Yes, the plugin runs as a for-us feature. Thanks for the pointer to gbp_policy_dpo_t, I'll take a look at it and see if I can do something similar. -Matt On Mon, Jun 17, 2019 at 2:41 AM Neale Ranns (nranns) <nra...@cisco.com> wrote: > Hi Matt, > > > > I have no explanation for why adj_index[VLIB_RX] is set to the same value > as the TX, AFAICT it’s been that way since time immemorial 😉 I think we > should change that logic to RX=TX; TX=lbi. I don’t see anything in the code > that relies on RX being set to the TX. > > In that case the RX will be the receive DPO which has the sw_if_index > associated with the for-us FIB entry. > > > > Is your plugin running as a for-us feature? That’s good if you want to see > all the for-us packets. If you want per-prefix for-us you might consider a > interposing your own DPO in that prefixes output chain. See the interposed > gbp_policy_dpo_t for an example. > > > > Regards, > > neale > > > > > > > > *De : *"Dave Barach (dbarach)" <dbar...@cisco.com> > *Date : *vendredi 14 juin 2019 à 20:30 > *À : *"mgsm...@netgate.com" <mgsm...@netgate.com>, "Neale Ranns (nranns)" > <nra...@cisco.com> > *Objet : *Re: [vpp-dev] identifying packets sent to a loopback address > > > > This is a Neale Ranns question. Looping him in... HTH... Dave > > > ------------------------------ > > *From:* vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> on behalf of Matthew > Smith via Lists.Fd.Io <mgsmith=netgate....@lists.fd.io> > *Sent:* Friday, June 14, 2019 1:52 PM > *To:* vpp-dev > *Cc:* vpp-dev@lists.fd.io > *Subject:* [vpp-dev] identifying packets sent to a loopback address > > > > Hi, > > > > I have a plugin node in which I want to process some received packets. > When a packet is destined to an IP address that is configured on a loopback > interface, I want to be able to lookup some data based on the sw_if_index > of the loopback interface. Packets that are sent to the loopback address > are received on hardware interfaces, so I cannot look at > sw_if_index[VLIB_RX] in the vnet buffer opaque data to find out that the > packet destination address belongs to a loopback. I was hoping that > ip.adj_index[VLIB_TX] would contain data that would help me do what I'm > trying to do, but that does not seem to be the case. In ip4-lookup, a FIB > entry is found which matches the loopback address. The index of the > adjacency for the path is stored in ip.adj_index[VLIB_TX]. But the stored > value is subsequently overwritten in ip4-local during the call to > ip4_local_check_src(). That function does a lookup on the source IP address > and overwrites both ip.adj_index[VLIB_RX] and ip.adj_index[VLIB_TX] with > the index retrieved by the lookup. > > > > I can work around this in my plugin code if I need to but it would be nice > to be able to use the adjacency data that was retrieved by ip4-lookup. > Would it break anything if ip4_local_check_src() only updates > ip.adj_index[VLIB_RX] and leaves the contents of ip.adj_index[VLIB_TX] > intact? > > > > Thanks, > > -Matt > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#13322): https://lists.fd.io/g/vpp-dev/message/13322 Mute This Topic: https://lists.fd.io/mt/32066650/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-