]>
Commit | Line | Data |
---|---|---|
78deec45 AS |
1 | /* Header file exported by rt_netlink.c to zebra. |
2 | * Copyright (C) 1997, 98, 99 Kunihiro Ishiguro | |
3 | * | |
4 | * This file is part of GNU Zebra. | |
5 | * | |
6 | * GNU Zebra is free software; you can redistribute it and/or modify it | |
7 | * under the terms of the GNU General Public License as published by the | |
8 | * Free Software Foundation; either version 2, or (at your option) any | |
9 | * later version. | |
10 | * | |
11 | * GNU Zebra is distributed in the hope that it will be useful, but | |
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * General Public License for more details. | |
15 | * | |
896014f4 DL |
16 | * You should have received a copy of the GNU General Public License along |
17 | * with this program; see the file COPYING; if not, write to the Free Software | |
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
78deec45 AS |
19 | */ |
20 | ||
21 | #ifndef _ZEBRA_RT_NETLINK_H | |
22 | #define _ZEBRA_RT_NETLINK_H | |
23 | ||
24 | #ifdef HAVE_NETLINK | |
25 | ||
be0dba35 | 26 | #include "zebra/zebra_mpls.h" |
16c628de | 27 | #include "zebra/zebra_dplane.h" |
be0dba35 | 28 | |
51e94aa7 EDP |
29 | #ifdef __cplusplus |
30 | extern "C" { | |
31 | #endif | |
32 | ||
1f5705f0 | 33 | #define NL_DEFAULT_ROUTE_METRIC 20 |
78deec45 | 34 | |
6977eb91 DS |
35 | /* |
36 | * Additional protocol strings to push into routes | |
37 | * If we add anything new here please make sure | |
38 | * to update: | |
39 | * zebra2proto Function | |
40 | * proto2zebra Function | |
41 | * is_selfroute Function | |
42 | * tools/frr To flush the route upon exit | |
43 | * | |
44 | * Finally update this file to allow iproute2 to | |
45 | * know about this new route. | |
46 | * tools/etc/iproute2/rt_protos.d | |
47 | */ | |
23b1f334 DD |
48 | #define RTPROT_BGP 186 |
49 | #define RTPROT_ISIS 187 | |
50 | #define RTPROT_OSPF 188 | |
51 | #define RTPROT_RIP 189 | |
52 | #define RTPROT_RIPNG 190 | |
fb533f22 | 53 | #if !defined(RTPROT_BABEL) |
6977eb91 | 54 | #define RTPROT_BABEL 42 |
fb533f22 | 55 | #endif |
1f047d8d DS |
56 | #define RTPROT_NHRP 191 |
57 | #define RTPROT_EIGRP 192 | |
58 | #define RTPROT_LDP 193 | |
8a71d93d | 59 | #define RTPROT_SHARP 194 |
0761368a | 60 | #define RTPROT_PBR 195 |
d4d71f11 | 61 | #define RTPROT_ZSTATIC 196 |
da82f6b4 | 62 | #define RTPROT_OPENFABRIC 197 |
23b1f334 | 63 | |
d62a17ae | 64 | void rt_netlink_init(void); |
23b1f334 | 65 | |
16c628de | 66 | /* MPLS label forwarding table change, using dataplane context information. */ |
fc608372 | 67 | extern int netlink_mpls_multipath(int cmd, struct zebra_dplane_ctx *ctx); |
16c628de | 68 | |
2414abd3 | 69 | extern int netlink_route_change(struct nlmsghdr *h, ns_id_t ns_id, int startup); |
d62a17ae | 70 | extern int netlink_route_read(struct zebra_ns *zns); |
78deec45 | 71 | |
d9f5b2f5 SW |
72 | extern int netlink_nexthop_change(struct nlmsghdr *h, ns_id_t ns_id, |
73 | int startup); | |
74 | extern int netlink_nexthop_read(struct zebra_ns *zns); | |
75 | ||
2414abd3 | 76 | extern int netlink_neigh_change(struct nlmsghdr *h, ns_id_t ns_id); |
d62a17ae | 77 | extern int netlink_macfdb_read(struct zebra_ns *zns); |
78 | extern int netlink_macfdb_read_for_bridge(struct zebra_ns *zns, | |
79 | struct interface *ifp, | |
80 | struct interface *br_if); | |
81 | extern int netlink_neigh_read(struct zebra_ns *zns); | |
82 | extern int netlink_neigh_read_for_vlan(struct zebra_ns *zns, | |
83 | struct interface *vlan_if); | |
67fb9374 CS |
84 | extern int netlink_macfdb_read_specific_mac(struct zebra_ns *zns, |
85 | struct interface *br_if, | |
86 | struct ethaddr *mac, uint16_t vid); | |
87 | extern int netlink_neigh_read_specific_ip(struct ipaddr *ip, | |
88 | struct interface *vlan_if); | |
2232a77c | 89 | |
51e94aa7 EDP |
90 | #ifdef __cplusplus |
91 | } | |
92 | #endif | |
93 | ||
78deec45 AS |
94 | #endif /* HAVE_NETLINK */ |
95 | ||
96 | #endif /* _ZEBRA_RT_NETLINK_H */ |