X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Ftap.rst;h=7e44f846206c7ac0689fa23b18f8220cddbba79d;hb=8bccf4774c3007726b45b73318732ea29dc435ce;hp=dca64c98d4e6661c2a968fe895e3d677bc98a8c2;hpb=e58638c32411b7ae60ed4dea131728faee962327;p=dpdk.git diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst index dca64c98d4..7e44f84620 100644 --- a/doc/guides/nics/tap.rst +++ b/doc/guides/nics/tap.rst @@ -40,7 +40,7 @@ actual MAC address: ``00:64:74:61:70:[00-FF]``. --vdev=net_tap0,mac="00:64:74:61:70:11" The MAC address will have a user value passed as string. The MAC address is in -format with delimeter ``:``. The string is byte converted to hex and you get +format with delimiter ``:``. The string is byte converted to hex and you get the actual MAC address: ``00:64:74:61:70:11``. It is possible to specify a remote netdevice to capture packets from by adding @@ -76,7 +76,7 @@ Please change the IP addresses as you see fit. If routing is enabled on the host you can also communicate with the DPDK App over the internet via a standard socket layer application as long as you -account for the protocol handing in the application. +account for the protocol handling in the application. If you have a Network Stack in your DPDK application or something like it you can utilize that stack to handle the network protocols. Plus you would be able @@ -132,9 +132,9 @@ As rules are translated to TC, it is possible to show them with something like:: Examples of testpmd flow rules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Drop packets for destination IP 192.168.0.1:: +Drop packets for destination IP 192.0.2.1:: - testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 dst is 1.1.1.1 \ + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.0.2.1 \ / end actions drop / end Ensure packets from a given MAC address are received on a queue 2:: @@ -152,6 +152,22 @@ Distribute IPv4 TCP packets using RSS to a given MAC address over queues 0-3:: testpmd> flow create 0 priority 4 ingress pattern eth dst is 0a:0b:0c:0d:0e:0f \ / ipv4 / tcp / end actions rss queues 0 1 2 3 end / end +Multi-process sharing +--------------------- + +It is possible to attach an existing TAP device in a secondary process, +by declaring it as a vdev with the same name as in the primary process, +and without any parameter. + +The port attached in a secondary process will give access to the +statistics and the queues. +Therefore it can be used for monitoring or Rx/Tx processing. + +The IPC synchronization of Rx/Tx queues is currently limited: + + - Maximum 8 queues shared + - Synchronized on probing, but not on later port update + Example ------- @@ -165,7 +181,7 @@ used to build the dpdk you pulled down. Run pktgen from the pktgen directory in a terminal with a commandline like the following:: - sudo ./app/app/x86_64-native-linuxapp-gcc/app/pktgen -l 1-5 -n 4 \ + sudo ./app/app/x86_64-native-linux-gcc/app/pktgen -l 1-5 -n 4 \ --proc-type auto --log-level debug --socket-mem 512,512 --file-prefix pg \ --vdev=net_tap0 --vdev=net_tap1 -b 05:00.0 -b 05:00.1 \ -b 04:00.0 -b 04:00.1 -b 04:00.2 -b 04:00.3 \ @@ -258,6 +274,11 @@ Please refer to ``iproute2`` package file ``lib/bpf.c`` function An example utility for eBPF instruction generation in the format of C arrays will be added in next releases +TAP reports on supported RSS functions as part of dev_infos_get callback: +``ETH_RSS_IP``, ``ETH_RSS_UDP`` and ``ETH_RSS_TCP``. +**Known limitation:** TAP supports all of the above hash functions together +and not in partial combinations. + Systems supporting flow API --------------------------- @@ -277,4 +298,3 @@ Systems supporting flow API | Azure Ubuntu 16.04,| No limitation | | kernel 4.13 | | +--------------------+-----------------------+ -