You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* xref:../../networking/hardware_networks/about-sriov.adoc#about-sriov[About Single Root I/O Virtualization (SR-IOV) hardware networks]
22
22
* xref:../../virt/virtual_machines/vm_networking/virt-attaching-vm-to-sriov-network.adoc#virt-attaching-vm-to-sriov-network[Connecting a virtual machine to an SR-IOV network]
* xref:../../installing/installing_with_agent_based_installer/preparing-to-install-with-agent-based-installer.adoc#agent-install-sample-config-bond-sriov_preparing-to-install-with-agent-based-installer[Example: Bonds and SR-IOV dual-nic node network configuration]
30
+
31
+
* xref:../../installing/installing_bare_metal_ipi/ipi-install-installation-workflow.adoc#configuring-host-dual-network-interfaces-in-the-install-config-yaml-file_ipi-install-installation-workflow[Optional: Configuring host network interfaces for dual port NIC]
32
+
33
+
* xref:../../installing/installing_bare_metal/installing-bare-metal.adoc#bonding-multiple-sriov-network-interfaces-to-dual-port_installing-bare-metal[Bonding multiple SR-IOV network interfaces to a dual port NIC interface]
== Preparing to install a cluster that uses OVS-DPDK
24
24
25
-
You must configure {rh-openstack} before you install a cluster that uses SR-IOV on it.
25
+
You must configure {rh-openstack} before you install a cluster that uses SR-IOV on it.
26
26
27
27
* Complete link:https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.2/html/network_functions_virtualization_planning_and_configuration_guide/part-dpdk-configure#p-ovs-dpdk-flavor-deploy-instance[Creating a flavor and deploying an instance for OVS-DPDK] before you install a cluster on {rh-openstack}.
The following `agent-config.yaml` file is an example of a manifest for dual port NIC with a bond and SR-IOV interfaces:
13
+
14
+
[source,yaml]
15
+
----
16
+
apiVersion: v1alpha1
17
+
kind: AgentConfig
18
+
rendezvousIP: 10.10.10.14
19
+
hosts:
20
+
- hostname: worker-1
21
+
interfaces:
22
+
- name: eno1
23
+
macAddress: 0c:42:a1:55:f3:06
24
+
- name: eno2
25
+
macAddress: 0c:42:a1:55:f3:07
26
+
networkConfig: <1>
27
+
interfaces: <2>
28
+
- name: eno1 <3>
29
+
type: ethernet <4>
30
+
state: up
31
+
mac-address: 0c:42:a1:55:f3:06
32
+
ipv4:
33
+
enabled: true
34
+
dhcp: false <5>
35
+
ethernet:
36
+
sr-iov:
37
+
total-vfs: 2 <6>
38
+
ipv6:
39
+
enabled: false
40
+
- name: sriov:eno1:0
41
+
type: ethernet
42
+
state: up <7>
43
+
ipv4:
44
+
enabled: false <8>
45
+
ipv6:
46
+
enabled: false
47
+
dhcp: false
48
+
- name: sriov:eno1:1
49
+
type: ethernet
50
+
state: down
51
+
- name: eno2
52
+
type: ethernet
53
+
state: up
54
+
mac-address: 0c:42:a1:55:f3:07
55
+
ipv4:
56
+
enabled: true
57
+
ethernet:
58
+
sr-iov:
59
+
total-vfs: 2
60
+
ipv6:
61
+
enabled: false
62
+
- name: sriov:eno2:0
63
+
type: ethernet
64
+
state: up
65
+
ipv4:
66
+
enabled: false
67
+
ipv6:
68
+
enabled: false
69
+
- name: sriov:eno2:1
70
+
type: ethernet
71
+
state: down
72
+
- name: bond0
73
+
type: bond
74
+
state: up
75
+
min-tx-rate: 100 <9>
76
+
max-tx-rate: 200 <10>
77
+
link-aggregation:
78
+
mode: active-backup <11>
79
+
options:
80
+
primary: sriov:eno1:0 <12>
81
+
port:
82
+
- sriov:eno1:0
83
+
- sriov:eno2:0
84
+
ipv4:
85
+
address:
86
+
- ip: 10.19.16.57 <13>
87
+
prefix-length: 23
88
+
dhcp: false
89
+
enabled: true
90
+
ipv6:
91
+
enabled: false
92
+
dns-resolver:
93
+
config:
94
+
server:
95
+
- 10.11.5.160
96
+
- 10.2.70.215
97
+
routes:
98
+
config:
99
+
- destination: 0.0.0.0/0
100
+
next-hop-address: 10.19.17.254
101
+
next-hop-interface: bond0 <14>
102
+
table-id: 254
103
+
----
104
+
<1> The `networkConfig` field contains information about the network configuration of the host, with subfields including `interfaces`,`dns-resolver`, and `routes`.
105
+
<2> The `interfaces` field is an array of network interfaces defined for the host.
106
+
<3> The name of the interface.
107
+
<4> The type of interface. This example creates an ethernet interface.
108
+
<5> Set this to `false` to disable DHCP for the physical function (PF) if it is not strictly required.
109
+
<6> Set this to the number of SR-IOV virtual functions (VFs) to instantiate.
110
+
<7> Set this to `up`.
111
+
<8> Set this to `false` to disable IPv4 addressing for the VF attached to the bond.
112
+
<9> Sets a minimum transmission rate, in Mbps, for the VF. This sample value sets a rate of 100 Mbps.
113
+
* This value must be less than or equal to the maximum transmission rate.
114
+
* Intel NICs do not support the `min-tx-rate` parameter. For more information, see link:https://bugzilla.redhat.com/show_bug.cgi?id=1772847[*BZ#1772847*].
115
+
<10> Sets a maximum transmission rate, in Mbps, for the VF. This sample value sets a rate of 200 Mbps.
116
+
<11> Sets the desired bond mode.
117
+
<12> Sets the preferred port of the bonding interface. The primary device is the first of the bonding interfaces to be used and is not abandoned unless it fails. This setting is particularly useful when one NIC in the bonding interface is faster and, therefore, able to handle a bigger load. This setting is only valid when the bonding interface is in `active-backup` mode (mode 1) and `balance-tlb` (mode 5).
118
+
<13> Sets a static IP address for the bond interface. This is the node IP address.
119
+
<14> Sets `bond0` as the gateway for the default route.
Optional: You can bond multiple SR-IOV network interfaces to a dual port NIC interface by using the `bond=` option.
280
+
281
+
On each node, you must perform the following tasks:
282
+
283
+
. Create the SR-IOV virtual functions (VFs) following the guidance in link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_virtualization/managing-virtual-devices_configuring-and-managing-virtualization#managing-sr-iov-devices_managing-virtual-devices[Managing SR-IOV devices]. Follow the procedure in the "Attaching SR-IOV networking devices to virtual machines" section.
284
+
285
+
. Create the bond, attach the desired VFs to the bond and set the bond link state up following the guidance in link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/configuring-network-bonding_configuring-and-managing-networking[Configuring network bonding]. Follow any of the described procedures to create the bond.
286
+
287
+
The following examples illustrate the syntax you must use:
288
+
289
+
* The syntax for configuring a bonded interface is `bond=<name>[:<network_interfaces>][:options]`.
290
+
+
291
+
`<name>` is the bonding device name (`bond0`), `<network_interfaces>` represents the virtual functions (VFs) by their known name in the kernel and shown in the output of the `ip link` command(`eno1f0`, `eno2f0`), and _options_ is a comma-separated list of bonding options. Enter `modinfo bonding` to see available options.
292
+
293
+
* When you create a bonded interface using `bond=`, you must specify how the IP address is assigned and other information for the bonded interface.
294
+
295
+
** To configure the bonded interface to use DHCP, set the bond's IP address to `dhcp`. For example:
296
+
+
297
+
[source,terminal]
298
+
----
299
+
bond=bond0:eno1f0,eno2f0:mode=active-backup
300
+
ip=bond0:dhcp
301
+
----
302
+
303
+
** To configure the bonded interface to use a static IP address, enter the specific IP address you want and related information. For example:
0 commit comments