mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-24 16:26:43 +00:00
2005-10-26 Paul Jakma <paul.jakma@sun.com>
* (general) static/extern functions and definitions. * rip_interface.h: new file, export the public functions from rip_interface.c
This commit is contained in:
parent
e029d44858
commit
dc63bfd495
@ -1,3 +1,9 @@
|
||||
2005-10-26 Paul Jakma <paul.jakma@sun.com>
|
||||
|
||||
* (general) static/extern functions and definitions.
|
||||
* rip_interface.h: new file, export the public functions from
|
||||
rip_interface.c
|
||||
|
||||
2005-10-17 Vincent Jardin <vincent.jardin@6wind.com>
|
||||
|
||||
* ripd.c: rip_create_socket() for each packet, it does not bind to the
|
||||
|
||||
@ -210,7 +210,7 @@ struct cmd_node debug_node =
|
||||
1
|
||||
};
|
||||
|
||||
int
|
||||
static int
|
||||
config_write_debug (struct vty *vty)
|
||||
{
|
||||
int write = 0;
|
||||
@ -251,7 +251,7 @@ config_write_debug (struct vty *vty)
|
||||
}
|
||||
|
||||
void
|
||||
rip_debug_reset ()
|
||||
rip_debug_reset (void)
|
||||
{
|
||||
rip_debug_event = 0;
|
||||
rip_debug_packet = 0;
|
||||
@ -259,7 +259,7 @@ rip_debug_reset ()
|
||||
}
|
||||
|
||||
void
|
||||
rip_debug_init ()
|
||||
rip_debug_init (void)
|
||||
{
|
||||
rip_debug_event = 0;
|
||||
rip_debug_packet = 0;
|
||||
|
||||
@ -48,7 +48,7 @@ extern unsigned long rip_debug_event;
|
||||
extern unsigned long rip_debug_packet;
|
||||
extern unsigned long rip_debug_zebra;
|
||||
|
||||
void rip_debug_init ();
|
||||
void rip_debug_reset ();
|
||||
extern void rip_debug_init (void);
|
||||
extern void rip_debug_reset (void);
|
||||
|
||||
#endif /* _ZEBRA_RIP_DEBUG_H */
|
||||
|
||||
@ -40,15 +40,16 @@
|
||||
|
||||
#include "ripd/ripd.h"
|
||||
#include "ripd/rip_debug.h"
|
||||
|
||||
void rip_enable_apply (struct interface *);
|
||||
void rip_passive_interface_apply (struct interface *);
|
||||
int rip_if_down(struct interface *ifp);
|
||||
int rip_enable_if_lookup (const char *ifname);
|
||||
int rip_enable_network_lookup2 (struct connected *connected);
|
||||
void rip_enable_apply_all ();
|
||||
|
||||
|
||||
#include "ripd/rip_interface.h"
|
||||
|
||||
/* static prototypes */
|
||||
static void rip_enable_apply (struct interface *);
|
||||
static void rip_passive_interface_apply (struct interface *);
|
||||
static int rip_if_down(struct interface *ifp);
|
||||
static int rip_enable_if_lookup (const char *ifname);
|
||||
static int rip_enable_network_lookup2 (struct connected *connected);
|
||||
static void rip_enable_apply_all (void);
|
||||
|
||||
struct message ri_version_msg[] =
|
||||
{
|
||||
{RI_RIP_VERSION_1, "1"},
|
||||
@ -70,7 +71,7 @@ static int passive_default; /* are we in passive-interface default mode? */
|
||||
vector Vrip_passive_nondefault;
|
||||
|
||||
/* Join to the RIP version 2 multicast group. */
|
||||
int
|
||||
static int
|
||||
ipv4_multicast_join (int sock,
|
||||
struct in_addr group,
|
||||
struct in_addr ifa,
|
||||
@ -92,7 +93,7 @@ ipv4_multicast_join (int sock,
|
||||
}
|
||||
|
||||
/* Leave from the RIP version 2 multicast group. */
|
||||
int
|
||||
static int
|
||||
ipv4_multicast_leave (int sock,
|
||||
struct in_addr group,
|
||||
struct in_addr ifa,
|
||||
@ -113,8 +114,8 @@ ipv4_multicast_leave (int sock,
|
||||
}
|
||||
|
||||
/* Allocate new RIP's interface configuration. */
|
||||
struct rip_interface *
|
||||
rip_interface_new ()
|
||||
static struct rip_interface *
|
||||
rip_interface_new (void)
|
||||
{
|
||||
struct rip_interface *ri;
|
||||
|
||||
@ -164,7 +165,7 @@ rip_interface_multicast_set (int sock, struct connected *connected)
|
||||
}
|
||||
|
||||
/* Send RIP request packet to specified interface. */
|
||||
void
|
||||
static void
|
||||
rip_request_interface_send (struct interface *ifp, u_char version)
|
||||
{
|
||||
struct sockaddr_in to;
|
||||
@ -214,7 +215,7 @@ rip_request_interface_send (struct interface *ifp, u_char version)
|
||||
}
|
||||
|
||||
/* This will be executed when interface goes up. */
|
||||
void
|
||||
static void
|
||||
rip_request_interface (struct interface *ifp)
|
||||
{
|
||||
struct rip_interface *ri;
|
||||
@ -244,7 +245,7 @@ rip_request_interface (struct interface *ifp)
|
||||
}
|
||||
|
||||
/* Send RIP request to the neighbor. */
|
||||
void
|
||||
static void
|
||||
rip_request_neighbor (struct in_addr addr)
|
||||
{
|
||||
struct sockaddr_in to;
|
||||
@ -257,8 +258,8 @@ rip_request_neighbor (struct in_addr addr)
|
||||
}
|
||||
|
||||
/* Request routes at all interfaces. */
|
||||
void
|
||||
rip_request_neighbor_all ()
|
||||
static void
|
||||
rip_request_neighbor_all (void)
|
||||
{
|
||||
struct route_node *rp;
|
||||
|
||||
@ -275,7 +276,7 @@ rip_request_neighbor_all ()
|
||||
}
|
||||
|
||||
/* Multicast packet receive socket. */
|
||||
int
|
||||
static int
|
||||
rip_multicast_join (struct interface *ifp, int sock)
|
||||
{
|
||||
struct listnode *cnode;
|
||||
@ -307,7 +308,7 @@ rip_multicast_join (struct interface *ifp, int sock)
|
||||
}
|
||||
|
||||
/* Leave from multicast group. */
|
||||
void
|
||||
static void
|
||||
rip_multicast_leave (struct interface *ifp, int sock)
|
||||
{
|
||||
struct listnode *cnode;
|
||||
@ -336,7 +337,7 @@ rip_multicast_leave (struct interface *ifp, int sock)
|
||||
}
|
||||
|
||||
/* Is there and address on interface that I could use ? */
|
||||
int
|
||||
static int
|
||||
rip_if_ipv4_address_check (struct interface *ifp)
|
||||
{
|
||||
struct listnode *nn;
|
||||
@ -553,7 +554,7 @@ rip_interface_delete (int command, struct zclient *zclient,
|
||||
}
|
||||
|
||||
void
|
||||
rip_interface_clean ()
|
||||
rip_interface_clean (void)
|
||||
{
|
||||
struct listnode *node;
|
||||
struct interface *ifp;
|
||||
@ -576,7 +577,7 @@ rip_interface_clean ()
|
||||
}
|
||||
|
||||
void
|
||||
rip_interface_reset ()
|
||||
rip_interface_reset (void)
|
||||
{
|
||||
struct listnode *node;
|
||||
struct interface *ifp;
|
||||
@ -694,7 +695,8 @@ rip_if_down_all ()
|
||||
}
|
||||
|
||||
static void
|
||||
rip_apply_address_add (struct connected *ifc) {
|
||||
rip_apply_address_add (struct connected *ifc)
|
||||
{
|
||||
struct prefix_ipv4 address;
|
||||
struct prefix *p;
|
||||
|
||||
@ -815,7 +817,7 @@ rip_interface_address_delete (int command, struct zclient *zclient,
|
||||
/* Check interface is enabled by network statement. */
|
||||
/* Check wether the interface has at least a connected prefix that
|
||||
* is within the ripng_enable_network table. */
|
||||
int
|
||||
static int
|
||||
rip_enable_network_lookup_if (struct interface *ifp)
|
||||
{
|
||||
struct listnode *node, *nnode;
|
||||
@ -876,7 +878,7 @@ rip_enable_network_lookup2 (struct connected *connected)
|
||||
return -1;
|
||||
}
|
||||
/* Add RIP enable network. */
|
||||
int
|
||||
static int
|
||||
rip_enable_network_add (struct prefix *p)
|
||||
{
|
||||
struct route_node *node;
|
||||
@ -898,7 +900,7 @@ rip_enable_network_add (struct prefix *p)
|
||||
}
|
||||
|
||||
/* Delete RIP enable network. */
|
||||
int
|
||||
static int
|
||||
rip_enable_network_delete (struct prefix *p)
|
||||
{
|
||||
struct route_node *node;
|
||||
@ -923,7 +925,7 @@ rip_enable_network_delete (struct prefix *p)
|
||||
}
|
||||
|
||||
/* Check interface is enabled by ifname statement. */
|
||||
int
|
||||
static int
|
||||
rip_enable_if_lookup (const char *ifname)
|
||||
{
|
||||
unsigned int i;
|
||||
@ -937,7 +939,7 @@ rip_enable_if_lookup (const char *ifname)
|
||||
}
|
||||
|
||||
/* Add interface to rip_enable_if. */
|
||||
int
|
||||
static int
|
||||
rip_enable_if_add (const char *ifname)
|
||||
{
|
||||
int ret;
|
||||
@ -954,7 +956,7 @@ rip_enable_if_add (const char *ifname)
|
||||
}
|
||||
|
||||
/* Delete interface from rip_enable_if. */
|
||||
int
|
||||
static int
|
||||
rip_enable_if_delete (const char *ifname)
|
||||
{
|
||||
int index;
|
||||
@ -974,7 +976,7 @@ rip_enable_if_delete (const char *ifname)
|
||||
}
|
||||
|
||||
/* Join to multicast group and send request to the interface. */
|
||||
int
|
||||
static int
|
||||
rip_interface_wakeup (struct thread *t)
|
||||
{
|
||||
struct interface *ifp;
|
||||
@ -1004,7 +1006,7 @@ rip_interface_wakeup (struct thread *t)
|
||||
|
||||
int rip_redistribute_check (int);
|
||||
|
||||
void
|
||||
static void
|
||||
rip_connect_set (struct interface *ifp, int set)
|
||||
{
|
||||
struct listnode *node, *nnode;
|
||||
@ -1140,7 +1142,7 @@ rip_neighbor_lookup (struct sockaddr_in *from)
|
||||
}
|
||||
|
||||
/* Add new RIP neighbor to the neighbor tree. */
|
||||
int
|
||||
static int
|
||||
rip_neighbor_add (struct prefix_ipv4 *p)
|
||||
{
|
||||
struct route_node *node;
|
||||
@ -1156,7 +1158,7 @@ rip_neighbor_add (struct prefix_ipv4 *p)
|
||||
}
|
||||
|
||||
/* Delete RIP neighbor from the neighbor tree. */
|
||||
int
|
||||
static int
|
||||
rip_neighbor_delete (struct prefix_ipv4 *p)
|
||||
{
|
||||
struct route_node *node;
|
||||
@ -1203,7 +1205,7 @@ rip_clean_network ()
|
||||
}
|
||||
|
||||
/* Utility function for looking up passive interface settings. */
|
||||
int
|
||||
static int
|
||||
rip_passive_nondefault_lookup (const char *ifname)
|
||||
{
|
||||
unsigned int i;
|
||||
@ -1230,8 +1232,8 @@ rip_passive_interface_apply (struct interface *ifp)
|
||||
zlog_debug ("interface %s: passive = %d",ifp->name,ri->passive);
|
||||
}
|
||||
|
||||
void
|
||||
rip_passive_interface_apply_all ()
|
||||
static void
|
||||
rip_passive_interface_apply_all (void)
|
||||
{
|
||||
struct interface *ifp;
|
||||
struct listnode *node, *nnode;
|
||||
@ -1241,7 +1243,7 @@ rip_passive_interface_apply_all ()
|
||||
}
|
||||
|
||||
/* Passive interface. */
|
||||
int
|
||||
static int
|
||||
rip_passive_nondefault_set (struct vty *vty, const char *ifname)
|
||||
{
|
||||
if (rip_passive_nondefault_lookup (ifname) >= 0)
|
||||
@ -1254,7 +1256,7 @@ rip_passive_nondefault_set (struct vty *vty, const char *ifname)
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_passive_nondefault_unset (struct vty *vty, const char *ifname)
|
||||
{
|
||||
int i;
|
||||
@ -1275,7 +1277,7 @@ rip_passive_nondefault_unset (struct vty *vty, const char *ifname)
|
||||
|
||||
/* Free all configured RIP passive-interface settings. */
|
||||
void
|
||||
rip_passive_nondefault_clean ()
|
||||
rip_passive_nondefault_clean (void)
|
||||
{
|
||||
unsigned int i;
|
||||
char *str;
|
||||
@ -1968,7 +1970,7 @@ DEFUN (no_rip_passive_interface,
|
||||
}
|
||||
|
||||
/* Write rip configuration of each interface. */
|
||||
int
|
||||
static int
|
||||
rip_interface_config_write (struct vty *vty)
|
||||
{
|
||||
struct listnode *node;
|
||||
@ -2109,7 +2111,7 @@ struct cmd_node interface_node =
|
||||
};
|
||||
|
||||
/* Called when interface structure allocated. */
|
||||
int
|
||||
static int
|
||||
rip_interface_new_hook (struct interface *ifp)
|
||||
{
|
||||
ifp->info = rip_interface_new ();
|
||||
@ -2117,7 +2119,7 @@ rip_interface_new_hook (struct interface *ifp)
|
||||
}
|
||||
|
||||
/* Called when interface structure deleted. */
|
||||
int
|
||||
static int
|
||||
rip_interface_delete_hook (struct interface *ifp)
|
||||
{
|
||||
XFREE (MTYPE_RIP_INTERFACE, ifp->info);
|
||||
@ -2127,7 +2129,7 @@ rip_interface_delete_hook (struct interface *ifp)
|
||||
|
||||
/* Allocate and initialize interface vector. */
|
||||
void
|
||||
rip_if_init ()
|
||||
rip_if_init (void)
|
||||
{
|
||||
/* Default initial size of interface vector. */
|
||||
if_init();
|
||||
|
||||
31
ripd/rip_interface.h
Normal file
31
ripd/rip_interface.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* RIP interface routines
|
||||
*
|
||||
* This file is part of Quagga
|
||||
*
|
||||
* Quagga 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.
|
||||
*
|
||||
* Quagga 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 Quagga; see the file COPYING. If not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef _QUAGGA_RIP_INTERFACE_H
|
||||
#define _QUAGGA_RIP_INTERFACE_H
|
||||
|
||||
extern int rip_interface_down (int , struct zclient *, zebra_size_t);
|
||||
extern int rip_interface_up (int , struct zclient *, zebra_size_t);
|
||||
extern int rip_interface_add (int , struct zclient *, zebra_size_t);
|
||||
extern int rip_interface_delete (int , struct zclient *, zebra_size_t);
|
||||
extern int rip_interface_address_add (int , struct zclient *, zebra_size_t);
|
||||
extern int rip_interface_address_delete (int , struct zclient *, zebra_size_t);
|
||||
|
||||
#endif /* _QUAGGA_RIP_INTERFACE_H */
|
||||
@ -123,7 +123,7 @@ Report bugs to %s\n", progname, ZEBRA_BUG_ADDRESS);
|
||||
}
|
||||
|
||||
/* SIGHUP handler. */
|
||||
void
|
||||
static void
|
||||
sighup (void)
|
||||
{
|
||||
zlog_info ("SIGHUP received");
|
||||
@ -141,7 +141,7 @@ sighup (void)
|
||||
}
|
||||
|
||||
/* SIGINT handler. */
|
||||
void
|
||||
static void
|
||||
sigint (void)
|
||||
{
|
||||
zlog_notice ("Terminating on signal");
|
||||
@ -153,13 +153,13 @@ sigint (void)
|
||||
}
|
||||
|
||||
/* SIGUSR1 handler. */
|
||||
void
|
||||
static void
|
||||
sigusr1 (void)
|
||||
{
|
||||
zlog_rotate (NULL);
|
||||
}
|
||||
|
||||
struct quagga_signal_t ripd_signals[] =
|
||||
static struct quagga_signal_t ripd_signals[] =
|
||||
{
|
||||
{
|
||||
.signal = SIGHUP,
|
||||
|
||||
@ -28,6 +28,8 @@
|
||||
#include "linklist.h"
|
||||
#include "memory.h"
|
||||
|
||||
#include "ripd/ripd.h"
|
||||
|
||||
#define RIP_OFFSET_LIST_IN 0
|
||||
#define RIP_OFFSET_LIST_OUT 1
|
||||
#define RIP_OFFSET_LIST_MAX 2
|
||||
@ -46,7 +48,7 @@ struct rip_offset_list
|
||||
|
||||
static struct list *rip_offset_list_master;
|
||||
|
||||
int
|
||||
static int
|
||||
strcmp_safe (const char *s1, const char *s2)
|
||||
{
|
||||
if (s1 == NULL && s2 == NULL)
|
||||
@ -58,8 +60,8 @@ strcmp_safe (const char *s1, const char *s2)
|
||||
return strcmp (s1, s2);
|
||||
}
|
||||
|
||||
struct rip_offset_list *
|
||||
rip_offset_list_new ()
|
||||
static struct rip_offset_list *
|
||||
rip_offset_list_new (void)
|
||||
{
|
||||
struct rip_offset_list *new;
|
||||
|
||||
@ -68,13 +70,13 @@ rip_offset_list_new ()
|
||||
return new;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_offset_list_free (struct rip_offset_list *offset)
|
||||
{
|
||||
XFREE (MTYPE_RIP_OFFSET_LIST, offset);
|
||||
}
|
||||
|
||||
struct rip_offset_list *
|
||||
static struct rip_offset_list *
|
||||
rip_offset_list_lookup (const char *ifname)
|
||||
{
|
||||
struct rip_offset_list *offset;
|
||||
@ -88,7 +90,7 @@ rip_offset_list_lookup (const char *ifname)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct rip_offset_list *
|
||||
static struct rip_offset_list *
|
||||
rip_offset_list_get (const char *ifname)
|
||||
{
|
||||
struct rip_offset_list *offset;
|
||||
@ -105,7 +107,7 @@ rip_offset_list_get (const char *ifname)
|
||||
return offset;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_offset_list_set (struct vty *vty, const char *alist, const char *direct_str,
|
||||
const char *metric_str, const char *ifname)
|
||||
{
|
||||
@ -143,7 +145,7 @@ rip_offset_list_set (struct vty *vty, const char *alist, const char *direct_str,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_offset_list_unset (struct vty *vty, const char *alist,
|
||||
const char *direct_str, const char *metric_str,
|
||||
const char *ifname)
|
||||
@ -334,13 +336,13 @@ DEFUN (no_rip_offset_list_ifname,
|
||||
return rip_offset_list_unset (vty, argv[0], argv[1], argv[2], argv[3]);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
offset_list_cmp (struct rip_offset_list *o1, struct rip_offset_list *o2)
|
||||
{
|
||||
return strcmp_safe (o1->ifname, o2->ifname);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
offset_list_del (struct rip_offset_list *offset)
|
||||
{
|
||||
if (OFFSET_LIST_IN_NAME (offset))
|
||||
|
||||
@ -33,8 +33,8 @@
|
||||
/* Linked list of RIP peer. */
|
||||
struct list *peer_list;
|
||||
|
||||
struct rip_peer *
|
||||
rip_peer_new ()
|
||||
static struct rip_peer *
|
||||
rip_peer_new (void)
|
||||
{
|
||||
struct rip_peer *new;
|
||||
|
||||
@ -43,7 +43,7 @@ rip_peer_new ()
|
||||
return new;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_peer_free (struct rip_peer *peer)
|
||||
{
|
||||
XFREE (MTYPE_RIP_PEER, peer);
|
||||
@ -78,7 +78,7 @@ rip_peer_lookup_next (struct in_addr *addr)
|
||||
}
|
||||
|
||||
/* RIP peer is timeout. */
|
||||
int
|
||||
static int
|
||||
rip_peer_timeout (struct thread *t)
|
||||
{
|
||||
struct rip_peer *peer;
|
||||
@ -91,7 +91,7 @@ rip_peer_timeout (struct thread *t)
|
||||
}
|
||||
|
||||
/* Get RIP peer. At the same time update timeout thread. */
|
||||
struct rip_peer *
|
||||
static struct rip_peer *
|
||||
rip_peer_get (struct in_addr *addr)
|
||||
{
|
||||
struct rip_peer *peer;
|
||||
@ -145,7 +145,7 @@ rip_peer_bad_packet (struct sockaddr_in *from)
|
||||
}
|
||||
|
||||
/* Display peer uptime. */
|
||||
char *
|
||||
static char *
|
||||
rip_peer_uptime (struct rip_peer *peer, char *buf, size_t len)
|
||||
{
|
||||
time_t uptime;
|
||||
@ -197,14 +197,14 @@ rip_peer_display (struct vty *vty)
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_peer_list_cmp (struct rip_peer *p1, struct rip_peer *p2)
|
||||
{
|
||||
return htonl (p1->addr.s_addr) > htonl (p2->addr.s_addr);
|
||||
}
|
||||
|
||||
void
|
||||
rip_peer_init ()
|
||||
rip_peer_init (void)
|
||||
{
|
||||
peer_list = list_new ();
|
||||
peer_list->cmp = (int (*)(void *, void *)) rip_peer_list_cmp;
|
||||
|
||||
@ -46,7 +46,7 @@ struct rip_metric_modifier
|
||||
};
|
||||
|
||||
/* Add rip route map rule. */
|
||||
int
|
||||
static int
|
||||
rip_route_match_add (struct vty *vty, struct route_map_index *index,
|
||||
const char *command, const char *arg)
|
||||
{
|
||||
@ -69,7 +69,7 @@ rip_route_match_add (struct vty *vty, struct route_map_index *index,
|
||||
}
|
||||
|
||||
/* Delete rip route map rule. */
|
||||
int
|
||||
static int
|
||||
rip_route_match_delete (struct vty *vty, struct route_map_index *index,
|
||||
const char *command, const char *arg)
|
||||
{
|
||||
@ -92,7 +92,7 @@ rip_route_match_delete (struct vty *vty, struct route_map_index *index,
|
||||
}
|
||||
|
||||
/* Add rip route map rule. */
|
||||
int
|
||||
static int
|
||||
rip_route_set_add (struct vty *vty, struct route_map_index *index,
|
||||
const char *command, const char *arg)
|
||||
{
|
||||
@ -121,7 +121,7 @@ rip_route_set_add (struct vty *vty, struct route_map_index *index,
|
||||
}
|
||||
|
||||
/* Delete rip route map rule. */
|
||||
int
|
||||
static int
|
||||
rip_route_set_delete (struct vty *vty, struct route_map_index *index,
|
||||
const char *command, const char *arg)
|
||||
{
|
||||
@ -145,7 +145,7 @@ rip_route_set_delete (struct vty *vty, struct route_map_index *index,
|
||||
|
||||
/* Hook function for updating route_map assignment. */
|
||||
/* ARGSUSED */
|
||||
void
|
||||
static void
|
||||
rip_route_map_update (const char *notused)
|
||||
{
|
||||
int i;
|
||||
@ -163,7 +163,7 @@ rip_route_map_update (const char *notused)
|
||||
|
||||
/* `match metric METRIC' */
|
||||
/* Match function return 1 if match is success else return zero. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_metric (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -189,7 +189,7 @@ route_match_metric (void *rule, struct prefix *prefix,
|
||||
}
|
||||
|
||||
/* Route map `match metric' match statement. `arg' is METRIC value */
|
||||
void *
|
||||
static void *
|
||||
route_match_metric_compile (const char *arg)
|
||||
{
|
||||
u_int32_t *metric;
|
||||
@ -205,7 +205,7 @@ route_match_metric_compile (const char *arg)
|
||||
}
|
||||
|
||||
/* Free route map's compiled `match metric' value. */
|
||||
void
|
||||
static void
|
||||
route_match_metric_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
@ -222,7 +222,7 @@ struct route_map_rule_cmd route_match_metric_cmd =
|
||||
|
||||
/* `match interface IFNAME' */
|
||||
/* Match function return 1 if match is success else return zero. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_interface (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -250,14 +250,14 @@ route_match_interface (void *rule, struct prefix *prefix,
|
||||
|
||||
/* Route map `match interface' match statement. `arg' is IFNAME value */
|
||||
/* XXX I don`t know if I need to check does interface exist? */
|
||||
void *
|
||||
static void *
|
||||
route_match_interface_compile (const char *arg)
|
||||
{
|
||||
return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
|
||||
}
|
||||
|
||||
/* Free route map's compiled `match interface' value. */
|
||||
void
|
||||
static void
|
||||
route_match_interface_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
@ -275,7 +275,7 @@ struct route_map_rule_cmd route_match_interface_cmd =
|
||||
/* `match ip next-hop IP_ACCESS_LIST' */
|
||||
|
||||
/* Match function return 1 if match is success else return zero. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_ip_next_hop (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -302,21 +302,21 @@ route_match_ip_next_hop (void *rule, struct prefix *prefix,
|
||||
|
||||
/* Route map `ip next-hop' match statement. `arg' should be
|
||||
access-list name. */
|
||||
void *
|
||||
static void *
|
||||
route_match_ip_next_hop_compile (const char *arg)
|
||||
{
|
||||
return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
|
||||
}
|
||||
|
||||
/* Free route map's compiled `. */
|
||||
void
|
||||
static void
|
||||
route_match_ip_next_hop_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
/* Route map commands for ip next-hop matching. */
|
||||
struct route_map_rule_cmd route_match_ip_next_hop_cmd =
|
||||
static struct route_map_rule_cmd route_match_ip_next_hop_cmd =
|
||||
{
|
||||
"ip next-hop",
|
||||
route_match_ip_next_hop,
|
||||
@ -326,7 +326,7 @@ struct route_map_rule_cmd route_match_ip_next_hop_cmd =
|
||||
|
||||
/* `match ip next-hop prefix-list PREFIX_LIST' */
|
||||
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_ip_next_hop_prefix_list (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -351,19 +351,19 @@ route_match_ip_next_hop_prefix_list (void *rule, struct prefix *prefix,
|
||||
return RMAP_NOMATCH;
|
||||
}
|
||||
|
||||
void *
|
||||
static void *
|
||||
route_match_ip_next_hop_prefix_list_compile (const char *arg)
|
||||
{
|
||||
return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
route_match_ip_next_hop_prefix_list_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd =
|
||||
static struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd =
|
||||
{
|
||||
"ip next-hop prefix-list",
|
||||
route_match_ip_next_hop_prefix_list,
|
||||
@ -375,7 +375,7 @@ struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd =
|
||||
|
||||
/* Match function should return 1 if match is success else return
|
||||
zero. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_ip_address (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -395,21 +395,21 @@ route_match_ip_address (void *rule, struct prefix *prefix,
|
||||
|
||||
/* Route map `ip address' match statement. `arg' should be
|
||||
access-list name. */
|
||||
void *
|
||||
static void *
|
||||
route_match_ip_address_compile (const char *arg)
|
||||
{
|
||||
return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
|
||||
}
|
||||
|
||||
/* Free route map's compiled `ip address' value. */
|
||||
void
|
||||
static void
|
||||
route_match_ip_address_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
/* Route map commands for ip address matching. */
|
||||
struct route_map_rule_cmd route_match_ip_address_cmd =
|
||||
static struct route_map_rule_cmd route_match_ip_address_cmd =
|
||||
{
|
||||
"ip address",
|
||||
route_match_ip_address,
|
||||
@ -419,7 +419,7 @@ struct route_map_rule_cmd route_match_ip_address_cmd =
|
||||
|
||||
/* `match ip address prefix-list PREFIX_LIST' */
|
||||
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_ip_address_prefix_list (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -437,19 +437,19 @@ route_match_ip_address_prefix_list (void *rule, struct prefix *prefix,
|
||||
return RMAP_NOMATCH;
|
||||
}
|
||||
|
||||
void *
|
||||
static void *
|
||||
route_match_ip_address_prefix_list_compile (const char *arg)
|
||||
{
|
||||
return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
route_match_ip_address_prefix_list_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd =
|
||||
static struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd =
|
||||
{
|
||||
"ip address prefix-list",
|
||||
route_match_ip_address_prefix_list,
|
||||
@ -459,7 +459,7 @@ struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd =
|
||||
|
||||
/* `match tag TAG' */
|
||||
/* Match function return 1 if match is success else return zero. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_match_tag (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -481,7 +481,7 @@ route_match_tag (void *rule, struct prefix *prefix,
|
||||
}
|
||||
|
||||
/* Route map `match tag' match statement. `arg' is TAG value */
|
||||
void *
|
||||
static void *
|
||||
route_match_tag_compile (const char *arg)
|
||||
{
|
||||
u_short *tag;
|
||||
@ -493,7 +493,7 @@ route_match_tag_compile (const char *arg)
|
||||
}
|
||||
|
||||
/* Free route map's compiled `match tag' value. */
|
||||
void
|
||||
static void
|
||||
route_match_tag_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
@ -511,7 +511,7 @@ struct route_map_rule_cmd route_match_tag_cmd =
|
||||
/* `set metric METRIC' */
|
||||
|
||||
/* Set metric to attribute. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_set_metric (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -541,7 +541,7 @@ route_set_metric (void *rule, struct prefix *prefix,
|
||||
}
|
||||
|
||||
/* set metric compilation. */
|
||||
void *
|
||||
static void *
|
||||
route_set_metric_compile (const char *arg)
|
||||
{
|
||||
int len;
|
||||
@ -592,14 +592,14 @@ route_set_metric_compile (const char *arg)
|
||||
}
|
||||
|
||||
/* Free route map's compiled `set metric' value. */
|
||||
void
|
||||
static void
|
||||
route_set_metric_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
/* Set metric rule structure. */
|
||||
struct route_map_rule_cmd route_set_metric_cmd =
|
||||
static struct route_map_rule_cmd route_set_metric_cmd =
|
||||
{
|
||||
"metric",
|
||||
route_set_metric,
|
||||
@ -610,7 +610,7 @@ struct route_map_rule_cmd route_set_metric_cmd =
|
||||
/* `set ip next-hop IP_ADDRESS' */
|
||||
|
||||
/* Set nexthop to object. ojbect must be pointer to struct attr. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_set_ip_nexthop (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -632,7 +632,7 @@ route_set_ip_nexthop (void *rule, struct prefix *prefix,
|
||||
|
||||
/* Route map `ip nexthop' compile function. Given string is converted
|
||||
to struct in_addr structure. */
|
||||
void *
|
||||
static void *
|
||||
route_set_ip_nexthop_compile (const char *arg)
|
||||
{
|
||||
int ret;
|
||||
@ -652,14 +652,14 @@ route_set_ip_nexthop_compile (const char *arg)
|
||||
}
|
||||
|
||||
/* Free route map's compiled `ip nexthop' value. */
|
||||
void
|
||||
static void
|
||||
route_set_ip_nexthop_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
/* Route map commands for ip nexthop set. */
|
||||
struct route_map_rule_cmd route_set_ip_nexthop_cmd =
|
||||
static struct route_map_rule_cmd route_set_ip_nexthop_cmd =
|
||||
{
|
||||
"ip next-hop",
|
||||
route_set_ip_nexthop,
|
||||
@ -670,7 +670,7 @@ struct route_map_rule_cmd route_set_ip_nexthop_cmd =
|
||||
/* `set tag TAG' */
|
||||
|
||||
/* Set tag to object. ojbect must be pointer to struct attr. */
|
||||
route_map_result_t
|
||||
static route_map_result_t
|
||||
route_set_tag (void *rule, struct prefix *prefix,
|
||||
route_map_object_t type, void *object)
|
||||
{
|
||||
@ -692,7 +692,7 @@ route_set_tag (void *rule, struct prefix *prefix,
|
||||
|
||||
/* Route map `tag' compile function. Given string is converted
|
||||
to u_short. */
|
||||
void *
|
||||
static void *
|
||||
route_set_tag_compile (const char *arg)
|
||||
{
|
||||
u_short *tag;
|
||||
@ -704,14 +704,14 @@ route_set_tag_compile (const char *arg)
|
||||
}
|
||||
|
||||
/* Free route map's compiled `ip nexthop' value. */
|
||||
void
|
||||
static void
|
||||
route_set_tag_free (void *rule)
|
||||
{
|
||||
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
|
||||
}
|
||||
|
||||
/* Route map commands for tag set. */
|
||||
struct route_map_rule_cmd route_set_tag_cmd =
|
||||
static struct route_map_rule_cmd route_set_tag_cmd =
|
||||
{
|
||||
"tag",
|
||||
route_set_tag,
|
||||
|
||||
@ -29,17 +29,10 @@
|
||||
#include "log.h"
|
||||
#include "ripd/ripd.h"
|
||||
#include "ripd/rip_debug.h"
|
||||
#include "ripd/rip_interface.h"
|
||||
|
||||
/* All information about zebra. */
|
||||
struct zclient *zclient = NULL;
|
||||
|
||||
/* Callback prototypes for zebra client service. */
|
||||
int rip_interface_add (int, struct zclient *, zebra_size_t);
|
||||
int rip_interface_delete (int, struct zclient *, zebra_size_t);
|
||||
int rip_interface_address_add (int, struct zclient *, zebra_size_t);
|
||||
int rip_interface_address_delete (int, struct zclient *, zebra_size_t);
|
||||
int rip_interface_up (int, struct zclient *, zebra_size_t);
|
||||
int rip_interface_down (int, struct zclient *, zebra_size_t);
|
||||
|
||||
/* RIPd to zebra command interface. */
|
||||
void
|
||||
@ -97,7 +90,7 @@ rip_zebra_ipv4_delete (struct prefix_ipv4 *p, struct in_addr *nexthop,
|
||||
}
|
||||
|
||||
/* Zebra route add and delete treatment. */
|
||||
int
|
||||
static int
|
||||
rip_zebra_read_ipv4 (int command, struct zclient *zclient, zebra_size_t length)
|
||||
{
|
||||
struct stream *s;
|
||||
@ -152,13 +145,13 @@ rip_zebra_read_ipv4 (int command, struct zclient *zclient, zebra_size_t length)
|
||||
}
|
||||
|
||||
void
|
||||
rip_zclient_reset ()
|
||||
rip_zclient_reset (void)
|
||||
{
|
||||
zclient_reset (zclient);
|
||||
}
|
||||
|
||||
/* RIP route-map set for redistribution */
|
||||
void
|
||||
static void
|
||||
rip_routemap_set (int type, const char *name)
|
||||
{
|
||||
if (rip->route_map[type].name)
|
||||
@ -168,14 +161,14 @@ rip_routemap_set (int type, const char *name)
|
||||
rip->route_map[type].map = route_map_lookup_by_name (name);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_redistribute_metric_set (int type, unsigned int metric)
|
||||
{
|
||||
rip->route_map[type].metric_config = 1;
|
||||
rip->route_map[type].metric = metric;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_metric_unset (int type, unsigned int metric)
|
||||
{
|
||||
#define DONT_CARE_METRIC_RIP 17
|
||||
@ -188,7 +181,7 @@ rip_metric_unset (int type, unsigned int metric)
|
||||
}
|
||||
|
||||
/* RIP route-map unset for redistribution */
|
||||
int
|
||||
static int
|
||||
rip_routemap_unset (int type, const char *name)
|
||||
{
|
||||
if (! rip->route_map[type].name ||
|
||||
@ -240,7 +233,7 @@ DEFUN (no_router_zebra,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_redistribute_set (int type)
|
||||
{
|
||||
if (zclient->redist[type])
|
||||
@ -254,7 +247,7 @@ rip_redistribute_set (int type)
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_redistribute_unset (int type)
|
||||
{
|
||||
if (! zclient->redist[type])
|
||||
@ -278,7 +271,7 @@ rip_redistribute_check (int type)
|
||||
}
|
||||
|
||||
void
|
||||
rip_redistribute_clean ()
|
||||
rip_redistribute_clean (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -632,7 +625,7 @@ DEFUN (no_rip_default_information_originate,
|
||||
}
|
||||
|
||||
/* RIP configuration write function. */
|
||||
int
|
||||
static int
|
||||
config_write_zebra (struct vty *vty)
|
||||
{
|
||||
if (! zclient->enable)
|
||||
|
||||
101
ripd/ripd.c
101
ripd/ripd.c
@ -63,10 +63,11 @@ long rip_global_route_changes = 0;
|
||||
long rip_global_queries = 0;
|
||||
|
||||
/* Prototypes. */
|
||||
void rip_event (enum rip_event, int);
|
||||
|
||||
void rip_output_process (struct connected *, struct sockaddr_in *, int, u_char);
|
||||
|
||||
static void rip_event (enum rip_event, int);
|
||||
static void rip_output_process (struct connected *, struct sockaddr_in *, int, u_char);
|
||||
static int rip_triggered_update (struct thread *);
|
||||
static int rip_update_jitter (unsigned long);
|
||||
|
||||
/* RIP output routes type. */
|
||||
enum
|
||||
{
|
||||
@ -87,7 +88,7 @@ struct message rip_msg[] =
|
||||
};
|
||||
|
||||
/* Utility function to set boradcast option to the socket. */
|
||||
int
|
||||
static int
|
||||
sockopt_broadcast (int sock)
|
||||
{
|
||||
int ret;
|
||||
@ -102,13 +103,13 @@ sockopt_broadcast (int sock)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_route_rte (struct rip_info *rinfo)
|
||||
{
|
||||
return (rinfo->type == ZEBRA_ROUTE_RIP && rinfo->sub_type == RIP_ROUTE_RTE);
|
||||
}
|
||||
|
||||
struct rip_info *
|
||||
static struct rip_info *
|
||||
rip_info_new ()
|
||||
{
|
||||
struct rip_info *new;
|
||||
@ -125,7 +126,7 @@ rip_info_free (struct rip_info *rinfo)
|
||||
}
|
||||
|
||||
/* RIP route garbage collect timer. */
|
||||
int
|
||||
static int
|
||||
rip_garbage_collect (struct thread *t)
|
||||
{
|
||||
struct rip_info *rinfo;
|
||||
@ -151,7 +152,7 @@ rip_garbage_collect (struct thread *t)
|
||||
}
|
||||
|
||||
/* Timeout RIP routes. */
|
||||
int
|
||||
static int
|
||||
rip_timeout (struct thread *t)
|
||||
{
|
||||
struct rip_info *rinfo;
|
||||
@ -183,7 +184,7 @@ rip_timeout (struct thread *t)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_timeout_update (struct rip_info *rinfo)
|
||||
{
|
||||
if (rinfo->metric != RIP_METRIC_INFINITY)
|
||||
@ -193,7 +194,7 @@ rip_timeout_update (struct rip_info *rinfo)
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_incoming_filter (struct prefix_ipv4 *p, struct rip_interface *ri)
|
||||
{
|
||||
struct distribute *dist;
|
||||
@ -264,7 +265,7 @@ rip_incoming_filter (struct prefix_ipv4 *p, struct rip_interface *ri)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_outgoing_filter (struct prefix_ipv4 *p, struct rip_interface *ri)
|
||||
{
|
||||
struct distribute *dist;
|
||||
@ -361,7 +362,7 @@ rip_nexthop_check (struct in_addr *addr)
|
||||
}
|
||||
|
||||
/* RIP add route to routing table. */
|
||||
void
|
||||
static void
|
||||
rip_rte_process (struct rte *rte, struct sockaddr_in *from,
|
||||
struct interface *ifp)
|
||||
{
|
||||
@ -694,7 +695,7 @@ rip_rte_process (struct rte *rte, struct sockaddr_in *from,
|
||||
}
|
||||
|
||||
/* Dump RIP packet */
|
||||
void
|
||||
static void
|
||||
rip_packet_dump (struct rip_packet *packet, int size, const char *sndrcv)
|
||||
{
|
||||
caddr_t lim;
|
||||
@ -785,7 +786,7 @@ rip_packet_dump (struct rip_packet *packet, int size, const char *sndrcv)
|
||||
/* Check if the destination address is valid (unicast; not net 0
|
||||
or 127) (RFC2453 Section 3.9.2 - Page 26). But we don't
|
||||
check net 0 because we accept default route. */
|
||||
int
|
||||
static int
|
||||
rip_destination_check (struct in_addr addr)
|
||||
{
|
||||
u_int32_t destination;
|
||||
@ -812,7 +813,7 @@ rip_destination_check (struct in_addr addr)
|
||||
}
|
||||
|
||||
/* RIP version 2 authentication. */
|
||||
int
|
||||
static int
|
||||
rip_auth_simple_password (struct rte *rte, struct sockaddr_in *from,
|
||||
struct interface *ifp)
|
||||
{
|
||||
@ -854,7 +855,7 @@ rip_auth_simple_password (struct rte *rte, struct sockaddr_in *from,
|
||||
}
|
||||
|
||||
/* RIP version 2 authentication with MD5. */
|
||||
int
|
||||
static int
|
||||
rip_auth_md5 (struct rip_packet *packet, struct sockaddr_in *from,
|
||||
int length, struct interface *ifp)
|
||||
{
|
||||
@ -1105,7 +1106,7 @@ rip_auth_md5_set (struct stream *s, struct rip_interface *ri, size_t doff,
|
||||
}
|
||||
|
||||
/* RIP routing information. */
|
||||
void
|
||||
static void
|
||||
rip_response_process (struct rip_packet *packet, int size,
|
||||
struct sockaddr_in *from, struct connected *ifc)
|
||||
{
|
||||
@ -1409,7 +1410,7 @@ rip_create_socket (struct sockaddr_in *from)
|
||||
* by connected argument. NULL to argument denotes destination should be
|
||||
* should be RIP multicast group
|
||||
*/
|
||||
int
|
||||
static int
|
||||
rip_send_packet (u_char * buf, int size, struct sockaddr_in *to,
|
||||
struct connected *ifc)
|
||||
{
|
||||
@ -1643,7 +1644,7 @@ rip_redistribute_delete (int type, int sub_type, struct prefix_ipv4 *p,
|
||||
}
|
||||
|
||||
/* Response to request called from rip_read ().*/
|
||||
void
|
||||
static void
|
||||
rip_request_process (struct rip_packet *packet, int size,
|
||||
struct sockaddr_in *from, struct connected *ifc)
|
||||
{
|
||||
@ -1811,7 +1812,7 @@ rip_read_new (struct thread *t)
|
||||
#endif /* RIP_RECVMSG */
|
||||
|
||||
/* First entry point of RIP packet. */
|
||||
int
|
||||
static int
|
||||
rip_read (struct thread *t)
|
||||
{
|
||||
int sock;
|
||||
@ -2101,7 +2102,7 @@ rip_read (struct thread *t)
|
||||
|
||||
/* Write routing table entry to the stream and return next index of
|
||||
the routing table entry in the stream. */
|
||||
int
|
||||
static int
|
||||
rip_write_rte (int num, struct stream *s, struct prefix_ipv4 *p,
|
||||
u_char version, struct rip_info *rinfo)
|
||||
{
|
||||
@ -2149,7 +2150,7 @@ rip_output_process (struct connected *ifc, struct sockaddr_in *to,
|
||||
/* this might need to made dynamic if RIP ever supported auth methods
|
||||
with larger key string sizes */
|
||||
char auth_str[RIP_AUTH_SIMPLE_SIZE];
|
||||
size_t doff; /* offset of digest offset field */
|
||||
size_t doff = 0; /* offset of digest offset field */
|
||||
int num = 0;
|
||||
int rtemax;
|
||||
int subnetted = 0;
|
||||
@ -2427,7 +2428,7 @@ rip_output_process (struct connected *ifc, struct sockaddr_in *to,
|
||||
}
|
||||
|
||||
/* Send RIP packet to the interface. */
|
||||
void
|
||||
static void
|
||||
rip_update_interface (struct connected *ifc, u_char version, int route_type)
|
||||
{
|
||||
struct sockaddr_in to;
|
||||
@ -2470,7 +2471,7 @@ rip_update_interface (struct connected *ifc, u_char version, int route_type)
|
||||
}
|
||||
|
||||
/* Update send to all interface and neighbor. */
|
||||
void
|
||||
static void
|
||||
rip_update_process (int route_type)
|
||||
{
|
||||
struct listnode *node;
|
||||
@ -2572,7 +2573,7 @@ rip_update_process (int route_type)
|
||||
}
|
||||
|
||||
/* RIP's periodical timer. */
|
||||
int
|
||||
static int
|
||||
rip_update (struct thread *t)
|
||||
{
|
||||
/* Clear timer pointer. */
|
||||
@ -2600,7 +2601,7 @@ rip_update (struct thread *t)
|
||||
}
|
||||
|
||||
/* Walk down the RIP routing table then clear changed flag. */
|
||||
void
|
||||
static void
|
||||
rip_clear_changed_flag ()
|
||||
{
|
||||
struct route_node *rp;
|
||||
@ -2613,7 +2614,7 @@ rip_clear_changed_flag ()
|
||||
}
|
||||
|
||||
/* Triggered update interval timer. */
|
||||
int
|
||||
static int
|
||||
rip_triggered_interval (struct thread *t)
|
||||
{
|
||||
int rip_triggered_update (struct thread *);
|
||||
@ -2629,7 +2630,7 @@ rip_triggered_interval (struct thread *t)
|
||||
}
|
||||
|
||||
/* Execute triggered update. */
|
||||
int
|
||||
static int
|
||||
rip_triggered_update (struct thread *t)
|
||||
{
|
||||
int interval;
|
||||
@ -2706,8 +2707,8 @@ rip_redistribute_withdraw (int type)
|
||||
}
|
||||
|
||||
/* Create new RIP instance and set it to global variable. */
|
||||
int
|
||||
rip_create ()
|
||||
static int
|
||||
rip_create (void)
|
||||
{
|
||||
rip = XMALLOC (MTYPE_RIP, sizeof (struct rip));
|
||||
memset (rip, 0, sizeof (struct rip));
|
||||
@ -2787,7 +2788,7 @@ rip_request_send (struct sockaddr_in *to, struct interface *ifp,
|
||||
return sizeof (rip_packet);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_update_jitter (unsigned long time)
|
||||
{
|
||||
#define JITTER_BOUND 4
|
||||
@ -2990,7 +2991,7 @@ DEFUN (no_rip_route,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_update_default_metric ()
|
||||
{
|
||||
struct route_node *np;
|
||||
@ -3126,7 +3127,7 @@ struct rip_distance
|
||||
char *access_list;
|
||||
};
|
||||
|
||||
struct rip_distance *
|
||||
static struct rip_distance *
|
||||
rip_distance_new ()
|
||||
{
|
||||
struct rip_distance *new;
|
||||
@ -3135,13 +3136,13 @@ rip_distance_new ()
|
||||
return new;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_distance_free (struct rip_distance *rdistance)
|
||||
{
|
||||
XFREE (MTYPE_RIP_DISTANCE, rdistance);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_distance_set (struct vty *vty, const char *distance_str, const char *ip_str,
|
||||
const char *access_list_str)
|
||||
{
|
||||
@ -3188,7 +3189,7 @@ rip_distance_set (struct vty *vty, const char *distance_str, const char *ip_str,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
rip_distance_unset (struct vty *vty, const char *distance_str,
|
||||
const char *ip_str, const char *access_list_str)
|
||||
{
|
||||
@ -3227,7 +3228,7 @@ rip_distance_unset (struct vty *vty, const char *distance_str,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_distance_reset ()
|
||||
{
|
||||
struct route_node *rn;
|
||||
@ -3288,7 +3289,7 @@ rip_distance_apply (struct rip_info *rinfo)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_distance_show (struct vty *vty)
|
||||
{
|
||||
struct route_node *rn;
|
||||
@ -3387,7 +3388,7 @@ DEFUN (no_rip_distance_source_access_list,
|
||||
}
|
||||
|
||||
/* Print out routes update time. */
|
||||
void
|
||||
static void
|
||||
rip_vty_out_uptime (struct vty *vty, struct rip_info *rinfo)
|
||||
{
|
||||
struct timeval timer_now;
|
||||
@ -3415,7 +3416,7 @@ rip_vty_out_uptime (struct vty *vty, struct rip_info *rinfo)
|
||||
}
|
||||
}
|
||||
|
||||
const char *
|
||||
static const char *
|
||||
rip_route_type_print (int sub_type)
|
||||
{
|
||||
switch (sub_type)
|
||||
@ -3513,7 +3514,7 @@ DEFUN (show_ip_rip,
|
||||
}
|
||||
|
||||
/* Return next event time. */
|
||||
int
|
||||
static int
|
||||
rip_next_thread_timer (struct thread *thread)
|
||||
{
|
||||
struct timeval timer_now;
|
||||
@ -3629,7 +3630,7 @@ DEFUN (show_ip_rip_status,
|
||||
}
|
||||
|
||||
/* RIP configuration write function. */
|
||||
int
|
||||
static int
|
||||
config_write_rip (struct vty *vty)
|
||||
{
|
||||
int write = 0;
|
||||
@ -3722,7 +3723,7 @@ struct cmd_node rip_node =
|
||||
};
|
||||
|
||||
/* Distribute-list update functions. */
|
||||
void
|
||||
static void
|
||||
rip_distribute_update (struct distribute *dist)
|
||||
{
|
||||
struct interface *ifp;
|
||||
@ -3796,7 +3797,7 @@ rip_distribute_update_interface (struct interface *ifp)
|
||||
|
||||
/* Update all interface's distribute list. */
|
||||
/* ARGSUSED */
|
||||
void
|
||||
static void
|
||||
rip_distribute_update_all (struct prefix_list *notused)
|
||||
{
|
||||
struct interface *ifp;
|
||||
@ -3806,7 +3807,7 @@ rip_distribute_update_all (struct prefix_list *notused)
|
||||
rip_distribute_update_interface (ifp);
|
||||
}
|
||||
/* ARGSUSED */
|
||||
void
|
||||
static void
|
||||
rip_distribute_update_all_wrapper(struct access_list *notused)
|
||||
{
|
||||
rip_distribute_update_all(NULL);
|
||||
@ -3924,7 +3925,7 @@ rip_reset ()
|
||||
rip_zclient_reset ();
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_if_rmap_update (struct if_rmap *if_rmap)
|
||||
{
|
||||
struct interface *ifp;
|
||||
@ -3970,7 +3971,7 @@ rip_if_rmap_update_interface (struct interface *ifp)
|
||||
rip_if_rmap_update (if_rmap);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
rip_routemap_update_redistribute (void)
|
||||
{
|
||||
int i;
|
||||
@ -3987,7 +3988,7 @@ rip_routemap_update_redistribute (void)
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
void
|
||||
static void
|
||||
rip_routemap_update (const char *notused)
|
||||
{
|
||||
struct interface *ifp;
|
||||
@ -4001,7 +4002,7 @@ rip_routemap_update (const char *notused)
|
||||
|
||||
/* Allocate new rip structure and set default value. */
|
||||
void
|
||||
rip_init ()
|
||||
rip_init (void)
|
||||
{
|
||||
/* Randomize for triggered update random(). */
|
||||
srand (time (NULL));
|
||||
|
||||
93
ripd/ripd.h
93
ripd/ripd.h
@ -374,59 +374,59 @@ enum rip_event
|
||||
} while (0)
|
||||
|
||||
/* Prototypes. */
|
||||
void rip_init ();
|
||||
void rip_reset ();
|
||||
void rip_clean ();
|
||||
void rip_clean_network ();
|
||||
void rip_interface_clean ();
|
||||
void rip_interface_reset ();
|
||||
void rip_passive_nondefault_clean ();
|
||||
void rip_if_init ();
|
||||
void rip_if_down_all ();
|
||||
void rip_route_map_init ();
|
||||
void rip_route_map_reset ();
|
||||
void rip_snmp_init ();
|
||||
void rip_zclient_init ();
|
||||
void rip_zclient_start ();
|
||||
void rip_zclient_reset ();
|
||||
void rip_offset_init ();
|
||||
int if_check_address (struct in_addr addr);
|
||||
int if_valid_neighbor (struct in_addr addr);
|
||||
extern void rip_init (void);
|
||||
extern void rip_reset (void);
|
||||
extern void rip_clean (void);
|
||||
extern void rip_clean_network (void);
|
||||
extern void rip_interface_clean (void);
|
||||
extern void rip_interface_reset (void);
|
||||
extern void rip_passive_nondefault_clean (void);
|
||||
extern void rip_if_init (void);
|
||||
extern void rip_if_down_all (void);
|
||||
extern void rip_route_map_init (void);
|
||||
extern void rip_route_map_reset (void);
|
||||
extern void rip_snmp_init (void);
|
||||
extern void rip_zclient_init (void);
|
||||
extern void rip_zclient_start (void);
|
||||
extern void rip_zclient_reset (void);
|
||||
extern void rip_offset_init (void);
|
||||
extern int if_check_address (struct in_addr addr);
|
||||
extern int if_valid_neighbor (struct in_addr addr);
|
||||
|
||||
int rip_request_send (struct sockaddr_in *, struct interface *, u_char,
|
||||
extern int rip_request_send (struct sockaddr_in *, struct interface *, u_char,
|
||||
struct connected *);
|
||||
int rip_neighbor_lookup (struct sockaddr_in *);
|
||||
void rip_redistribute_add (int, int, struct prefix_ipv4 *, unsigned int,
|
||||
extern int rip_neighbor_lookup (struct sockaddr_in *);
|
||||
extern void rip_redistribute_add (int, int, struct prefix_ipv4 *, unsigned int,
|
||||
struct in_addr *, unsigned int, unsigned char);
|
||||
void rip_redistribute_delete (int, int, struct prefix_ipv4 *, unsigned int);
|
||||
void rip_redistribute_withdraw (int);
|
||||
void rip_zebra_ipv4_add (struct prefix_ipv4 *, struct in_addr *, u_int32_t, u_char);
|
||||
void rip_zebra_ipv4_delete (struct prefix_ipv4 *, struct in_addr *, u_int32_t);
|
||||
void rip_interface_multicast_set (int, struct connected *);
|
||||
void rip_distribute_update_interface (struct interface *);
|
||||
void rip_if_rmap_update_interface (struct interface *);
|
||||
extern void rip_redistribute_delete (int, int, struct prefix_ipv4 *, unsigned int);
|
||||
extern void rip_redistribute_withdraw (int);
|
||||
extern void rip_zebra_ipv4_add (struct prefix_ipv4 *, struct in_addr *, u_int32_t, u_char);
|
||||
extern void rip_zebra_ipv4_delete (struct prefix_ipv4 *, struct in_addr *, u_int32_t);
|
||||
extern void rip_interface_multicast_set (int, struct connected *);
|
||||
extern void rip_distribute_update_interface (struct interface *);
|
||||
extern void rip_if_rmap_update_interface (struct interface *);
|
||||
|
||||
int config_write_rip_network (struct vty *, int);
|
||||
int config_write_rip_offset_list (struct vty *);
|
||||
int config_write_rip_redistribute (struct vty *, int);
|
||||
extern int config_write_rip_network (struct vty *, int);
|
||||
extern int config_write_rip_offset_list (struct vty *);
|
||||
extern int config_write_rip_redistribute (struct vty *, int);
|
||||
|
||||
void rip_peer_init ();
|
||||
void rip_peer_update (struct sockaddr_in *, u_char);
|
||||
void rip_peer_bad_route (struct sockaddr_in *);
|
||||
void rip_peer_bad_packet (struct sockaddr_in *);
|
||||
void rip_peer_display (struct vty *);
|
||||
struct rip_peer *rip_peer_lookup (struct in_addr *);
|
||||
struct rip_peer *rip_peer_lookup_next (struct in_addr *);
|
||||
extern void rip_peer_init (void);
|
||||
extern void rip_peer_update (struct sockaddr_in *, u_char);
|
||||
extern void rip_peer_bad_route (struct sockaddr_in *);
|
||||
extern void rip_peer_bad_packet (struct sockaddr_in *);
|
||||
extern void rip_peer_display (struct vty *);
|
||||
extern struct rip_peer *rip_peer_lookup (struct in_addr *);
|
||||
extern struct rip_peer *rip_peer_lookup_next (struct in_addr *);
|
||||
|
||||
int rip_offset_list_apply_in (struct prefix_ipv4 *, struct interface *, u_int32_t *);
|
||||
int rip_offset_list_apply_out (struct prefix_ipv4 *, struct interface *, u_int32_t *);
|
||||
void rip_offset_clean ();
|
||||
extern int rip_offset_list_apply_in (struct prefix_ipv4 *, struct interface *, u_int32_t *);
|
||||
extern int rip_offset_list_apply_out (struct prefix_ipv4 *, struct interface *, u_int32_t *);
|
||||
extern void rip_offset_clean (void);
|
||||
|
||||
void rip_info_free (struct rip_info *);
|
||||
u_char rip_distance_apply (struct rip_info *);
|
||||
void rip_redistribute_clean ();
|
||||
void rip_ifaddr_add (struct interface *, struct connected *);
|
||||
void rip_ifaddr_delete (struct interface *, struct connected *);
|
||||
extern void rip_info_free (struct rip_info *);
|
||||
extern u_char rip_distance_apply (struct rip_info *);
|
||||
extern void rip_redistribute_clean (void);
|
||||
extern void rip_ifaddr_add (struct interface *, struct connected *);
|
||||
extern void rip_ifaddr_delete (struct interface *, struct connected *);
|
||||
|
||||
/* There is only one rip strucutre. */
|
||||
extern struct rip *rip;
|
||||
@ -437,5 +437,4 @@ extern struct thread_master *master;
|
||||
/* RIP statistics for SNMP. */
|
||||
extern long rip_global_route_changes;
|
||||
extern long rip_global_queries;
|
||||
|
||||
#endif /* _ZEBRA_RIP_H */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user