Lines Matching refs:ndm

3871 	struct ndmsg *ndm;  in nlmsg_populate_fdb_fill()  local
3873 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), nlflags); in nlmsg_populate_fdb_fill()
3877 ndm = nlmsg_data(nlh); in nlmsg_populate_fdb_fill()
3878 ndm->ndm_family = AF_BRIDGE; in nlmsg_populate_fdb_fill()
3879 ndm->ndm_pad1 = 0; in nlmsg_populate_fdb_fill()
3880 ndm->ndm_pad2 = 0; in nlmsg_populate_fdb_fill()
3881 ndm->ndm_flags = flags; in nlmsg_populate_fdb_fill()
3882 ndm->ndm_type = 0; in nlmsg_populate_fdb_fill()
3883 ndm->ndm_ifindex = dev->ifindex; in nlmsg_populate_fdb_fill()
3884 ndm->ndm_state = ndm_state; in nlmsg_populate_fdb_fill()
3935 int ndo_dflt_fdb_add(struct ndmsg *ndm, in ndo_dflt_fdb_add() argument
3946 if (ndm->ndm_state && !(ndm->ndm_state & NUD_PERMANENT)) { in ndo_dflt_fdb_add()
3995 struct ndmsg *ndm; in rtnl_fdb_add() local
4002 err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, in rtnl_fdb_add()
4007 ndm = nlmsg_data(nlh); in rtnl_fdb_add()
4008 if (ndm->ndm_ifindex == 0) { in rtnl_fdb_add()
4013 dev = __dev_get_by_index(net, ndm->ndm_ifindex); in rtnl_fdb_add()
4038 if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && in rtnl_fdb_add()
4043 err = ops->ndo_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
4048 ndm->ndm_flags &= ~NTF_MASTER; in rtnl_fdb_add()
4052 if ((ndm->ndm_flags & NTF_SELF)) { in rtnl_fdb_add()
4054 err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
4059 err = ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
4064 ndm->ndm_state); in rtnl_fdb_add()
4065 ndm->ndm_flags &= ~NTF_SELF; in rtnl_fdb_add()
4075 int ndo_dflt_fdb_del(struct ndmsg *ndm, in ndo_dflt_fdb_del() argument
4085 if (!(ndm->ndm_state & NUD_PERMANENT)) { in ndo_dflt_fdb_del()
4103 struct ndmsg *ndm; in rtnl_fdb_del() local
4113 err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, in rtnl_fdb_del()
4118 ndm = nlmsg_data(nlh); in rtnl_fdb_del()
4119 if (ndm->ndm_ifindex == 0) { in rtnl_fdb_del()
4124 dev = __dev_get_by_index(net, ndm->ndm_ifindex); in rtnl_fdb_del()
4149 if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && in rtnl_fdb_del()
4155 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
4160 ndm->ndm_flags &= ~NTF_MASTER; in rtnl_fdb_del()
4164 if (ndm->ndm_flags & NTF_SELF) { in rtnl_fdb_del()
4166 err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, in rtnl_fdb_del()
4169 err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
4173 ndm->ndm_state); in rtnl_fdb_del()
4174 ndm->ndm_flags &= ~NTF_SELF; in rtnl_fdb_del()
4248 struct ndmsg *ndm; in valid_fdb_dump_strict() local
4251 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) { in valid_fdb_dump_strict()
4256 ndm = nlmsg_data(nlh); in valid_fdb_dump_strict()
4257 if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_state || in valid_fdb_dump_strict()
4258 ndm->ndm_flags || ndm->ndm_type) { in valid_fdb_dump_strict()
4268 *brport_idx = ndm->ndm_ifindex; in valid_fdb_dump_strict()
4437 struct ndmsg *ndm; in valid_fdb_get_strict() local
4440 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) { in valid_fdb_get_strict()
4445 ndm = nlmsg_data(nlh); in valid_fdb_get_strict()
4446 if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_state || in valid_fdb_get_strict()
4447 ndm->ndm_type) { in valid_fdb_get_strict()
4452 if (ndm->ndm_flags & ~(NTF_MASTER | NTF_SELF)) { in valid_fdb_get_strict()
4462 *ndm_flags = ndm->ndm_flags; in valid_fdb_get_strict()
4463 *brport_idx = ndm->ndm_ifindex; in valid_fdb_get_strict()