Skip to content
Snippets Groups Projects

Draft: Fix for ethernet host under correct node

Closed Balalakshmi Arunachalam Rajendran requested to merge neigh_ethhost into release-7.3
1 file
+ 24
2
Compare changes
  • Side-by-side
  • Inline
+ 24
2
@@ -154,21 +154,43 @@ int hostmngr_update_neigh_brport(struct hostmngr_private *priv, char *brname)
@@ -154,21 +154,43 @@ int hostmngr_update_neigh_brport(struct hostmngr_private *priv, char *brname)
for (i = 0; i < num; i++) {
for (i = 0; i < num; i++) {
struct neigh_entry *t;
struct neigh_entry *t;
 
char *ifname = NULL;
dbg("FDB[%d] : " MACFMT " port = %hu\n", i,
dbg("FDB[%d] : " MACFMT " port = %hu\n", i,
MAC2STR(fdbs[i].macaddr), fdbs[i].port);
MAC2STR(fdbs[i].macaddr), fdbs[i].port);
t = neigh_lookup(&priv->neigh_q, fdbs[i].macaddr);
t = neigh_lookup(&priv->neigh_q, fdbs[i].macaddr);
 
ifname = hostmngr_brport_to_ifname(priv, fdbs[i].port);
if (t) {
if (t) {
t->brport = fdbs[i].port;
t->brport = fdbs[i].port;
char *ifname;
ifname = hostmngr_brport_to_ifname(priv, fdbs[i].port);
if (ifname) {
if (ifname) {
memset(t->ifname, 0, 16);
memset(t->ifname, 0, 16);
strncpy(t->ifname, ifname, 16);
strncpy(t->ifname, ifname, 16);
}
}
}
}
 
else {
 
/* create a new neigh just learnt from br-fdb */
 
struct neigh_entry *new = NULL;
 
enum if_mediatype mtype;
 
if (ifname) {
 
if_getmediatype(ifname, &mtype);
 
if (mtype == IF_MEDIA_ETH) {
 
new = neigh_enqueue(&priv->neigh_q,
 
fdbs[i].macaddr,
 
NEIGH_STATE_REACHABLE,
 
ifname,
 
NEIGH_TYPE_ETH,
 
NULL,
 
NEIGH_AGEOUT_DEFAULT,
 
NULL);
 
if (new) {
 
new->brport = fdbs[i].port;
 
dbg("%s: Added new neighbor: " MACFMT " on port %hu\n", __func__, MAC2STR(fdbs[i].macaddr), fdbs[i].port);
 
}
 
}
 
}
 
}
}
}
return 0;
return 0;
Loading