ndm 12284 drivers/net/ethernet/intel/i40e/i40e_main.c static int i40e_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 12305 drivers/net/ethernet/intel/i40e/i40e_main.c if (ndm->ndm_state && !(ndm->ndm_state & NUD_PERMANENT)) { ndm 3360 drivers/net/ethernet/intel/ice/ice_main.c ice_fdb_add(struct ndmsg *ndm, struct nlattr __always_unused *tb[], ndm 3370 drivers/net/ethernet/intel/ice/ice_main.c if (ndm->ndm_state && !(ndm->ndm_state & NUD_PERMANENT)) { ndm 3398 drivers/net/ethernet/intel/ice/ice_main.c ice_fdb_del(struct ndmsg *ndm, __always_unused struct nlattr *tb[], ndm 3404 drivers/net/ethernet/intel/ice/ice_main.c if (ndm->ndm_state & NUD_PERMANENT) { ndm 2489 drivers/net/ethernet/intel/igb/igb_main.c static int igb_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 2504 drivers/net/ethernet/intel/igb/igb_main.c return ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, flags); ndm 9922 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 9937 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c return ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, flags); ndm 768 drivers/net/ethernet/mscc/ocelot.c static int ocelot_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 794 drivers/net/ethernet/mscc/ocelot.c static int ocelot_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], ndm 817 drivers/net/ethernet/mscc/ocelot.c struct ndmsg *ndm; ndm 823 drivers/net/ethernet/mscc/ocelot.c sizeof(*ndm), NLM_F_MULTI); ndm 827 drivers/net/ethernet/mscc/ocelot.c ndm = nlmsg_data(nlh); ndm 828 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_family = AF_BRIDGE; ndm 829 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_pad1 = 0; ndm 830 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_pad2 = 0; ndm 831 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_flags = NTF_SELF; ndm 832 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_type = 0; ndm 833 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_ifindex = dump->dev->ifindex; ndm 834 drivers/net/ethernet/mscc/ocelot.c ndm->ndm_state = NUD_REACHABLE; ndm 372 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c static int qlcnic_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], ndm 380 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c return ndo_dflt_fdb_del(ndm, tb, netdev, addr, vid); ndm 397 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c static int qlcnic_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 406 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c return ndo_dflt_fdb_add(ndm, tb, netdev, addr, vid, flags); ndm 973 drivers/net/macvlan.c static int macvlan_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 999 drivers/net/macvlan.c static int macvlan_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], ndm 255 drivers/net/vxlan.c struct ndmsg *ndm; ndm 258 drivers/net/vxlan.c nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags); ndm 262 drivers/net/vxlan.c ndm = nlmsg_data(nlh); ndm 263 drivers/net/vxlan.c memset(ndm, 0, sizeof(*ndm)); ndm 270 drivers/net/vxlan.c ndm->ndm_family = send_ip ? rdst->remote_ip.sa.sa_family : AF_INET; ndm 272 drivers/net/vxlan.c ndm->ndm_family = AF_BRIDGE; ndm 273 drivers/net/vxlan.c ndm->ndm_state = fdb->state; ndm 274 drivers/net/vxlan.c ndm->ndm_ifindex = vxlan->dev->ifindex; ndm 275 drivers/net/vxlan.c ndm->ndm_flags = fdb->flags; ndm 277 drivers/net/vxlan.c ndm->ndm_flags |= NTF_OFFLOADED; ndm 278 drivers/net/vxlan.c ndm->ndm_type = RTN_UNICAST; ndm 1116 drivers/net/vxlan.c static int vxlan_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 1130 drivers/net/vxlan.c if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_REACHABLE))) { ndm 1132 drivers/net/vxlan.c ndm->ndm_state); ndm 1148 drivers/net/vxlan.c err = vxlan_fdb_update(vxlan, addr, &ip, ndm->ndm_state, flags, ndm 1150 drivers/net/vxlan.c ndm->ndm_flags | NTF_VXLAN_ADDED_BY_USER, ndm 1191 drivers/net/vxlan.c static int vxlan_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], ndm 314 drivers/staging/fsl-dpaa2/ethsw/ethsw.c static int port_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 327 drivers/staging/fsl-dpaa2/ethsw/ethsw.c static int port_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], ndm 566 drivers/staging/fsl-dpaa2/ethsw/ethsw.c struct ndmsg *ndm; ndm 572 drivers/staging/fsl-dpaa2/ethsw/ethsw.c sizeof(*ndm), NLM_F_MULTI); ndm 576 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm = nlmsg_data(nlh); ndm 577 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_family = AF_BRIDGE; ndm 578 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_pad1 = 0; ndm 579 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_pad2 = 0; ndm 580 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_flags = NTF_SELF; ndm 581 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_type = 0; ndm 582 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_ifindex = dump->dev->ifindex; ndm 583 drivers/staging/fsl-dpaa2/ethsw/ethsw.c ndm->ndm_state = is_dynamic ? NUD_REACHABLE : NUD_NOARP; ndm 1375 include/linux/netdevice.h int (*ndo_fdb_add)(struct ndmsg *ndm, ndm 1382 include/linux/netdevice.h int (*ndo_fdb_del)(struct ndmsg *ndm, ndm 118 include/linux/rtnetlink.h extern int ndo_dflt_fdb_add(struct ndmsg *ndm, ndm 124 include/linux/rtnetlink.h extern int ndo_dflt_fdb_del(struct ndmsg *ndm, ndm 14 include/trace/events/bridge.h TP_PROTO(struct ndmsg *ndm, struct net_device *dev, ndm 17 include/trace/events/bridge.h TP_ARGS(ndm, dev, addr, vid, nlh_flags), ndm 32 include/trace/events/bridge.h __entry->ndm_flags = ndm->ndm_flags; ndm 636 net/bridge/br_fdb.c struct ndmsg *ndm; ndm 638 net/bridge/br_fdb.c nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags); ndm 642 net/bridge/br_fdb.c ndm = nlmsg_data(nlh); ndm 643 net/bridge/br_fdb.c ndm->ndm_family = AF_BRIDGE; ndm 644 net/bridge/br_fdb.c ndm->ndm_pad1 = 0; ndm 645 net/bridge/br_fdb.c ndm->ndm_pad2 = 0; ndm 646 net/bridge/br_fdb.c ndm->ndm_flags = 0; ndm 647 net/bridge/br_fdb.c ndm->ndm_type = 0; ndm 648 net/bridge/br_fdb.c ndm->ndm_ifindex = fdb->dst ? fdb->dst->dev->ifindex : br->dev->ifindex; ndm 649 net/bridge/br_fdb.c ndm->ndm_state = fdb_to_nud(br, fdb); ndm 652 net/bridge/br_fdb.c ndm->ndm_flags |= NTF_OFFLOADED; ndm 654 net/bridge/br_fdb.c ndm->ndm_flags |= NTF_EXT_LEARNED; ndm 656 net/bridge/br_fdb.c ndm->ndm_flags |= NTF_STICKY; ndm 881 net/bridge/br_fdb.c static int __br_fdb_add(struct ndmsg *ndm, struct net_bridge *br, ndm 887 net/bridge/br_fdb.c if (ndm->ndm_flags & NTF_USE) { ndm 898 net/bridge/br_fdb.c } else if (ndm->ndm_flags & NTF_EXT_LEARNED) { ndm 902 net/bridge/br_fdb.c err = fdb_add_entry(br, p, addr, ndm->ndm_state, ndm 903 net/bridge/br_fdb.c nlh_flags, vid, ndm->ndm_flags); ndm 911 net/bridge/br_fdb.c int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 922 net/bridge/br_fdb.c trace_br_fdb_add(ndm, dev, addr, vid, nlh_flags); ndm 924 net/bridge/br_fdb.c if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE))) { ndm 925 net/bridge/br_fdb.c pr_info("bridge: RTM_NEWNEIGH with invalid state %#x\n", ndm->ndm_state); ndm 956 net/bridge/br_fdb.c err = __br_fdb_add(ndm, br, p, addr, nlh_flags, vid); ndm 958 net/bridge/br_fdb.c err = __br_fdb_add(ndm, br, p, addr, nlh_flags, 0); ndm 969 net/bridge/br_fdb.c err = __br_fdb_add(ndm, br, p, addr, nlh_flags, v->vid); ndm 1008 net/bridge/br_fdb.c int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], ndm 571 net/bridge/br_private.h int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], ndm 1788 net/core/neighbour.c struct ndmsg *ndm; ndm 1796 net/core/neighbour.c if (nlmsg_len(nlh) < sizeof(*ndm)) ndm 1799 net/core/neighbour.c dst_attr = nlmsg_find_attr(nlh, sizeof(*ndm), NDA_DST); ndm 1805 net/core/neighbour.c ndm = nlmsg_data(nlh); ndm 1806 net/core/neighbour.c if (ndm->ndm_ifindex) { ndm 1807 net/core/neighbour.c dev = __dev_get_by_index(net, ndm->ndm_ifindex); ndm 1814 net/core/neighbour.c tbl = neigh_find_table(ndm->ndm_family); ndm 1823 net/core/neighbour.c if (ndm->ndm_flags & NTF_PROXY) { ndm 1855 net/core/neighbour.c struct ndmsg *ndm; ndm 1865 net/core/neighbour.c err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, ndm 1876 net/core/neighbour.c ndm = nlmsg_data(nlh); ndm 1877 net/core/neighbour.c if (ndm->ndm_ifindex) { ndm 1878 net/core/neighbour.c dev = __dev_get_by_index(net, ndm->ndm_ifindex); ndm 1890 net/core/neighbour.c tbl = neigh_find_table(ndm->ndm_family); ndm 1905 net/core/neighbour.c if (ndm->ndm_flags & NTF_PROXY) { ndm 1911 net/core/neighbour.c pn->flags = ndm->ndm_flags; ndm 1938 net/core/neighbour.c exempt_from_gc = ndm->ndm_state & NUD_PERMANENT || ndm 1939 net/core/neighbour.c ndm->ndm_flags & NTF_EXT_LEARNED; ndm 1960 net/core/neighbour.c if (ndm->ndm_flags & NTF_EXT_LEARNED) ndm 1963 net/core/neighbour.c if (ndm->ndm_flags & NTF_ROUTER) ndm 1966 net/core/neighbour.c if (ndm->ndm_flags & NTF_USE) { ndm 1970 net/core/neighbour.c err = __neigh_update(neigh, lladdr, ndm->ndm_state, flags, ndm 2428 net/core/neighbour.c struct ndmsg *ndm; ndm 2430 net/core/neighbour.c nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), flags); ndm 2434 net/core/neighbour.c ndm = nlmsg_data(nlh); ndm 2435 net/core/neighbour.c ndm->ndm_family = neigh->ops->family; ndm 2436 net/core/neighbour.c ndm->ndm_pad1 = 0; ndm 2437 net/core/neighbour.c ndm->ndm_pad2 = 0; ndm 2438 net/core/neighbour.c ndm->ndm_flags = neigh->flags; ndm 2439 net/core/neighbour.c ndm->ndm_type = neigh->type; ndm 2440 net/core/neighbour.c ndm->ndm_ifindex = neigh->dev->ifindex; ndm 2446 net/core/neighbour.c ndm->ndm_state = neigh->nud_state; ndm 2483 net/core/neighbour.c struct ndmsg *ndm; ndm 2485 net/core/neighbour.c nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), flags); ndm 2489 net/core/neighbour.c ndm = nlmsg_data(nlh); ndm 2490 net/core/neighbour.c ndm->ndm_family = tbl->family; ndm 2491 net/core/neighbour.c ndm->ndm_pad1 = 0; ndm 2492 net/core/neighbour.c ndm->ndm_pad2 = 0; ndm 2493 net/core/neighbour.c ndm->ndm_flags = pn->flags | NTF_PROXY; ndm 2494 net/core/neighbour.c ndm->ndm_type = RTN_UNICAST; ndm 2495 net/core/neighbour.c ndm->ndm_ifindex = pn->dev ? pn->dev->ifindex : 0; ndm 2496 net/core/neighbour.c ndm->ndm_state = NUD_NONE; ndm 2646 net/core/neighbour.c struct ndmsg *ndm; ndm 2648 net/core/neighbour.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) { ndm 2653 net/core/neighbour.c ndm = nlmsg_data(nlh); ndm 2654 net/core/neighbour.c if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_ifindex || ndm 2655 net/core/neighbour.c ndm->ndm_state || ndm->ndm_type) { ndm 2660 net/core/neighbour.c if (ndm->ndm_flags & ~NTF_PROXY) { ndm 2750 net/core/neighbour.c struct ndmsg *ndm; ndm 2753 net/core/neighbour.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) { ndm 2758 net/core/neighbour.c ndm = nlmsg_data(nlh); ndm 2759 net/core/neighbour.c if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_state || ndm 2760 net/core/neighbour.c ndm->ndm_type) { ndm 2765 net/core/neighbour.c if (ndm->ndm_flags & ~NTF_PROXY) { ndm 2775 net/core/neighbour.c *ndm_flags = ndm->ndm_flags; ndm 2776 net/core/neighbour.c *dev_idx = ndm->ndm_ifindex; ndm 2777 net/core/neighbour.c *tbl = neigh_find_table(ndm->ndm_family); ndm 3562 net/core/rtnetlink.c struct ndmsg *ndm; ndm 3564 net/core/rtnetlink.c nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), nlflags); ndm 3568 net/core/rtnetlink.c ndm = nlmsg_data(nlh); ndm 3569 net/core/rtnetlink.c ndm->ndm_family = AF_BRIDGE; ndm 3570 net/core/rtnetlink.c ndm->ndm_pad1 = 0; ndm 3571 net/core/rtnetlink.c ndm->ndm_pad2 = 0; ndm 3572 net/core/rtnetlink.c ndm->ndm_flags = flags; ndm 3573 net/core/rtnetlink.c ndm->ndm_type = 0; ndm 3574 net/core/rtnetlink.c ndm->ndm_ifindex = dev->ifindex; ndm 3575 net/core/rtnetlink.c ndm->ndm_state = ndm_state; ndm 3626 net/core/rtnetlink.c int ndo_dflt_fdb_add(struct ndmsg *ndm, ndm 3637 net/core/rtnetlink.c if (ndm->ndm_state && !(ndm->ndm_state & NUD_PERMANENT)) { ndm 3686 net/core/rtnetlink.c struct ndmsg *ndm; ndm 3693 net/core/rtnetlink.c err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, ndm 3698 net/core/rtnetlink.c ndm = nlmsg_data(nlh); ndm 3699 net/core/rtnetlink.c if (ndm->ndm_ifindex == 0) { ndm 3704 net/core/rtnetlink.c dev = __dev_get_by_index(net, ndm->ndm_ifindex); ndm 3729 net/core/rtnetlink.c if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && ndm 3734 net/core/rtnetlink.c err = ops->ndo_fdb_add(ndm, tb, dev, addr, vid, ndm 3739 net/core/rtnetlink.c ndm->ndm_flags &= ~NTF_MASTER; ndm 3743 net/core/rtnetlink.c if ((ndm->ndm_flags & NTF_SELF)) { ndm 3745 net/core/rtnetlink.c err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, ndm 3750 net/core/rtnetlink.c err = ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, ndm 3755 net/core/rtnetlink.c ndm->ndm_state); ndm 3756 net/core/rtnetlink.c ndm->ndm_flags &= ~NTF_SELF; ndm 3766 net/core/rtnetlink.c int ndo_dflt_fdb_del(struct ndmsg *ndm, ndm 3776 net/core/rtnetlink.c if (!(ndm->ndm_state & NUD_PERMANENT)) { ndm 3794 net/core/rtnetlink.c struct ndmsg *ndm; ndm 3804 net/core/rtnetlink.c err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, ndm 3809 net/core/rtnetlink.c ndm = nlmsg_data(nlh); ndm 3810 net/core/rtnetlink.c if (ndm->ndm_ifindex == 0) { ndm 3815 net/core/rtnetlink.c dev = __dev_get_by_index(net, ndm->ndm_ifindex); ndm 3840 net/core/rtnetlink.c if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && ndm 3846 net/core/rtnetlink.c err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); ndm 3851 net/core/rtnetlink.c ndm->ndm_flags &= ~NTF_MASTER; ndm 3855 net/core/rtnetlink.c if (ndm->ndm_flags & NTF_SELF) { ndm 3857 net/core/rtnetlink.c err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, ndm 3860 net/core/rtnetlink.c err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); ndm 3864 net/core/rtnetlink.c ndm->ndm_state); ndm 3865 net/core/rtnetlink.c ndm->ndm_flags &= ~NTF_SELF; ndm 3939 net/core/rtnetlink.c struct ndmsg *ndm; ndm 3942 net/core/rtnetlink.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) { ndm 3947 net/core/rtnetlink.c ndm = nlmsg_data(nlh); ndm 3948 net/core/rtnetlink.c if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_state || ndm 3949 net/core/rtnetlink.c ndm->ndm_flags || ndm->ndm_type) { ndm 3959 net/core/rtnetlink.c *brport_idx = ndm->ndm_ifindex; ndm 4128 net/core/rtnetlink.c struct ndmsg *ndm; ndm 4131 net/core/rtnetlink.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) { ndm 4136 net/core/rtnetlink.c ndm = nlmsg_data(nlh); ndm 4137 net/core/rtnetlink.c if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_state || ndm 4138 net/core/rtnetlink.c ndm->ndm_type) { ndm 4143 net/core/rtnetlink.c if (ndm->ndm_flags & ~(NTF_MASTER | NTF_SELF)) { ndm 4153 net/core/rtnetlink.c *ndm_flags = ndm->ndm_flags; ndm 4154 net/core/rtnetlink.c *brport_idx = ndm->ndm_ifindex; ndm 89 net/dsa/dsa_priv.h int dsa_legacy_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 94 net/dsa/dsa_priv.h int dsa_legacy_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], ndm 198 net/dsa/slave.c struct ndmsg *ndm; ndm 204 net/dsa/slave.c sizeof(*ndm), NLM_F_MULTI); ndm 208 net/dsa/slave.c ndm = nlmsg_data(nlh); ndm 209 net/dsa/slave.c ndm->ndm_family = AF_BRIDGE; ndm 210 net/dsa/slave.c ndm->ndm_pad1 = 0; ndm 211 net/dsa/slave.c ndm->ndm_pad2 = 0; ndm 212 net/dsa/slave.c ndm->ndm_flags = NTF_SELF; ndm 213 net/dsa/slave.c ndm->ndm_type = 0; ndm 214 net/dsa/slave.c ndm->ndm_ifindex = dump->dev->ifindex; ndm 215 net/dsa/slave.c ndm->ndm_state = is_static ? NUD_NOARP : NUD_REACHABLE; ndm 1197 net/dsa/slave.c int dsa_legacy_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], ndm 1208 net/dsa/slave.c int dsa_legacy_fdb_del(struct ndmsg *ndm, struct nlattr *tb[],