key_name = aws_key_pair.CSIT.key_name
associate_public_ip_address = true
subnet_id = aws_subnet.mgmt.id
+ root_block_device {
+ volume_size = 50
+ }
private_ip = var.tg_mgmt_ip
vpc_security_group_ids = [aws_security_group.CSIT.id]
depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
key_name = aws_key_pair.CSIT.key_name
associate_public_ip_address = true
subnet_id = aws_subnet.mgmt.id
+ root_block_device {
+ volume_size = 50
+ }
private_ip = var.dut1_mgmt_ip
vpc_security_group_ids = [aws_security_group.CSIT.id]
depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
key_name = aws_key_pair.CSIT.key_name
associate_public_ip_address = true
subnet_id = aws_subnet.mgmt.id
+ root_block_device {
+ volume_size = 50
+ }
private_ip = var.dut2_mgmt_ip
vpc_security_group_ids = [aws_security_group.CSIT.id]
depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
# Variables
+variable "vpc_addr_space_a" {
+ type = string
+ default = "172.16.0.0/16"
+}
+
variable "vpc_cidr_a" {
type = string
default = "172.16.0.0/24"
variable "vpc_cidr_b" {
type = string
- default = "192.168.10.0/24"
+ default = "172.16.10.0/24"
}
variable "vpc_cidr_c" {
type = string
- default = "200.0.0.0/24"
+ default = "172.16.200.0/24"
}
variable "vpc_cidr_d" {
type = string
- default = "192.168.20.0/24"
+ default = "172.16.20.0/24"
}
variable "trex_dummy_cidr_port_0" {
type = string
- default = "10.0.0.0/24"
+ default = "172.16.11.0/24"
}
variable "trex_dummy_cidr_port_1" {
type = string
- default = "20.0.0.0/24"
+ default = "172.16.21.0/24"
}
# Create resource group and resources
resource "azurerm_resource_group" "CSIT" {
name = "CSIT"
- location = "East US"
+ #location = "East US"
+ location = "UK South"
}
resource "azurerm_virtual_network" "CSIT" {
name = "CSIT-network"
resource_group_name = azurerm_resource_group.CSIT.name
location = azurerm_resource_group.CSIT.location
- address_space = [ var.vpc_cidr_a,
- var.vpc_cidr_b,
- var.vpc_cidr_c,
- var.vpc_cidr_d ]
+ address_space = [ var.vpc_addr_space_a ]
depends_on = [ azurerm_resource_group.CSIT ]
}
disable_bgp_route_propagation = false
route {
name = "route-10"
- address_prefix = "10.0.0.0/24"
+ address_prefix = var.trex_dummy_cidr_port_0
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "192.168.10.254"
+ next_hop_in_ip_address = data.azurerm_network_interface.tg_if1.private_ip_address
}
route {
name = "route-20"
- address_prefix = "20.0.0.0/24"
+ address_prefix = var.trex_dummy_cidr_port_1
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "192.168.10.11"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut1_if1.private_ip_address
}
route {
name = "tg2"
- address_prefix = "192.168.20.0/24"
+ address_prefix = var.vpc_cidr_d
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "192.168.10.11"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut1_if1.private_ip_address
}
}
disable_bgp_route_propagation = false
route {
name = "route-10"
- address_prefix = "10.0.0.0/24"
+ address_prefix = var.trex_dummy_cidr_port_0
+ next_hop_type = "VirtualAppliance"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut1_if2.private_ip_address
+ }
+ route {
+ name = "route-100"
+ address_prefix = "100.0.0.0/8"
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "200.0.0.101"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut1_if2.private_ip_address
}
route {
name = "route-20"
- address_prefix = "20.0.0.0/24"
+ address_prefix = var.trex_dummy_cidr_port_1
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "200.0.0.102"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut2_if1.private_ip_address
}
route {
name = "tg1"
- address_prefix = "192.168.10.0/24"
+ address_prefix = var.vpc_cidr_b
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "200.0.0.101"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut1_if2.private_ip_address
}
route {
name = "tg2"
- address_prefix = "192.168.20.0/24"
+ address_prefix = var.vpc_cidr_d
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "200.0.0.102"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut2_if1.private_ip_address
}
}
disable_bgp_route_propagation = false
route {
name = "route-10"
- address_prefix = "10.0.0.0/24"
+ address_prefix = var.trex_dummy_cidr_port_0
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "192.168.20.11"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut2_if2.private_ip_address
}
route {
name = "route-20"
- address_prefix = "20.0.0.0/24"
+ address_prefix = var.trex_dummy_cidr_port_1
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "192.168.20.254"
+ next_hop_in_ip_address = data.azurerm_network_interface.tg_if2.private_ip_address
}
route {
name = "tg1"
- address_prefix = "192.168.10.0/24"
+ address_prefix = var.vpc_cidr_b
next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = "192.168.20.11"
+ next_hop_in_ip_address = data.azurerm_network_interface.dut2_if2.private_ip_address
}
}
name = "dut1_if2"
subnet_id = azurerm_subnet.c.id
private_ip_address_allocation = "Static"
- private_ip_address = "200.0.0.101"
+ private_ip_address = "172.16.200.101"
}
}
name = "dut2_if1"
subnet_id = azurerm_subnet.c.id
private_ip_address_allocation = "Static"
- private_ip_address = "200.0.0.102"
+ private_ip_address = "172.16.200.102"
}
}
name = "dut1_if1"
subnet_id = azurerm_subnet.b.id
private_ip_address_allocation = "Static"
- private_ip_address = "192.168.10.11"
+ private_ip_address = "172.16.10.11"
}
}
name = "dut2_if2"
subnet_id = azurerm_subnet.d.id
private_ip_address_allocation = "Static"
- private_ip_address = "192.168.20.11"
+ private_ip_address = "172.16.20.11"
}
}
name = "tg1"
subnet_id = azurerm_subnet.b.id
private_ip_address_allocation = "Static"
- private_ip_address = "192.168.10.254"
+ private_ip_address = "172.16.10.250"
}
}
name = "tg2"
subnet_id = azurerm_subnet.d.id
private_ip_address_allocation = "Static"
- private_ip_address = "192.168.20.254"
+ private_ip_address = "172.16.20.250"
}
}
reboot_timeout: 3600
tags:
- reboot-server
+
+- name: AWS - Reload systemd-modules
+ systemd:
+ name: "systemd-modules-load"
+ state: "restarted"
+ tags:
+ - reload-systemd-modules
--- /dev/null
+[Match]
+OriginalName=dtap*
+[Link]
+NamePolicy=kernel
tags:
- reboot-server
-- name: Reload systemd-modules
+- name: Azure - Reload systemd-modules
systemd:
name: "systemd-modules-load"
state: "restarted"
- "ib_uverbs"
- "mlx4_ib"
- "mlx5_ib"
- notify: "Reload systemd-modules"
+ notify: "Azure - Reload systemd-modules"
tags:
- load-kernel-modules
reload: "yes"
tags:
- set-sysctl
+
+- name: Azure - prevent interface renaming
+ copy:
+ src: "files/10-dtap.link"
+ dest: "/etc/systemd/network/"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ notify:
+ - "Reboot server"
+ tags:
+ - prevent-interface-renaming
- []
# Kernel version to check.
-kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_machine] | join(' ') }}"
+kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_machine] }}"
kernel_version_by_distro_by_arch:
ubuntu:
x86_64:
- "4.15.0-72-generic"
+ - "5.3.0-1020-azure"
+ - "5.3.0-1017-aws"
aarch64:
- "4.15.0-54-generic"
register: current_kernel_version
changed_when: false
failed_when: |
- kernel_version not in current_kernel_version.stdout
+ current_kernel_version.stdout not in kernel_version
tags:
- check-kernel-version
--- /dev/null
+diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
+index d7d3bc73c..c21c38485 100644
+--- a/drivers/net/mlx5/mlx5_ethdev.c
++++ b/drivers/net/mlx5/mlx5_ethdev.c
+@@ -1032,11 +1032,14 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev,
+ ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX);
+ dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);
++#if 0
++ /* FIXME: this does not work on Azure w/ CX4-LX */
+ if (((dev_link.link_speed && !dev_link.link_status) ||
+ (!dev_link.link_speed && dev_link.link_status))) {
+ rte_errno = EAGAIN;
+ return -rte_errno;
+ }
++#endif
+ *link = dev_link;
+ return 0;
+ }
#ifdef HAVE_TC_ACT_BPF
#include <linux/tc_act/tc_bpf.h>
#endif
+diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
+index 0f66b07a..8c37ea15 100644
+--- a/src/main_dpdk.cpp
++++ b/src/main_dpdk.cpp
+@@ -6969,6 +6969,7 @@ COLD_FUNC bool DpdkTRexPortAttr::update_link_status_nowait(){
+ bool changed = false;
+ rte_eth_link_get_nowait(m_repid, &new_link);
+
++ new_link.link_speed = ETH_SPEED_NUM_50G;
+ if (new_link.link_speed != m_link.link_speed ||
+ new_link.link_duplex != m_link.link_duplex ||
+ new_link.link_autoneg != m_link.link_autoneg ||
strip: 1
loop: "{{ trex_version }}"
when:
- - azure is defined
+ - azure is defined and "{{ item }}" == "2.73"
tags:
- install-trex
tags: docker
- role: cleanup
tags: cleanup
- - role: calibration
- tags: calibration
+# - role: calibration
+# tags: calibration
tags: dpdk
- role: cleanup
tags: cleanup
- - role: calibration
- tags: calibration
+# - role: calibration
+# tags: calibration
mac_address: "{{ tg_if1_mac | lower | replace('-',':') }}"
pci_address: "0002:00:02.0"
link: link1
- model: azure-mlx-40g
+ model: Azure-MLX-40G
port2:
# tg_instance/p2 - 40GE port2 on Mellanox NIC.
mac_address: "{{ tg_if2_mac | lower | replace('-',':') }}"
pci_address: "0003:00:02.0"
link: link2
- model: azure-mlx-40g
+ model: Azure-MLX-40G
DUT1:
type: DUT
host: "{{ dut1_public_ip }}"
mac_address: "{{ dut1_if1_mac | lower | replace('-',':') }}"
pci_address: "0002:00:02.0"
link: link1
- model: azure-mlx-40g
+ model: Azure-MLX-40G
port2:
# dut2_instance/p1 - 40GE port2 on Mellanox NIC.
mac_address: "{{ dut1_if2_mac | lower | replace('-',':') }}"
pci_address: "0003:00:02.0"
link: link21
- model: azure-mlx-40g
+ model: Azure-MLX-40G
DUT2:
type: DUT
host: "{{ dut2_public_ip }}"
mac_address: "{{ dut2_if1_mac | lower | replace('-',':') }}"
pci_address: "0002:00:02.0"
link: link21
- model: azure-mlx-40g
+ model: Azure-MLX-40G
port2:
# dut2_instance/p1 - 40GE port2 on Mellanox NIC.
mac_address: "{{ dut2_if2_mac | lower | replace('-',':') }}"
pci_address: "0003:00:02.0"
link: link2
- model: azure-mlx-40g
+ model: Azure-MLX-40G
tags: docker
- role: cleanup
tags: cleanup
- - role: calibration
- tags: calibration
+# - role: calibration
+# tags: calibration
tags: docker
- role: cleanup
tags: cleanup
- - role: calibration
- tags: calibration
+# - role: calibration
+# tags: calibration