Fix midplane network in bookworm with kernel 6.1
Signed-off-by: Ze Gan <ganze718@gmail.com>
This commit is contained in:
parent
2c796732b0
commit
764d019fb7
@ -633,16 +633,20 @@ sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable config-chassisdb.service
|
|||||||
# Copy midplane network service file for smart switch
|
# Copy midplane network service file for smart switch
|
||||||
sudo cp $IMAGE_CONFIGS/midplane-network/bridge-midplane.netdev $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/bridge-midplane.netdev
|
sudo cp $IMAGE_CONFIGS/midplane-network/bridge-midplane.netdev $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/bridge-midplane.netdev
|
||||||
sudo cp $IMAGE_CONFIGS/midplane-network/bridge-midplane.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/bridge-midplane.network
|
sudo cp $IMAGE_CONFIGS/midplane-network/bridge-midplane.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/bridge-midplane.network
|
||||||
|
sudo cp $IMAGE_CONFIGS/midplane-network/dummy-midplane.netdev $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/dummy-midplane.netdev
|
||||||
|
sudo cp $IMAGE_CONFIGS/midplane-network/dummy-midplane.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/dummy-midplane.network
|
||||||
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-npu.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/midplane-network-npu.network
|
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-npu.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/midplane-network-npu.network
|
||||||
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-dpu.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/midplane-network-dpu.network
|
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-dpu.network $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_NETWORK/midplane-network-dpu.network
|
||||||
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-npu.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/midplane-network-npu.service
|
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-npu.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/midplane-network-npu.service
|
||||||
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-dpu.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/midplane-network-dpu.service
|
sudo cp $IMAGE_CONFIGS/midplane-network/midplane-network-dpu.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/midplane-network-dpu.service
|
||||||
|
|
||||||
# Disable smart switch unit by default, these units will be controlled by systemd-sonic-generator
|
# Disable smart switch unit by default, these units will be controlled by systemd-sonic-generator
|
||||||
sudo ln -s /dev/null /etc/systemd/network/bridge-midplane.netdev
|
sudo ln -s /dev/null $FILESYSTEM_ROOT/etc/systemd/network/bridge-midplane.netdev
|
||||||
sudo ln -s /dev/null /etc/systemd/network/bridge-midplane.network
|
sudo ln -s /dev/null $FILESYSTEM_ROOT/etc/systemd/network/bridge-midplane.network
|
||||||
sudo ln -s /dev/null /etc/systemd/network/midplane-network-npu.network
|
sudo ln -s /dev/null $FILESYSTEM_ROOT/etc/systemd/network/dummy-midplane.netdev
|
||||||
sudo ln -s /dev/null /etc/systemd/network/midplane-network-dpu.network
|
sudo ln -s /dev/null $FILESYSTEM_ROOT/etc/systemd/network/dummy-midplane.network
|
||||||
|
sudo ln -s /dev/null $FILESYSTEM_ROOT/etc/systemd/network/midplane-network-npu.network
|
||||||
|
sudo ln -s /dev/null $FILESYSTEM_ROOT/etc/systemd/network/midplane-network-dpu.network
|
||||||
echo "midplane-network-npu.service" | sudo tee -a $GENERATED_SERVICE_FILE
|
echo "midplane-network-npu.service" | sudo tee -a $GENERATED_SERVICE_FILE
|
||||||
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable midplane-network-npu.service
|
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable midplane-network-npu.service
|
||||||
echo "midplane-network-dpu.service" | sudo tee -a $GENERATED_SERVICE_FILE
|
echo "midplane-network-dpu.service" | sudo tee -a $GENERATED_SERVICE_FILE
|
||||||
@ -652,6 +656,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable midplane-network-dpu.servi
|
|||||||
sudo sed -i 's/#ManageForeignRoutingPolicyRules=yes/ManageForeignRoutingPolicyRules=no/g' $FILESYSTEM_ROOT/etc/systemd/networkd.conf
|
sudo sed -i 's/#ManageForeignRoutingPolicyRules=yes/ManageForeignRoutingPolicyRules=no/g' $FILESYSTEM_ROOT/etc/systemd/networkd.conf
|
||||||
|
|
||||||
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable systemd-networkd
|
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable systemd-networkd
|
||||||
|
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable systemd-networkd-wait-online.service
|
||||||
|
|
||||||
# Copy backend-acl script and service file
|
# Copy backend-acl script and service file
|
||||||
sudo cp $IMAGE_CONFIGS/backend_acl/backend-acl.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/backend-acl.service
|
sudo cp $IMAGE_CONFIGS/backend_acl/backend-acl.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/backend-acl.service
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# Midplane network for NPU
|
# Network configuration for bridge midplane
|
||||||
|
|
||||||
[Match]
|
[Match]
|
||||||
Name=bridge-midplane
|
Name=bridge-midplane
|
||||||
|
|
||||||
[Network]
|
[Network]
|
||||||
Address=169.254.200.254/24
|
Address=169.254.200.254/24
|
||||||
|
LinkLocalAddressing=no
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
# Dummy interface for midplane network
|
||||||
|
|
||||||
|
[NetDev]
|
||||||
|
Name=dummy-midplane
|
||||||
|
Kind=dummy
|
@ -0,0 +1,8 @@
|
|||||||
|
# The systemd-networkd requires that the bridge interface(bridge-midplane) has at least one member interface, otherwise the IP address will not be configured.
|
||||||
|
# This dummy interface will be added into the bridge-midplane as a member to guarantee the IP address configuration correctly.
|
||||||
|
|
||||||
|
[Match]
|
||||||
|
Name=dummy-midplane
|
||||||
|
|
||||||
|
[Network]
|
||||||
|
Bridge=bridge-midplane
|
@ -391,9 +391,9 @@ class SsgMainTest : public SsgFunctionTest {
|
|||||||
}
|
}
|
||||||
else if (cfg.is_smart_switch_npu) {
|
else if (cfg.is_smart_switch_npu) {
|
||||||
ASSERT_EQ(cfg.is_smart_switch_dpu, false);
|
ASSERT_EQ(cfg.is_smart_switch_dpu, false);
|
||||||
nlohmann::json::array_t dpus;
|
nlohmann::json dpus;
|
||||||
for (int i = 0; i < cfg.num_dpus; i++) {
|
for (int i = 0; i < cfg.num_dpus; i++) {
|
||||||
dpus.push_back(nlohmann::json::object());
|
dpus["dpu" + std::to_string(i)] = nlohmann::json::object();
|
||||||
}
|
}
|
||||||
platform_config["DPUS"] = dpus;
|
platform_config["DPUS"] = dpus;
|
||||||
}
|
}
|
||||||
@ -496,6 +496,8 @@ const std::vector<std::string>
|
|||||||
SsgMainTest::npu_network_service_list = {
|
SsgMainTest::npu_network_service_list = {
|
||||||
"bridge-midplane.netdev",
|
"bridge-midplane.netdev",
|
||||||
"bridge-midplane.network",
|
"bridge-midplane.network",
|
||||||
|
"dummy-midplane.netdev",
|
||||||
|
"dummy-midplane.network",
|
||||||
"midplane-network-npu.network",
|
"midplane-network-npu.network",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -860,10 +860,7 @@ static bool is_smart_switch_npu() {
|
|||||||
if (platform_info == NULL) {
|
if (platform_info == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!json_object_object_get_ex(platform_info, "DPUS", &dpus)) {
|
return json_object_object_get_ex(platform_info, "DPUS", &dpus);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -878,11 +875,7 @@ static bool is_smart_switch_dpu() {
|
|||||||
if (platform_info == NULL) {
|
if (platform_info == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!json_object_object_get_ex(platform_info, "DPU", &dpu)) {
|
return json_object_object_get_ex(platform_info, "DPU", &dpu);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -904,7 +897,10 @@ static int get_num_of_dpu() {
|
|||||||
if (!json_object_object_get_ex(platform_info, "DPUS", &dpus)) {
|
if (!json_object_object_get_ex(platform_info, "DPUS", &dpus)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
size_t num_dpu = json_object_array_length(dpus);
|
size_t num_dpu = 0;
|
||||||
|
json_object_object_foreach(dpus, key, val) {
|
||||||
|
num_dpu++;
|
||||||
|
}
|
||||||
return num_dpu;
|
return num_dpu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1076,6 +1072,8 @@ static int install_network_service_for_smart_switch() {
|
|||||||
static const char* npu_network_units[] = {
|
static const char* npu_network_units[] = {
|
||||||
"bridge-midplane.netdev",
|
"bridge-midplane.netdev",
|
||||||
"bridge-midplane.network",
|
"bridge-midplane.network",
|
||||||
|
"dummy-midplane.netdev",
|
||||||
|
"dummy-midplane.network",
|
||||||
"midplane-network-npu.network",
|
"midplane-network-npu.network",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
../../../../files/image_config/midplane-network/dummy-midplane.netdev
|
@ -0,0 +1 @@
|
|||||||
|
../../../../files/image_config/midplane-network/dummy-midplane.network
|
Reference in New Issue
Block a user