mirror_frr/zebra/rtread_netlink.c
vivek 2232a77c2b zebra: MAC and Neighbor (ARP/ND) handling
Implement handling of MACs and Neighbors (ARP/ND entries) in zebra:
- MAC and Neighbor database handlers
- Read MACs and Neighbors from the kernel, when needed and create
entries in zebra's MAC and Neighbor databases.
- Handle add/update/delete notifications from the kernel for MACs and
Neighbors and update zebra's database appropriately
- Inform locally learnt MACs and Neighbors to client
- Handle MACIP add/delete from client and install appriporiate entries
into the kernel
- Since Neighbor entries will be installed on an SVI, implement the
needed mappings

NOTE: kernel interface is only implemented for Linux/netlink

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 12:29:25 -04:00

53 lines
1.4 KiB
C

/*
* Kernel routing table readup by netlink
* Copyright (C) 1998 Kunihiro Ishiguro
*
* This file is part of GNU Zebra.
*
* GNU Zebra is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* GNU Zebra is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; see the file COPYING; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <zebra.h>
#include "vty.h"
#include "zebra/zserv.h"
#include "zebra/rt_netlink.h"
void route_read (struct zebra_ns *zns)
{
netlink_route_read (zns);
}
void macfdb_read (struct zebra_ns *zns)
{
netlink_macfdb_read (zns);
}
void macfdb_read_for_bridge (struct zebra_ns *zns, struct interface *ifp,
struct interface *br_if)
{
netlink_macfdb_read_for_bridge (zns, ifp, br_if);
}
void neigh_read (struct zebra_ns *zns)
{
netlink_neigh_read (zns);
}
void neigh_read_for_vlan (struct zebra_ns *zns, struct interface *vlan_if)
{
netlink_neigh_read_for_vlan (zns, vlan_if);
}