diff --git a/mcast-pa/src/mcast-pa.c b/mcast-pa/src/mcast-pa.c index 33a1d61029784d2bf59fb152686248ce63ded7bf..2c1a391c28917066d55de87aa87efb5096514355 100644 --- a/mcast-pa/src/mcast-pa.c +++ b/mcast-pa/src/mcast-pa.c @@ -679,11 +679,17 @@ mcg_br_entry_show(FILE * f, struct mcg_br_mdb_entry_t *mcge) if (f == NULL) return; if (inet_ntop(AF_INET, &mcge->e.addr.u.ip4, abuf, sizeof (abuf))) { - fprintf(f, "brdev %s port %s grp %s \n", (char *) ll_index_to_name(mcge->br_ifindex), - (char *) ll_index_to_name(mcge->e.ifindex), abuf); + fprintf(f, "brdev %s port %s grp %s join:%d \n", (char *) ll_index_to_name(mcge->br_ifindex), + (char *) ll_index_to_name(mcge->e.ifindex), abuf,mcge->joined); + fprintf(f,"mac address:%02x-%02x-%02x-%02x-%02x-%02x\n",mcge->e.src_addr.eth_addr[0],mcge->e.src_addr.eth_addr[1],mcge->e.src_addr.eth_addr[2], + mcge->e.src_addr.eth_addr[3],mcge->e.src_addr.eth_addr[4],mcge->e.src_addr.eth_addr[5]); } return; } +static int is_zero_mac(uint8_t *mac) +{ + return !(mac[0] | mac[1] | mac[2] | mac[3] | mac[4] | mac[5]); +} /** * @brief compare bridge entries @@ -1704,6 +1710,10 @@ cache_mdb_entry(struct nlmsghdr *n, int ifindex, struct br_mdb_entry *e) syslog(LOG_NOTICE, "RTM_NEWMDB dev %s port %s grp %s srcmac %s\n", (char *) ll_index_to_name(ifindex), (char *) ll_index_to_name(e->ifindex), abuf, cache_mdb_entry_srcmac(e)); + if(is_zero_mac(e->src_addr.eth_addr)) + { + return; + } head = mcg_br_entry_head_get(e); if (head == NULL) {