Lines Matching refs:ndm
2286 struct ndmsg *ndm; in nlmsg_populate_fdb_fill() local
2288 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), nlflags); in nlmsg_populate_fdb_fill()
2292 ndm = nlmsg_data(nlh); in nlmsg_populate_fdb_fill()
2293 ndm->ndm_family = AF_BRIDGE; in nlmsg_populate_fdb_fill()
2294 ndm->ndm_pad1 = 0; in nlmsg_populate_fdb_fill()
2295 ndm->ndm_pad2 = 0; in nlmsg_populate_fdb_fill()
2296 ndm->ndm_flags = flags; in nlmsg_populate_fdb_fill()
2297 ndm->ndm_type = 0; in nlmsg_populate_fdb_fill()
2298 ndm->ndm_ifindex = dev->ifindex; in nlmsg_populate_fdb_fill()
2299 ndm->ndm_state = NUD_PERMANENT; in nlmsg_populate_fdb_fill()
2341 int ndo_dflt_fdb_add(struct ndmsg *ndm, in ndo_dflt_fdb_add() argument
2352 if (ndm->ndm_state && !(ndm->ndm_state & NUD_PERMANENT)) { in ndo_dflt_fdb_add()
2373 struct ndmsg *ndm; in rtnl_fdb_add() local
2379 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_add()
2383 ndm = nlmsg_data(nlh); in rtnl_fdb_add()
2384 if (ndm->ndm_ifindex == 0) { in rtnl_fdb_add()
2389 dev = __dev_get_by_index(net, ndm->ndm_ifindex); in rtnl_fdb_add()
2405 if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && in rtnl_fdb_add()
2410 err = ops->ndo_fdb_add(ndm, tb, dev, addr, nlh->nlmsg_flags); in rtnl_fdb_add()
2414 ndm->ndm_flags &= ~NTF_MASTER; in rtnl_fdb_add()
2418 if ((ndm->ndm_flags & NTF_SELF)) { in rtnl_fdb_add()
2420 err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
2423 err = ndo_dflt_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
2428 ndm->ndm_flags &= ~NTF_SELF; in rtnl_fdb_add()
2438 int ndo_dflt_fdb_del(struct ndmsg *ndm, in ndo_dflt_fdb_del() argument
2448 if (!(ndm->ndm_state & NUD_PERMANENT)) { in ndo_dflt_fdb_del()
2465 struct ndmsg *ndm; in rtnl_fdb_del() local
2474 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_del()
2478 ndm = nlmsg_data(nlh); in rtnl_fdb_del()
2479 if (ndm->ndm_ifindex == 0) { in rtnl_fdb_del()
2484 dev = __dev_get_by_index(net, ndm->ndm_ifindex); in rtnl_fdb_del()
2500 if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && in rtnl_fdb_del()
2506 err = ops->ndo_fdb_del(ndm, tb, dev, addr); in rtnl_fdb_del()
2511 ndm->ndm_flags &= ~NTF_MASTER; in rtnl_fdb_del()
2515 if (ndm->ndm_flags & NTF_SELF) { in rtnl_fdb_del()
2517 err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr); in rtnl_fdb_del()
2519 err = ndo_dflt_fdb_del(ndm, tb, dev, addr); in rtnl_fdb_del()
2523 ndm->ndm_flags &= ~NTF_SELF; in rtnl_fdb_del()