diff --git a/src/iccpd/src/iccp_cmd_show.c b/src/iccpd/src/iccp_cmd_show.c index 984984434dc0..c7c6eb86516f 100644 --- a/src/iccpd/src/iccp_cmd_show.c +++ b/src/iccpd/src/iccp_cmd_show.c @@ -94,16 +94,20 @@ int iccp_mclag_config_dump(char * *buf, int *num, int mclag_id) memcpy(state_info.peer_ip, csm->peer_ip, ICCP_MAX_IP_STR_LEN); if (peer_link_if) + { memcpy(state_info.peer_link_if, peer_link_if->name, ICCP_MAX_PORT_NAME); + memcpy(state_info.peer_link_mac, peer_link_if->mac_addr, ETHER_ADDR_LEN); + state_info.peer_link_state = peer_link_if->state; + } else + { memcpy(state_info.peer_link_if, unknown, strlen(unknown)); - - if (peer_link_if) - memcpy(state_info.peer_link_mac, peer_link_if->mac_addr, 6); + state_info.peer_link_state = PORT_STATE_DOWN; + } state_info.keepalive_time = csm->keepalive_time; state_info.session_timeout = csm->session_timeout; - + logconfig = logger_get_configuration(); memcpy(state_info.loglevel, log_level_to_string(logconfig->log_level), strlen( log_level_to_string(logconfig->log_level))); diff --git a/src/iccpd/src/mclagdctl/mclagdctl.c b/src/iccpd/src/mclagdctl/mclagdctl.c index 2eccd944636a..dbd00d7e5cbc 100644 --- a/src/iccpd/src/mclagdctl/mclagdctl.c +++ b/src/iccpd/src/mclagdctl/mclagdctl.c @@ -309,6 +309,18 @@ int mclagdctl_parse_dump_state(char *msg, int data_len) fprintf(stdout, "%s: %s\n", "Local Ip", state_info->local_ip); fprintf(stdout, "%s: %s\n", "Peer Ip", state_info->peer_ip); fprintf(stdout, "%s: %s\n", "Peer Link Interface", state_info->peer_link_if); + + char* peer_link_state = ""; + if (state_info->peer_link_state == PORT_STATE_UP) + peer_link_state = "Up"; + else if (state_info->peer_link_state == PORT_STATE_DOWN) + peer_link_state = "Down"; + else if (state_info->peer_link_state == PORT_STATE_ADMIN_DOWN) + peer_link_state = "Admin-down"; + else if (state_info->peer_link_state == PORT_STATE_TEST) + peer_link_state = "Test"; + fprintf(stdout, "Peer Link state: %s\n", peer_link_state); + fprintf(stdout, "%s: %d\n", "Keepalive time", state_info->keepalive_time); fprintf(stdout, "%s: %d\n", "sesssion Timeout ", state_info->session_timeout); diff --git a/src/iccpd/src/mclagdctl/mclagdctl.h b/src/iccpd/src/mclagdctl/mclagdctl.h index ce31b58a1871..4c31774d7a20 100644 --- a/src/iccpd/src/mclagdctl/mclagdctl.h +++ b/src/iccpd/src/mclagdctl/mclagdctl.h @@ -142,6 +142,7 @@ struct mclagd_state int session_timeout; int keepalive_time; char loglevel[MCLAGDCTL_PARA1_LEN]; + uint8_t peer_link_state; }; #define NEIGH_LOCAL 1