Hello, We have opensourced our dpdk-based project, Packet Journey https://github.com/Gandi/packet-journey .
Packet Journey is a combinationof Linux RT_NETLINK and severalparts ofDPDK (rte_kni, rte_lpm, rte_acl, rte_cmdline) and is intended to serveas an edge router. Our use case is: - pktj starts several forwarding threads and a KNI thread per external port - pktj launches a script which configures the KNI interface (MAC, IP, VLAN) and launches a BGP daemon - the host receives routes from the BGP daemon - the BGP daemon injects the routes in Linux - pktj receives the routes from NETLINK and put them in LPM in our "control" threads - pktj forwards packets to the KNI if the packets are - for the KNI IP or - if the neighbor is not known yet - if ttl reaches 0 - pktj filters packets if they match an ACLor if they exceed the rate limit, kni output is also rate-limited - pktj forwards packetsdirectly from the RXqueue to the TXqueue if the neighbor is known -- Nikita