Lines Matching refs:ndm
640 struct ndmsg *ndm; in fdb_fill_info() local
642 nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags); in fdb_fill_info()
646 ndm = nlmsg_data(nlh); in fdb_fill_info()
647 ndm->ndm_family = AF_BRIDGE; in fdb_fill_info()
648 ndm->ndm_pad1 = 0; in fdb_fill_info()
649 ndm->ndm_pad2 = 0; in fdb_fill_info()
650 ndm->ndm_flags = 0; in fdb_fill_info()
651 ndm->ndm_type = 0; in fdb_fill_info()
652 ndm->ndm_ifindex = fdb->dst ? fdb->dst->dev->ifindex : br->dev->ifindex; in fdb_fill_info()
653 ndm->ndm_state = fdb_to_nud(br, fdb); in fdb_fill_info()
656 ndm->ndm_flags |= NTF_OFFLOADED; in fdb_fill_info()
658 ndm->ndm_flags |= NTF_EXT_LEARNED; in fdb_fill_info()
846 static int __br_fdb_add(struct ndmsg *ndm, struct net_bridge *br, in __br_fdb_add() argument
852 if (ndm->ndm_flags & NTF_USE) { in __br_fdb_add()
863 } else if (ndm->ndm_flags & NTF_EXT_LEARNED) { in __br_fdb_add()
867 err = fdb_add_entry(br, p, addr, ndm->ndm_state, in __br_fdb_add()
876 int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], in br_fdb_add() argument
886 trace_br_fdb_add(ndm, dev, addr, vid, nlh_flags); in br_fdb_add()
888 if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE))) { in br_fdb_add()
889 pr_info("bridge: RTM_NEWNEIGH with invalid state %#x\n", ndm->ndm_state); in br_fdb_add()
920 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, vid); in br_fdb_add()
922 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, 0); in br_fdb_add()
933 err = __br_fdb_add(ndm, br, p, addr, nlh_flags, v->vid); in br_fdb_add()
972 int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], in br_fdb_delete() argument