Lines Matching refs:ndm

104 	struct ndmsg *ndm;
107 nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags);
111 ndm = nlmsg_data(nlh);
112 ndm->ndm_family = AF_BRIDGE;
113 ndm->ndm_pad1 = 0;
114 ndm->ndm_pad2 = 0;
115 ndm->ndm_flags = 0;
116 ndm->ndm_type = 0;
117 ndm->ndm_ifindex = dst ? dst->dev->ifindex : br->dev->ifindex;
118 ndm->ndm_state = fdb_to_nud(br, fdb);
121 ndm->ndm_flags |= NTF_OFFLOADED;
123 ndm->ndm_flags |= NTF_EXT_LEARNED;
125 ndm->ndm_flags |= NTF_STICKY;
693 struct ndmsg *ndm = nlmsg_data(nlh);
700 ndm_flags = ndm->ndm_flags & ~FDB_FLUSH_IGNORED_NDM_FLAGS;
702 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX,
722 NL_SET_ERR_MSG(extack, "Unsupported fdb flush ndm flag bits set");
725 if (ndm->ndm_state & ~FDB_FLUSH_ALLOWED_NDM_STATES) {
726 NL_SET_ERR_MSG(extack, "Unsupported fdb flush ndm state bits set");
730 desc.flags |= __ndm_state_to_fdb_flags(ndm->ndm_state);
1063 const u8 *addr, struct ndmsg *ndm, u16 flags, u16 vid,
1066 bool is_sticky = !!(ndm->ndm_flags & NTF_STICKY);
1069 u16 state = ndm->ndm_state;
1159 static int __br_fdb_add(struct ndmsg *ndm, struct net_bridge *br,
1166 if (ndm->ndm_flags & NTF_USE) {
1180 } else if (ndm->ndm_flags & NTF_EXT_LEARNED) {
1181 if (!p && !(ndm->ndm_state & NUD_PERMANENT)) {
1189 err = fdb_add_entry(br, p, addr, ndm, nlh_flags, vid, nfea_tb);
1202 int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
1215 trace_br_fdb_add(ndm, dev, addr, vid, nlh_flags);
1217 if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE))) {
1218 pr_info("bridge: RTM_NEWNEIGH with invalid state %#x\n", ndm->ndm_state);
1267 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, vid, nfea_tb,
1270 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, 0, nfea_tb,
1282 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, v->vid,
1322 int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[],