ixgbe: fix scalar scattered Rx with CRC
[dpdk.git] / doc / guides / testpmd_app_ug / testpmd_funcs.rst
index 9ca0b38..3f076c8 100644 (file)
@@ -1,5 +1,5 @@
 ..  BSD LICENSE
 ..  BSD LICENSE
-    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
     All rights reserved.
 
     Redistribution and use in source and binary forms, with or without
     All rights reserved.
 
     Redistribution and use in source and binary forms, with or without
@@ -541,7 +541,7 @@ csum set (ip|udp|tcp|sctp|outer-ip) (hw|sw) (port_id)
 
 - ip|udp|tcp|sctp always concern the inner layer.
 
 
 - ip|udp|tcp|sctp always concern the inner layer.
 
-- outer-ip concerns the outer IP layer in case the packet is recognized
+- outer-ip concerns the outer IP layer (only for IPv4) in case the packet is recognized
   as a tunnel packet by the forward engine (vxlan, gre and ipip are
   supported). See "csum parse-tunnel" command.
 
   as a tunnel packet by the forward engine (vxlan, gre and ipip are
   supported). See "csum parse-tunnel" command.
 
@@ -635,6 +635,8 @@ The available information categories are:
 
 *   icmpecho: receives a burst of packets, lookup for IMCP echo requests and, if any, send back ICMP echo replies.
 
 
 *   icmpecho: receives a burst of packets, lookup for IMCP echo requests and, if any, send back ICMP echo replies.
 
+*   ieee1588: demonstrate L2 IEEE1588 V2 PTP timestamping for RX and TX. Requires ``CONFIG_RTE_LIBRTE_IEEE1588=y``.
+    Note: TX timestamping is only available in the "Full Featured" TX path. To force ``testpmd`` into this mode set ``--txqflags=0``.
 
 Example:
 
 
 Example:
 
@@ -880,54 +882,135 @@ Attach a port specified by pci address or virtual device args.
 To attach a new pci device, the device should be recognized by kernel first.
 Then it should be moved under DPDK management.
 Finally the port can be attached to testpmd.
 To attach a new pci device, the device should be recognized by kernel first.
 Then it should be moved under DPDK management.
 Finally the port can be attached to testpmd.
-On the other hand, to attach a port created by virtual device, above steps are not needed.
+
+For example, to move a pci device using ixgbe under DPDK management:
+
+.. code-block:: console
+
+    ./tools/dpdk_nic_bind.py --status
+
+    Network devices using DPDK-compatible driver
+    ============================================
+    <none>
+
+    Network devices using kernel driver
+    ===================================
+    0000:0a:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=eth2 drv=ixgbe unused=
+
+    ./tools/dpdk_nic_bind.py -b igb_uio 0000:0a:00.0
+    ./tools/dpdk_nic_bind.py --status
+
+    Network devices using DPDK-compatible driver
+    ============================================
+    0000:0a:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio unused=
+
+To attach a port created by virtual device, above steps are not needed.
 
 port attach (identifier)
 
 
 port attach (identifier)
 
-For example, to attach a port whose pci address is 0000:02:00.0.
+For example, to attach a port whose pci address is 0000:0a:00.0.
 
 .. code-block:: console
 
 
 .. code-block:: console
 
-    testpmd> port attach 0000:02:00.0
+    testpmd> port attach 0000:0a:00.0
     Attaching a new port...
     Attaching a new port...
-    ... snip ...
+    EAL: PCI device 0000:0a:00.0 on NUMA socket -1
+    EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
+    EAL:   PCI memory mapped at 0x7f83bfa00000
+    EAL:   PCI memory mapped at 0x7f83bfa80000
+    PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 5
+    PMD: eth_ixgbe_dev_init(): port 0 vendorID=0x8086 deviceID=0x10fb
     Port 0 is attached. Now total ports is 1
     Done
     Port 0 is attached. Now total ports is 1
     Done
+    testpmd>
 
 For example, to attach a port created by pcap PMD.
 
 .. code-block:: console
 
 
 For example, to attach a port created by pcap PMD.
 
 .. code-block:: console
 
-    testpmd> port attach eth_pcap0,iface=eth0
+    testpmd> port attach eth_pcap0
     Attaching a new port...
     Attaching a new port...
-    ... snip ...
+    PMD: Initializing pmd_pcap for eth_pcap0
+    PMD: Creating pcap-backed ethdev on numa socket 0
     Port 0 is attached. Now total ports is 1
     Done
     Port 0 is attached. Now total ports is 1
     Done
+    testpmd>
 
 
-In this case, identifier is "eth_pcap0,iface=eth0".
+In this case, identifier is "eth_pcap0".
 This identifier format is the same as "--vdev" format of DPDK applications.
 
 This identifier format is the same as "--vdev" format of DPDK applications.
 
+For example, to re-attach a bonded port which has been previously detached,
+the mode and slave parameters must be given.
+
+.. code-block:: console
+
+    testpmd> port attach eth_bond_testpmd_0,mode=0,slave=1
+    Attaching a new port...
+    EAL: Initializing pmd_bond for eth_bond_testpmd_0
+    EAL: Create bonded device eth_bond_testpmd_0 on port 0 in mode 0 on socket 0.
+    Port 0 is attached. Now total ports is 1
+    Done
+
+
 port detach
 ~~~~~~~~~~~
 
 Detach a specific port.
 
 Before detaching a port, the port should be closed.
 port detach
 ~~~~~~~~~~~
 
 Detach a specific port.
 
 Before detaching a port, the port should be closed.
-Also to remove a pci device completely from the system, first detach the port from testpmd.
-Then the device should be moved under kernel management.
-Finally the device can be removed using kernel pci hotplug functionality.
-On the other hand, to remove a port created by a virtual device, above steps are not needed.
 
 port detach (port_id)
 
 
 port detach (port_id)
 
-For example, to detach a port 0.
+For example, to detach a pci device port 0.
 
 .. code-block:: console
 
 
 .. code-block:: console
 
+    testpmd> port close 0
+    Closing ports...
+    Done
     testpmd> port detach 0
     Detaching a port...
     testpmd> port detach 0
     Detaching a port...
-    ... snip ...
+    EAL: PCI device 0000:0a:00.0 on NUMA socket -1
+    EAL:   remove driver: 8086:10fb rte_ixgbe_pmd
+    EAL:   PCI memory unmapped at 0x7f83bfa00000
+    EAL:   PCI memory unmapped at 0x7f83bfa80000
     Done
     Done
+    testpmd>
+
+For example, to detach a virtual device port 0.
+
+.. code-block:: console
+
+    testpmd> port close 0
+    Closing ports...
+    Done
+    testpmd> port detach 0
+    Detaching a port...
+    PMD: Closing pcap ethdev on numa socket 0
+    Port 'eth_pcap0' is detached. Now total ports is 0
+    Done
+    testpmd>
+
+To remove a pci device completely from the system, first detach the port from testpmd.
+Then the device should be moved under kernel management.
+Finally the device can be removed using kernel pci hotplug functionality.
+
+For example, to move a pci device under kernel management:
+
+.. code-block:: console
+
+    ./tools/dpdk_nic_bind.py -b ixgbe 0000:0a:00.0
+    ./tools/dpdk_nic_bind.py --status
+
+    Network devices using DPDK-compatible driver
+    ============================================
+    <none>
+
+    Network devices using kernel driver
+    ===================================
+    0000:0a:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=eth2 drv=ixgbe unused=igb_uio
+
+To remove a port created by a virtual device, above steps are not needed.
 
 port start
 ~~~~~~~~~~
 
 port start
 ~~~~~~~~~~
@@ -1551,6 +1634,9 @@ flow_director_filter (port_id) (add|del|update) flow (ipv4-sctp|ipv6-sctp)
 src (src_ip_address) (src_port) dst (dst_ip_address) (dst_port) tag (verification_tag)
 vlan (vlan_value) flexbytes (flexbytes_value) (drop|fwd) queue (queue_id) fd_id (fd_id_value)
 
 src (src_ip_address) (src_port) dst (dst_ip_address) (dst_port) tag (verification_tag)
 vlan (vlan_value) flexbytes (flexbytes_value) (drop|fwd) queue (queue_id) fd_id (fd_id_value)
 
+flow_director_filter (port_id) (add|del|update) flow l2_payload
+ether (ethertype) flexbytes (flexbytes_value) (drop|fwd) queue (queue_id) fd_id (fd_id_value)
+
 For example, to add an ipv4-udp flow type filter:
 
 .. code-block:: console
 For example, to add an ipv4-udp flow type filter:
 
 .. code-block:: console
@@ -1596,7 +1682,7 @@ flow_director_flex_mask
 set masks of flow director's flexible payload based on certain flow type:
 
 flow_director_flex_mask (port_id) flow (none|ipv4-other|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|
 set masks of flow director's flexible payload based on certain flow type:
 
 flow_director_flex_mask (port_id) flow (none|ipv4-other|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|
-ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|all) (mask)
+ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|l2_payload|all) (mask)
 
 Example, to set flow director's flex mask for all flow type on port 0:
 
 
 Example, to set flow director's flex mask for all flow type on port 0: