加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0175-cfg-devices-must-be-in-bond_slave_mac-for-BONDING_MO.patch 1.45 KB
一键复制 编辑 原始数据 按行查看 历史
yinbin6 提交于 2024-05-09 10:54 . sync CFG:fix multicast IP assert error
From 82ad5f93a2bd11411fec78ec7bcb26d6055fdfda Mon Sep 17 00:00:00 2001
From: zhangmengxuan <zhangmengxuan@kylinos.cn>
Date: Mon, 29 Apr 2024 10:43:37 +0800
Subject: [PATCH] cfg: devices must be in bond_slave_mac for
BONDING_MODE_ACTIVE
---
src/lstack/core/lstack_cfg.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c
index 533eb6c..8073dd4 100644
--- a/src/lstack/core/lstack_cfg.c
+++ b/src/lstack/core/lstack_cfg.c
@@ -1210,6 +1210,16 @@ static int32_t parse_bond_miimon(void)
return ret;
}
+static bool validate_bond_mac(uint8_t *mac_addr, struct rte_ether_addr *bond_slave_mac, int num_slaves)
+{
+ for (int i = 0; i < num_slaves; i++) {
+ if (memcmp(mac_addr, bond_slave_mac[i].addr_bytes, ETHER_ADDR_LEN) == 0) {
+ return true;
+ }
+ }
+ return false;
+}
+
static int32_t parse_bond_slave_mac(void)
{
if (g_config_params.bond_mode == -1) {
@@ -1252,6 +1262,12 @@ static int32_t parse_bond_slave_mac(void)
k = k + 1;
}
free(bond_slave_mac_tmp);
+ if (g_config_params.bond_mode == BONDING_MODE_ACTIVE_BACKUP) {
+ if (!validate_bond_mac(g_config_params.mac_addr, g_config_params.bond_slave_mac_addr, GAZELLE_MAX_BOND_NUM)) {
+ LSTACK_PRE_LOG(LSTACK_ERR, "cfg: devices must be in bond_slave_mac for BONDING_MODE_ACTIVE_BACKUP.\n");
+ return -EINVAL;
+ }
+ }
return ret;
}
--
2.33.0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化