Lines Matching defs:ndm
107 struct ndmsg *ndm;
110 nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags);
114 ndm = nlmsg_data(nlh);
115 ndm->ndm_family = AF_BRIDGE;
116 ndm->ndm_pad1 = 0;
117 ndm->ndm_pad2 = 0;
118 ndm->ndm_flags = 0;
119 ndm->ndm_type = 0;
120 ndm->ndm_ifindex = dst ? dst->dev->ifindex : br->dev->ifindex;
121 ndm->ndm_state = fdb_to_nud(br, fdb);
124 ndm->ndm_flags |= NTF_OFFLOADED;
126 ndm->ndm_flags |= NTF_EXT_LEARNED;
128 ndm->ndm_flags |= NTF_STICKY;
664 int br_fdb_delete_bulk(struct ndmsg *ndm, struct nlattr *tb[],
668 u8 ndm_flags = ndm->ndm_flags & ~FDB_FLUSH_IGNORED_NDM_FLAGS;
685 NL_SET_ERR_MSG(extack, "Unsupported fdb flush ndm flag bits set");
688 if (ndm->ndm_state & ~FDB_FLUSH_ALLOWED_NDM_STATES) {
689 NL_SET_ERR_MSG(extack, "Unsupported fdb flush ndm state bits set");
693 desc.flags |= __ndm_state_to_fdb_flags(ndm->ndm_state);
1022 const u8 *addr, struct ndmsg *ndm, u16 flags, u16 vid,
1025 bool is_sticky = !!(ndm->ndm_flags & NTF_STICKY);
1028 u16 state = ndm->ndm_state;
1115 static int __br_fdb_add(struct ndmsg *ndm, struct net_bridge *br,
1122 if (ndm->ndm_flags & NTF_USE) {
1136 } else if (ndm->ndm_flags & NTF_EXT_LEARNED) {
1137 if (!p && !(ndm->ndm_state & NUD_PERMANENT)) {
1145 err = fdb_add_entry(br, p, addr, ndm, nlh_flags, vid, nfea_tb);
1158 int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
1171 trace_br_fdb_add(ndm, dev, addr, vid, nlh_flags);
1173 if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE))) {
1174 pr_info("bridge: RTM_NEWNEIGH with invalid state %#x\n", ndm->ndm_state);
1223 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, vid, nfea_tb,
1226 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, 0, nfea_tb,
1238 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, v->vid,
1278 int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[],