xref: /freebsd/sys/contrib/dev/ice/README (revision 59c8e88e72633afbc47a4ace0d2170d00d51f7dc)
1OS Default Dynamic Device Personalization (DDP) Package
2======================================================================
3May 12, 2022
4
5
6Contents
7========
8- Overview
9- Supported Operating Systems
10- Safe Mode
11- Notes
12- Installation
13- Troubleshooting
14- Legal
15
16
17Overview
18========
19Devices based on the Intel(R) Ethernet 800 Series require a Dynamic Device
20Personalization (DDP) package file to enable advanced features (such as dynamic
21tunneling, Intel(R) Ethernet Flow Director, RSS, and ADQ).
22
23DDP allows you to change the packet processing pipeline of a device by applying
24a profile package to the device at runtime. Profiles can be used to, for
25example, add support for new protocols, change existing protocols, or change
26default settings. DDP profiles can also be rolled back without rebooting the
27system.
28
29The DDP package loads during device initialization or driver runtime, depending
30on the operating system. The driver checks to see if the DDP package is present
31and compatible. If this file exists, the driver will load it into the device.
32If the DDP package file is missing or incompatible with the driver, the driver
33will go into Safe Mode where it will use the configuration contained in the
34device's NVM. Refer to the Intel(R) Ethernet Adapters and Devices User Guide
35for more information on Safe Mode.
36
37A general-purpose, default DDP package is automatically installed with all
38supported Intel Ethernet 800 Series drivers on supported operating systems.
39Additional DDP packages are available to address needs for specific market
40segments or targeted solutions.
41
42The default DDP package supports the following:
43- MAC
44- EtherType
45- VLAN
46- IPv4
47- IPv6
48- TCP
49- ARP
50- UDP
51- SCTP
52- ICMP
53- ICMPv6
54- CTRL
55- LLDP
56- VXLAN-GPE
57- VXLAN (non-GPE)
58- Geneve
59- GRE
60- NVGRE
61- RoCEv2
62- MPLS (up to 5 consecutive MPLS labels in the outermost Layer 2 header group)
63
64
65Supported Operating Systems
66===========================
67This DDP package is supported on the following operating systems:
68- Microsoft* Windows Server*
69- Linux*
70- FreeBSD*
71- VMware* ESXi*
72
73Refer to the Intel(R) Ethernet Adapters and Devices User Guide for currently
74supported versions of these operating systems.
75
76
77Safe Mode
78=========
79Safe Mode disables advanced and performance features, and supports only basic
80traffic and minimal functionality, such as updating the NVM or downloading a
81new driver or DDP package.
82
83Refer to the Intel(R) Ethernet Adapters and Devices User Guide for more details
84on DDP and Safe Mode.
85
86
87Notes
88=====
89- In Linux, FreeBSD, and Windows, you cannot update the DDP package if any PF
90drivers are already loaded. To overwrite a package, unload all PFs and then
91reload the driver with the new package.
92
93- In ESXi, use esxcli to load and unload DDP packages for specific market
94segments during driver runtime.
95
96- In FreeBSD and Windows, you can only use one DDP package per driver, even if
97you have more than one device installed that uses the driver.
98
99- In Linux, FreeBSD, and Windows, only the first loaded PF per device can
100download a package for that device. In ESXi, you can load different DDP
101packages for different PFs associated with a device.
102
103- If you are using DPDK, see the DPDK documentation at https://www.dpdk.org/
104for installation instructions and more information.
105
106
107Installation
108============
109
110Microsoft Windows
111-----------------
112TO INSTALL THE OS DEFAULT DDP PACKAGE:
113
114The default DDP package is installed as part of the driver binary. You don't
115need to take additional steps to install the DDP package file.
116
117
118FreeBSD
119-------
120TO INSTALL THE OS DEFAULT DDP PACKAGE:
121
122The FreeBSD driver automatically installs the default DDP package file during
123driver installation. See the base driver README for general installation and
124building instructions.
125
126The DDP package loads during device initialization. The driver looks for the
127ice_ddp module and checks that it contains a valid DDP package file.
128
129NOTE: It's important to do 'make install' during initial ice driver
130installation so that the driver loads the DDP package automatically.
131
132
133Linux
134-----
135TO INSTALL THE OS DEFAULT DDP PACKAGE:
136
137The Linux driver automatically installs the default DDP package file during
138driver installation. Read the base driver README for general installation and
139building instructions.
140
141The DDP package loads during device initialization. The driver looks for
142intel/ice/ddp/ice.pkg in your firmware root (typically /lib/firmware/ or
143/lib/firmware/updates/) and checks that it contains a valid DDP package file.
144The ice.pkg file is a symbolic link to the default DDP package file installed
145by the linux-firmware software package or the out-of-tree driver installation.
146
147
148TO INSTALL A DDP PACKAGE FOR SPECIFIC MARKET SEGMENTS:
149
150You can install specific DDP package files for different physical devices in
151the same system. To install a specific DDP package:
152
1531. Download the DDP package file (ice-x.x.x.x.zip) you want for your device. In
154addition to licensing information and this README, this zip file contains the
155following files:
156    ice-x.x.x.x.pkg
157    ice.pkg
158
159NOTE: The ice.pkg file is a Linux symbolic link file pointing to
160ice-x.x.x.x.pkg (in the same path).
161
1622. Rename the ice-x.x.x.x.pkg file as ice-xxxxxxxxxxxxxxxx.pkg, where
163'xxxxxxxxxxxxxxxx' is the unique 64-bit PCI Express device serial number (in
164hex) of the device you want the package downloaded on. The filename must
165include the complete serial number (including leading zeros) and be all
166lowercase. For example, if the 64-bit serial number is b887a3ffffca0568, then
167the file name would be ice-b887a3ffffca0568.pkg.
168
169To find the serial number from the PCI bus address, you can use the following
170command:
171
172# lspci -vv -s af:00.0 | grep -i Serial
173Capabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68
174
175You can use the following command to format the serial number without the
176dashes:
177
178# lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
179b887a3ffffca0568
180
1813. Copy the renamed DDP package file to /lib/firmware/updates/intel/ice/ddp/.
182If the directory does not yet exist, create it before copying the file.
183
1844. Unload all of the PFs on the device.
185
1865. Reload the driver with the new package.
187
188NOTE: The presence of a device-specific DDP package file overrides the loading
189of the default DDP package file.
190
191
192ESX
193---
194TO INSTALL THE OS DEFAULT DDP PACKAGE:
195
196The default DDP package is installed as part of the driver binary. You don't
197need to take additional steps to install the DDP package file.
198
199TO INSTALL A DDP PACKAGE FOR SPECIFIC MARKET SEGMENTS:
200
201You must first install the Intel(R) ESXCLI Plug-In for Managing Intel(R)
202Ethernet Network Adapters to be able to install and load market-specific DDP
203packages. Download it from:
204https://www.intel.com/content/www/us/en/download/19380/intel-esxcli-plug-in-for-
205managing-intel-ethernet-network-adapters.html
206
207NOTE: ESXi support for DDP packages for specific market segments requires the
208following:
209- OS: ESXi 6.7 or higher
210- Driver: icen 1.9.1.x or higher
211- Tool: intnet 1.8.3.x or higher
212
213To install and load this DDP package:
214
2151. Download and install the esxcli plug-in from the URL above.
216
2172. Download the DDP package.
218
2193. Copy the DDP package file to the following location: /store/intel/icen/ddp/.
220   If the directory does not yet exist, create it before copying the file.
221
2224. From the command prompt, run the following command to load the DDP package:
223
224   # esxcli intnet ddp load -n <vmnicX> -p <ddp_file_name> -f
225
226   Where:
227    <vmnicX> = the name of the NIC
228    <ddp_file_name> = the name of the DDP package to load
229    -f = forces the package to load
230
231    NOTE: This operation will cause the driver to reset.
232
2335. Wait for the load result status.
234
235
236To list all active DDP packages for all virtual NICs, run the following:
237
238# esxcli intnet ddp list
239
240To unload (roll back) a DDP package, run the following:
241
242# esxcli intnet ddp rollback -n <vmnicX> -f
243
244NOTE: This operation will cause the driver to reset.
245
246
247Troubleshooting
248===============
249
250Microsoft Windows
251-----------------
252If you encounter issues with the DDP package file, download the latest driver.
253
254FreeBSD
255-------
256If you encounter issues with the DDP package file, you may need to download an
257updated driver or ice_ddp module. See the log messages for more information.
258
259Linux
260-----
261If you encounter issues with the DDP package file, you may need to download an
262updated driver or DDP package file. Refer to the log messages for more
263information.
264
265ESX
266---
267If you encounter issues with the DDP package file, download the latest driver.
268
269
270Legal / Disclaimers
271===================
272Copyright (c) 2019 - 2022, Intel Corporation.
273
274Intel and the Intel logo are trademarks of Intel Corporation or its
275subsidiaries in the U.S. and/or other countries.
276
277*Other names and brands may be claimed as the property of others.
278
279This software and the related documents are Intel copyrighted materials, and
280your use of them is governed by the express license under which they were
281provided to you ("License"). Unless the License provides otherwise, you may not
282use, modify, copy, publish, distribute, disclose or transmit this software or
283the related documents without Intel's prior written permission.
284This software and the related documents are provided as is, with no express or
285implied warranties, other than those that are expressly stated in the License.
286