Deleted Added
full compact
42c42
< * $FreeBSD: head/sys/netgraph/ng_ether.c 141720 2005-02-12 11:14:25Z ru $
---
> * $FreeBSD: head/sys/netgraph/ng_ether.c 141721 2005-02-12 11:41:32Z glebius $
59a60
> #include <net/if_dl.h>
173a175,188
> {
> NGM_ETHER_COOKIE,
> NGM_ETHER_ADD_MULTI,
> "addmulti",
> &ng_parse_enaddr_type,
> NULL
> },
> {
> NGM_ETHER_COOKIE,
> NGM_ETHER_DEL_MULTI,
> "delmulti",
> &ng_parse_enaddr_type,
> NULL
> },
494a510,550
> case NGM_ETHER_ADD_MULTI:
> {
> struct sockaddr_dl sa_dl;
> struct ifmultiaddr *ifm;
>
> if (msg->header.arglen != ETHER_ADDR_LEN) {
> error = EINVAL;
> break;
> }
> sa_dl.sdl_len = sizeof(struct sockaddr_dl);
> sa_dl.sdl_family = AF_LINK;
> sa_dl.sdl_index = 0;
> sa_dl.sdl_nlen = 0;
> sa_dl.sdl_alen = 6;
> sa_dl.sdl_slen = 0;
> bcopy((void *)msg->data, LLADDR(&sa_dl),
> ETHER_ADDR_LEN);
> error = if_addmulti(priv->ifp,
> (struct sockaddr *)&sa_dl, &ifm);
> break;
> }
> case NGM_ETHER_DEL_MULTI:
> {
> struct sockaddr_dl sa_dl;
>
> if (msg->header.arglen != ETHER_ADDR_LEN) {
> error = EINVAL;
> break;
> }
> sa_dl.sdl_len = sizeof(struct sockaddr_dl);
> sa_dl.sdl_family = AF_LINK;
> sa_dl.sdl_index = 0;
> sa_dl.sdl_nlen = 0;
> sa_dl.sdl_alen = 6;
> sa_dl.sdl_slen = 0;
> bcopy((void *)msg->data, LLADDR(&sa_dl),
> ETHER_ADDR_LEN);
> error = if_delmulti(priv->ifp,
> (struct sockaddr *)&sa_dl);
> break;
> }