diff options
| author | songyanchao <[email protected]> | 2022-08-31 06:56:54 +0000 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2022-08-31 06:56:54 +0000 |
| commit | a00502ca0b11d8fa2b4fc69f74d78ab106310da7 (patch) | |
| tree | bc34d10d3ac6dc9d7a77960179ffc64c499505fc | |
| parent | 2a835d0bdf6d8ede385bbd65b416316af2af1e4c (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.c | 37 |
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; |
