3b096236bf77f3def1f3300f2ebb98e16c7f533f
[dpdk.git] / doc / guides / nics / igc.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2020 Intel Corporation.
3
4 IGC Poll Mode Driver
5 ======================
6
7 The IGC PMD (librte_pmd_igc) provides poll mode driver support for Foxville
8 I225 Series Network Adapters.
9
10 - For information about I225, please refer to:
11   `https://ark.intel.com/content/www/us/en/ark/products/series/184686/
12   intel-ethernet-controller-i225-series.html`
13
14
15 Driver compilation and testing
16 ------------------------------
17
18 Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
19 for details.
20
21
22 Supported Chipsets and NICs
23 ---------------------------
24
25 Foxville LM (I225 LM): Client 2.5G LAN vPro Corporate
26 Foxville V (I225 V): Client 2.5G LAN Consumer
27 Foxville I (I225 I): Client 2.5G Industrial Temp
28 Foxville V (I225 K): Client 2.5G LAN Consumer
29
30
31 Sample Application Notes
32 ------------------------
33
34 Vlan filter
35 ~~~~~~~~~~~
36
37 VLAN stripping off only works with inner vlan.
38 Only the outer VLAN TPID can be set to a vlan other than 0x8100.
39
40 If extend VLAN is enabled:
41
42 - The VLAN header in a packet that carries a single VLAN header is treated as the external VLAN.
43
44 - Foxville expects that any transmitted packet to have at least the external VLAN added by the
45   software. For those packets where an external VLAN is not present, any offload that relates to
46   inner fields to the EtherType might not be provided.
47
48 - If VLAN TX-OFFLOAD is enabled and the packet does not contain an external VLAN, the packet is
49   dropped, and if configured, the queue from which the packet was sent is disabled.
50
51 To start ``testpmd``, add vlan 10 to port, set vlan stripping off on, set extend on, set TPID of
52 outer VLAN to 0x9100:
53
54 .. code-block:: console
55
56    ./app/dpdk-testpmd -l 4-8 -- -i
57    ...
58
59    testpmd> vlan set filter on 0
60    testpmd> rx_vlan add 10 0
61    testpmd> vlan set strip off 0
62    testpmd> vlan set extend on 0
63    testpmd> vlan set outer tpid 0x9100 0
64
65
66 Flow Director
67 ~~~~~~~~~~~~~
68
69 The Flow Director works in receive mode to identify specific flows or sets of flows and route
70 them to specific queues.
71
72 The Flow Director filters includes the following types:
73
74 - ether-type filter
75 - 2-tuple filter(destination L4 protocol and destination L4 port)
76 - TCP SYN filter
77 - RSS filter
78
79 Start ``testpmd``:
80
81 .. code-block:: console
82
83    ./dpdk-testpmd -l 4-8 -- i --rxq=4 --txq=4 --pkt-filter-mode=perfect --disable-rss
84
85 Add a rule to direct packet whose ``ether-type=0x801`` to queue 1:
86
87 .. code-block:: console
88
89    testpmd> flow create 0 ingress pattern eth type is 0x801 / end actions queue index 1 / end
90
91 Add a rule to direct packet whose ``ip-protocol=0x6(TCP), tcp_port=0x80`` to queue 1:
92
93 .. code-block:: console
94
95    testpmd> flow create 0 ingress pattern eth / ipv4 proto is 6 / tcp dst is 0x80 / end actions queue index 1 / end
96
97 Add a rule to direct packet whose ``ip-protocol=0x6(TCP), SYN flag is set`` to queue 1:
98
99 .. code-block:: console
100
101    testpmd> flow validate 0 ingress pattern tcp flags spec 0x02 flags mask 0x02 / end actions queue index 1 / end
102
103 Add a rule to enable ipv4-udp RSS:
104
105 .. code-block:: console
106
107    testpmd> flow create 0 ingress pattern end actions rss types ipv4-udp end / end