summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsongyanchao <[email protected]>2022-08-31 06:56:54 +0000
committersongyanchao <[email protected]>2022-08-31 06:56:54 +0000
commita00502ca0b11d8fa2b4fc69f74d78ab106310da7 (patch)
treebc34d10d3ac6dc9d7a77960179ffc64c499505fc
parent2a835d0bdf6d8ede385bbd65b416316af2af1e4c (diff)
✨ feat(TSG-11847): MRNFVD 组件修改 ”mrapp_ctrlmsg_init” 使其通过环境变量获取“listen_addr”v4.6.1-20220831
MRNFVD 组件修改 ”mrapp_ctrlmsg_init” 使其通过环境变量获取“listen_addr”
-rw-r--r--app/src/marsio.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/app/src/marsio.c b/app/src/marsio.c
index 1590959..3a752e2 100644
--- a/app/src/marsio.c
+++ b/app/src/marsio.c
@@ -205,12 +205,20 @@ static void mrapp_eal_init(struct mr_instance * instance)
static int mrapp_ctrlmsg_init(struct mr_instance * instance)
{
- char str_ctrlmsg_addr[MR_STRING_MAX] = { 0 };
+ //char str_ctrlmsg_addr[MR_STRING_MAX] = { 0 };
+ char * str_ctrlmsg_addr = NULL;
unsigned int ctrlmsg_port = 0;
/* 读控制面监听线程的监听地址、端口号 */
- MESA_load_profile_string_def(instance->g_cfgfile_path, "ctrlmsg", "listen_addr",
- str_ctrlmsg_addr, sizeof(str_ctrlmsg_addr), CTRLMSG_DEFAULT_ADDR);
+ //MESA_load_profile_string_def(instance->g_cfgfile_path, "ctrlmsg", "listen_addr",
+ // str_ctrlmsg_addr, sizeof(str_ctrlmsg_addr), CTRLMSG_DEFAULT_ADDR);
+
+ str_ctrlmsg_addr = getenv("MRZCPD_CTRLMSG_LISTEN_ADDR");
+ if (str_ctrlmsg_addr == NULL)
+ {
+ MR_ERROR("Mrapp ctrlmsg init error,No config environment variable 'MRZCPD_CTRLMSG_LISTEN_ADDR'.");
+ }
+
MESA_load_profile_uint_def(instance->g_cfgfile_path, "ctrlmsg", "listen_port",
&ctrlmsg_port, CTRLMSG_DEFAULT_PORT);
@@ -218,7 +226,8 @@ static int mrapp_ctrlmsg_init(struct mr_instance * instance)
struct sockaddr_in sockaddr_in;
if (inet_pton(AF_INET, str_ctrlmsg_addr, &sockaddr_in.sin_addr) <= 0)
{
- MR_CFGERR_INVALID_FORMAT(instance->g_cfgfile_path, "ctrlmsg", "listen_addr");
+ //MR_CFGERR_INVALID_FORMAT(instance->g_cfgfile_path, "ctrlmsg", "listen_addr");
+ MR_ERROR("Mrapp ctrlmsg init error,The environment variable 'MRZCPD_CTRLMSG_LISTEN_ADDR=%s' is invalid.",str_ctrlmsg_addr);
return RT_ERR;
}
@@ -376,7 +385,7 @@ static int __table_split_line(const char * buffer, char str_tokens[MR_TOKENS_MAX
{
char * __buffer = strdup(buffer);
assert(__buffer != NULL);
-
+
char * token_ptr;
unsigned int total_nr_tokens = 0;
@@ -407,7 +416,7 @@ static int mrapp_neigh_init(struct mr_instance * instance)
unsigned int neigh_timeout;
unsigned int arp_send_interval;
- /* 临时静态邻居表初始化
+ /* 临时静态邻居表初始化
该表仅限初始化时使用,设备打开后,该表项读取邻居子系统。
*/
TAILQ_INIT(&instance->static_neigh_list);
@@ -420,7 +429,7 @@ static int mrapp_neigh_init(struct mr_instance * instance)
&arp_send_interval, MRAPP_DEFAULT_NEIGH_ARP_SEND_INTERVAL);
MESA_load_profile_uint_def(instance->g_cfgfile_path, "neigh", "gratuitous_arp_send",
&instance->nr_gratuitous_arp_send, MRAPP_DEFAULT_NEIGH_GRATUITOUS_ARP_SEND);
-
+
/* 邻居子系统初始化 */
if (neighbour_mamanger_init(instance->neigh, instance->appsym,
neigh_max_entries, neigh_timeout, arp_send_interval) != RT_SUCCESS)
@@ -432,7 +441,7 @@ static int mrapp_neigh_init(struct mr_instance * instance)
FILE * fp_static_neigh_table = fopen(MRAPP_STATIC_NEIGH_FILE_PATH, "r");
if (fp_static_neigh_table == NULL)
{
- MR_DEBUG("Skip reading static neighbour table from file %s.",
+ MR_DEBUG("Skip reading static neighbour table from file %s.",
MRAPP_STATIC_NEIGH_FILE_PATH); goto success;
}
@@ -454,12 +463,12 @@ static int mrapp_neigh_init(struct mr_instance * instance)
MR_WARNING("Table: %s, line: %u: Invalid line format, must have 3 column, ignore.",
MRAPP_STATIC_NEIGH_FILE_PATH, __tb_line_no); continue;
}
-
+
/* 读IP地址、MAC地址 */
const char * str_in_addr = __split_str[0];
const char * str_ether_addr = __split_str[1];
const char * str_device = __split_str[2];
-
+
/* 字符串转换 */
struct in_addr in_addr;
struct rte_ether_addr ether_addr;
@@ -510,10 +519,10 @@ static int mrapp_neigh_init(struct mr_instance * instance)
/* 拷贝IP地址、MAC地址的字符串形式,便于后面显示日志信息 */
strncpy(__neigh_entry->str_in_addr, str_in_addr, sizeof(__neigh_entry->str_in_addr));
strncpy(__neigh_entry->str_ether_addr, str_ether_addr, sizeof(__neigh_entry->str_ether_addr));
-
+
TAILQ_INSERT_TAIL(&instance->static_neigh_list, __neigh_entry, next);
}
-
+
success:
return RT_SUCCESS;
@@ -545,8 +554,8 @@ static int mrapp_neigh_device_init(struct mr_instance * instance, struct mr_vdev
if (ret < 0)
{
MR_WARNING("Static neighbour %s->%s on device %s failed, Ignore.",
- __neigh_entry_iter->str_in_addr,
- __neigh_entry_iter->str_ether_addr,
+ __neigh_entry_iter->str_in_addr,
+ __neigh_entry_iter->str_ether_addr,
__neigh_entry_iter->devsym);
continue;