I test using a plugin_test.py script.

 

I am using device-input to ingress packets.  The packets undergo a 6-tuple
lookup (simplified description of the plugin) after which the packets are
egressed using interface-output node.  The adjacency is not complete when
the packet is ready to be shipped out the egress interface.  In regards to
using "u32 adj_index = vnet_buffer (b)->ip.adj_index[VLIB_TX];" when an
interface is initialized, the interface rewrite adjacency is setup with zero
dst mac since dst mac is not known - see
vnet_build_rewrite_for_sw_interface().  I have no other means to find a
completed adjacency for first packet to a dst.  So  I have to search the
ARP/ND table using dst IP+interface, get a neighbor, and then I can complete
the adjacency for subsequent packets to dst IP. My plugin could maintain a
client adj bihash database to lookup (key=dst IP) subsequent packets
adj->rewrite_header - this is way I avoid looking up the ip-neighbor table
for other packets which are not the first packet to a dst.

 

Regarding scale of ip_neighbor db, I see 50k clients are supported.  This
would work for me.   If higher scale is needed, we could change the
ip-neighbor db to use VPP bihash.  In summary, if I use ip-neighbor lookup
only for first packet to a destination, it would be good to support a new
API to find_entry.  See update code changes here:  

 

https://gerrit.fd.io/r/c/vpp/+/32023/1

 

Thanks,

 

Hemant



Attachment: smime.p7s
Description: S/MIME cryptographic signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19241): https://lists.fd.io/g/vpp-dev/message/19241
Mute This Topic: https://lists.fd.io/mt/82127329/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to