xref: /dpdk/doc/guides/nics/igc.rst (revision b583b9a1bb49e86aa0937d55415713282000c536)
166fde1b9SAlvin Zhang..  SPDX-License-Identifier: BSD-3-Clause
266fde1b9SAlvin Zhang    Copyright(c) 2020 Intel Corporation.
366fde1b9SAlvin Zhang
466fde1b9SAlvin ZhangIGC Poll Mode Driver
566fde1b9SAlvin Zhang======================
666fde1b9SAlvin Zhang
78809f78cSBruce RichardsonThe IGC PMD (**librte_net_igc**) provides poll mode driver support for Foxville
8d9934a8aSQiming YangI225 and I226 Series Network Adapters.
966fde1b9SAlvin Zhang
1035ce677cSCiara Power- For information about I225, please refer to: `Intel® Ethernet Controller I225 Series
1135ce677cSCiara Power  <https://ark.intel.com/content/www/us/en/ark/products/series/184686/intel-ethernet-controller-i225-series.html>`_.
12d9934a8aSQiming Yang- For information about I226, please refer to: `Intel® Ethernet Controller I226 Series
13d9934a8aSQiming Yang  <https://ark.intel.com/content/www/us/en/ark/products/series/210588/intel-ethernet-controller-i226-series.html>`_.
1466fde1b9SAlvin Zhang
15*b583b9a1SFerruh YigitSupported Chipsets and NICs
16*b583b9a1SFerruh Yigit---------------------------
17*b583b9a1SFerruh Yigit
18*b583b9a1SFerruh Yigit- Foxville LM (I225 LM, I226 LM): Client 2.5G LAN vPro Corporate
19*b583b9a1SFerruh Yigit- Foxville V (I225 V, I226 V): Client 2.5G LAN Consumer
20*b583b9a1SFerruh Yigit- Foxville I (I225 I, I226 IM): Client 2.5G Industrial Temp
21*b583b9a1SFerruh Yigit- Foxville V (I225 K, I226 K): Client 2.5G LAN Consumer
22*b583b9a1SFerruh Yigit
2366fde1b9SAlvin ZhangDriver compilation and testing
2466fde1b9SAlvin Zhang------------------------------
2566fde1b9SAlvin Zhang
2666fde1b9SAlvin ZhangRefer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
2766fde1b9SAlvin Zhangfor details.
2866fde1b9SAlvin Zhang
2966fde1b9SAlvin Zhang
305f266d0dSAlvin ZhangSample Application Notes
315f266d0dSAlvin Zhang------------------------
325f266d0dSAlvin Zhang
335f266d0dSAlvin ZhangVlan filter
345f266d0dSAlvin Zhang~~~~~~~~~~~
355f266d0dSAlvin Zhang
365f266d0dSAlvin ZhangVLAN stripping off only works with inner vlan.
375f266d0dSAlvin ZhangOnly the outer VLAN TPID can be set to a vlan other than 0x8100.
385f266d0dSAlvin Zhang
395f266d0dSAlvin ZhangIf extend VLAN is enabled:
405f266d0dSAlvin Zhang
415f266d0dSAlvin Zhang- The VLAN header in a packet that carries a single VLAN header is treated as the external VLAN.
425f266d0dSAlvin Zhang
435f266d0dSAlvin Zhang- Foxville expects that any transmitted packet to have at least the external VLAN added by the
445f266d0dSAlvin Zhang  software. For those packets where an external VLAN is not present, any offload that relates to
455f266d0dSAlvin Zhang  inner fields to the EtherType might not be provided.
465f266d0dSAlvin Zhang
475f266d0dSAlvin Zhang- If VLAN TX-OFFLOAD is enabled and the packet does not contain an external VLAN, the packet is
485f266d0dSAlvin Zhang  dropped, and if configured, the queue from which the packet was sent is disabled.
495f266d0dSAlvin Zhang
505f266d0dSAlvin ZhangTo start ``testpmd``, add vlan 10 to port, set vlan stripping off on, set extend on, set TPID of
515f266d0dSAlvin Zhangouter VLAN to 0x9100:
525f266d0dSAlvin Zhang
535f266d0dSAlvin Zhang.. code-block:: console
545f266d0dSAlvin Zhang
5568d99d00SCiara Power   ./app/dpdk-testpmd -l 4-8 -- -i
565f266d0dSAlvin Zhang   ...
575f266d0dSAlvin Zhang
585f266d0dSAlvin Zhang   testpmd> vlan set filter on 0
595f266d0dSAlvin Zhang   testpmd> rx_vlan add 10 0
605f266d0dSAlvin Zhang   testpmd> vlan set strip off 0
615f266d0dSAlvin Zhang   testpmd> vlan set extend on 0
625f266d0dSAlvin Zhang   testpmd> vlan set outer tpid 0x9100 0
63746664d5SAlvin Zhang
64746664d5SAlvin Zhang
65746664d5SAlvin ZhangFlow Director
66746664d5SAlvin Zhang~~~~~~~~~~~~~
67746664d5SAlvin Zhang
68746664d5SAlvin ZhangThe Flow Director works in receive mode to identify specific flows or sets of flows and route
69746664d5SAlvin Zhangthem to specific queues.
70746664d5SAlvin Zhang
71746664d5SAlvin ZhangThe Flow Director filters includes the following types:
72746664d5SAlvin Zhang
73746664d5SAlvin Zhang- ether-type filter
74746664d5SAlvin Zhang- 2-tuple filter(destination L4 protocol and destination L4 port)
75746664d5SAlvin Zhang- TCP SYN filter
76746664d5SAlvin Zhang- RSS filter
77746664d5SAlvin Zhang
78746664d5SAlvin ZhangStart ``testpmd``:
79746664d5SAlvin Zhang
80746664d5SAlvin Zhang.. code-block:: console
81746664d5SAlvin Zhang
8268d99d00SCiara Power   ./dpdk-testpmd -l 4-8 -- i --rxq=4 --txq=4 --pkt-filter-mode=perfect --disable-rss
83746664d5SAlvin Zhang
84746664d5SAlvin ZhangAdd a rule to direct packet whose ``ether-type=0x801`` to queue 1:
85746664d5SAlvin Zhang
86746664d5SAlvin Zhang.. code-block:: console
87746664d5SAlvin Zhang
88746664d5SAlvin Zhang   testpmd> flow create 0 ingress pattern eth type is 0x801 / end actions queue index 1 / end
89746664d5SAlvin Zhang
90746664d5SAlvin ZhangAdd a rule to direct packet whose ``ip-protocol=0x6(TCP), tcp_port=0x80`` to queue 1:
91746664d5SAlvin Zhang
92746664d5SAlvin Zhang.. code-block:: console
93746664d5SAlvin Zhang
94746664d5SAlvin Zhang   testpmd> flow create 0 ingress pattern eth / ipv4 proto is 6 / tcp dst is 0x80 / end actions queue index 1 / end
95746664d5SAlvin Zhang
96746664d5SAlvin ZhangAdd a rule to direct packet whose ``ip-protocol=0x6(TCP), SYN flag is set`` to queue 1:
97746664d5SAlvin Zhang
98746664d5SAlvin Zhang.. code-block:: console
99746664d5SAlvin Zhang
100746664d5SAlvin Zhang   testpmd> flow validate 0 ingress pattern tcp flags spec 0x02 flags mask 0x02 / end actions queue index 1 / end
101746664d5SAlvin Zhang
102746664d5SAlvin ZhangAdd a rule to enable ipv4-udp RSS:
103746664d5SAlvin Zhang
104746664d5SAlvin Zhang.. code-block:: console
105746664d5SAlvin Zhang
106746664d5SAlvin Zhang   testpmd> flow create 0 ingress pattern end actions rss types ipv4-udp end / end
107