Lines Matching refs:ndm
655 struct ndmsg *ndm;
657 nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags);
661 ndm = nlmsg_data(nlh);
662 ndm->ndm_family = AF_BRIDGE;
663 ndm->ndm_pad1 = 0;
664 ndm->ndm_pad2 = 0;
665 ndm->ndm_flags = 0;
666 ndm->ndm_type = 0;
667 ndm->ndm_ifindex = fdb->dst ? fdb->dst->dev->ifindex : br->dev->ifindex;
668 ndm->ndm_state = fdb_to_nud(br, fdb);
671 ndm->ndm_flags |= NTF_OFFLOADED;
673 ndm->ndm_flags |= NTF_EXT_LEARNED;
675 ndm->ndm_flags |= NTF_STICKY;
861 const u8 *addr, struct ndmsg *ndm, u16 flags, u16 vid,
864 bool is_sticky = !!(ndm->ndm_flags & NTF_STICKY);
867 u16 state = ndm->ndm_state;
951 static int __br_fdb_add(struct ndmsg *ndm, struct net_bridge *br,
958 if (ndm->ndm_flags & NTF_USE) {
972 } else if (ndm->ndm_flags & NTF_EXT_LEARNED) {
973 if (!p && !(ndm->ndm_state & NUD_PERMANENT)) {
981 err = fdb_add_entry(br, p, addr, ndm, nlh_flags, vid, nfea_tb);
994 int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
1006 trace_br_fdb_add(ndm, dev, addr, vid, nlh_flags);
1008 if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE))) {
1009 pr_info("bridge: RTM_NEWNEIGH with invalid state %#x\n", ndm->ndm_state);
1050 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, vid, nfea_tb,
1053 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, 0, nfea_tb,
1065 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, v->vid,
1105 int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[],