|
Lines 118-125
Link Here
|
| 118 |
sc = ifp->if_softc; |
118 |
sc = ifp->if_softc; |
| 119 |
ifp_p = sc->ifv_p; |
119 |
ifp_p = sc->ifv_p; |
| 120 |
|
120 |
|
| 121 |
sdl.sdl_len = ETHER_ADDR_LEN; |
121 |
bzero((char *)&sdl, sizeof sdl); |
|
|
122 |
sdl.sdl_len = sizeof sdl; |
| 122 |
sdl.sdl_family = AF_LINK; |
123 |
sdl.sdl_family = AF_LINK; |
|
|
124 |
sdl.sdl_alen = ETHER_ADDR_LEN; |
| 123 |
|
125 |
|
| 124 |
/* First, remove any existing filter entries. */ |
126 |
/* First, remove any existing filter entries. */ |
| 125 |
while(sc->vlan_mc_listhead.slh_first != NULL) { |
127 |
while(sc->vlan_mc_listhead.slh_first != NULL) { |
|
Lines 137-143
Link Here
|
| 137 |
ifma != NULL;ifma = ifma->ifma_link.le_next) { |
139 |
ifma != NULL;ifma = ifma->ifma_link.le_next) { |
| 138 |
if (ifma->ifma_addr->sa_family != AF_LINK) |
140 |
if (ifma->ifma_addr->sa_family != AF_LINK) |
| 139 |
continue; |
141 |
continue; |
| 140 |
mc = malloc(sizeof(struct vlan_mc_entry), M_DEVBUF, M_NOWAIT); |
142 |
mc = malloc(sizeof(struct vlan_mc_entry), M_DEVBUF, M_WAITOK); |
| 141 |
bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr), |
143 |
bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr), |
| 142 |
(char *)&mc->mc_addr, ETHER_ADDR_LEN); |
144 |
(char *)&mc->mc_addr, ETHER_ADDR_LEN); |
| 143 |
SLIST_INSERT_HEAD(&sc->vlan_mc_listhead, mc, mc_entries); |
145 |
SLIST_INSERT_HEAD(&sc->vlan_mc_listhead, mc, mc_entries); |