diff options
Diffstat (limited to 'examples/udpfwd/README')
-rw-r--r-- | examples/udpfwd/README | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/examples/udpfwd/README b/examples/udpfwd/README index 8ab7e98..91b6e76 100644 --- a/examples/udpfwd/README +++ b/examples/udpfwd/README @@ -18,15 +18,15 @@ BE is responsible for: (via tle_udp_rx_bulk). - retrieve packets ready to be send out from UDP TLDK context(s) and TX them over destined DPDK port. -Right now only one RX/TX queue per port is used. +Multiple RX/TX queues per port are supported by RSS. Right now the number of +TX is same as the number of RX queue. Each BE lcore can serve multiple DPDK ports, TLDK UDP contexts. - Front End (FE) FE responsibility is to open configured UDP streams and perform send/recv over them. These streams can belong to different UDP contexts. -Right now each lcore can act as BE or FE (but not both simultaneously). -Master lcore can act as FE only. +Right now each lcore can act as BE and/or FE. Usage ===== @@ -40,18 +40,18 @@ udpfwd <EAL parameters> -- \ -f | --fecfg <filename> /* frontend configuration file. */ \ <port0_params> <port1_params> ... <portN_params> -port_params: port=<uint>,lcore=<uint>,\ +port_params: port=<uint>,lcore=<uint>[-<uint>],\ [rx_offload=<uint>,tx_offload=<uint>,mtu=<uint>,ipv4=<ipv4>,ipv6=<ipv6>] port_params are used to configure the particular DPDK device (rte_ethdev port), and specify BE lcore that will do RX/TX from/to the device and manage -BE part of corresponding UDP context. +BE part of corresponding UDP context. Multiple BE lcore can be specified. -port - DPDK port id (right now on each port is used just one RX, - one TX queue). +port - DPDK port id (multiple queues are supported when multiple lcore + is specified for a port). lcore - EAL lcore id to do IO over that port (rx_burst/tx_burst). - several ports can be managed by the same lcore, - but same port can't belong to more than one lcore. + several ports can be managed by the same lcore, and same port can + belong to more than one lcore. rx_offload - RX HW offload capabilities to enable/use on this port. (bitmask of DEV_RX_OFFLOAD_* values). tx_offload - TX HW offload capabilities to enable/use on this port. @@ -64,15 +64,15 @@ ipv6 - ipv6 address to assign to that port. At least one of ipv4/ipv6 values have to be specified for each port. As an example: -udpfwd --lcores='3,6' -w 01:00.0 -- \ +udpfwd --lcores='3,6,8' -w 01:00.0 -- \ --promisc --rbufs 0x1000 --sbufs 0x1000 --streams 0x100 \ --fecfg ./fe.cfg --becfg ./be.cfg \ -port=0,lcore=6,rx_offload=0xf,tx_offload=0,\ +port=0,lcore=6,lcore=8,rx_offload=0xf,tx_offload=0,\ ipv4=192.168.1.233,ipv6=2001:4860:b002::28 -Will create TLDK UDP context on lcore=6 (BE lcore) to manage DPDK port 0. -Will assign IPv4 address 192.168.1.233 and IPv6 address 2001:4860:b002::28 -to that port. +Will create TLDK UDP context on lcore=6 and lcore=8 (BE lcore) to manage +DPDK port 0. Will assign IPv4 address 192.168.1.233 and IPv6 address +2001:4860:b002::28 to that port. The following supported by DPDK RX HW offloads: DEV_RX_OFFLOAD_VLAN_STRIP, DEV_RX_OFFLOAD_IPV4_CKSUM, @@ -81,6 +81,11 @@ The following supported by DPDK RX HW offloads: will be enabled on that port. No HW TX offloads will be enabled. +If multiple lcore is specified per DPDK port, the following RSS hash will +be enabled on that port: + ETH_RSS_UDP + + Fornt-End (FE) and Back-End (BE) configuration files format: ------------------------------------------------------------ - each record on a separate line. @@ -96,9 +101,10 @@ FE config record format: lcore=<uint>,op=<"rx|tx|echo|fwd">,\ laddr=<ip>,lport=<uint16>,raddr=<ip>,rport=<uint16>,\ -[txlen=<uint>,fwladdr=<ip>,fwlport=<uint16>,fwraddr=<ip>,fwrport=<uint16> +[txlen=<uint>,fwladdr=<ip>,fwlport=<uint16>,fwraddr=<ip>,fwrport=<uint16>,\ +belcore=<uint>] -lcore - EAL lcore to manage that stream(s). +lcore - EAL lcore to manage that stream(s) in the FE. op - operation to perform on that stream: "rx" - do receive only on that stream. "tx" - do send only on that stream. @@ -118,6 +124,7 @@ fwraddr - remote address for the forwarding stream(s) to open ("fwd mode only). fwrport - remote port for the forwarding stream(s) to open ("fwd mode only). +belcore - EAL lcore to manage that stream(s) in the BE. Refer to fe.cfg for an example. |