Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

bgp.h File Reference

#include "../SRC/ipaddr.h"
#include "../SRC/application.h"
#include "../SRC/tcp.h"
#include "routemsg.h"
#include "../SRC/event.h"
#include <vector>
#include <list>
#include <regex.h>
#include <netdb.h>
#include <unistd.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <errno.h>
#include <syslog.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <assert.h>

Go to the source code of this file.

Classes

class  BGPPeer
class  BGPEvent
class  BGPTimer
union  sockunion
struct  fifo
struct  bgp_advertise_fifo
struct  bgp_advertise_attr
struct  bgp_adj_out
struct  bgp_adj_in
struct  bgp_synchronize
struct  aspath
struct  interface
struct  connected
struct  bgp_nexthop_cache
struct  bgp_master
struct  bgp
struct  peer_group
struct  bgp_notify
struct  bgp_nexthop
struct  bgp_rd
struct  bgp_filter
struct  peer_conf
struct  default_rmap
struct  peer
struct  bgp_nlri
struct  peer_flag_action
struct  assegment
struct  community
struct  ecommunity
struct  ecommunity_val
struct  attr
struct  bgp_advertise
struct  cluster_list
struct  transit
struct  community_list
struct  community_entry
struct  community_list_list
struct  community_list_master
struct  community_list_handler
struct  as_list_list
struct  as_list_master
struct  as_filter
struct  as_list
struct  capability_mp
struct  capability
struct  prefix
struct  prefix_ipv4
struct  prefix_ls
struct  prefix_rd
struct  bgp_table
struct  bgp_node
struct  bgp_damp_info
struct  bgp_damp_config
struct  bgp_dump
struct  bgp_info
struct  bgp_static
struct  fsm_struct
struct  buffer
struct  buffer_data
struct  vty
struct  host
struct  cmd_node
struct  cmd_element
struct  desc
struct  distribute
struct  access_list_list
struct  access_master
struct  access_list
struct  hash_backet
struct  hash
struct  listnode
struct  llist
struct  zlog
struct  message
struct  memory_list
struct  prefix_list_list
struct  prefix_master
struct  prefix_list
struct  orf_prefix
struct  route_map_rule
struct  route_map_list
struct  route_map_rule_cmd
struct  route_map_rule_list
struct  route_map_index
struct  route_map
struct  stream
struct  stream_fifo
struct  route_table
struct  route_node
struct  thread_list
struct  thread_master
struct  thread
struct  _vector
struct  agent_index
struct  InterruptInfo
class  MessageBuffer
struct  BGP

Defines

#define SU_ADDRSTRLEN   46
#define sockunion_family(X)   (X)->sa.sa_family
#define TIME_BUF   27
#define ZEBRA_INTERFACE_ADD   1
#define ZEBRA_INTERFACE_DELETE   2
#define ZEBRA_INTERFACE_ADDRESS_ADD   3
#define ZEBRA_INTERFACE_ADDRESS_DELETE   4
#define ZEBRA_INTERFACE_UP   5
#define ZEBRA_INTERFACE_DOWN   6
#define ZEBRA_IPV4_ROUTE_ADD   7
#define ZEBRA_IPV4_ROUTE_DELETE   8
#define ZEBRA_IPV6_ROUTE_ADD   9
#define ZEBRA_IPV6_ROUTE_DELETE   10
#define ZEBRA_REDISTRIBUTE_ADD   11
#define ZEBRA_REDISTRIBUTE_DELETE   12
#define ZEBRA_REDISTRIBUTE_DEFAULT_ADD   13
#define ZEBRA_REDISTRIBUTE_DEFAULT_DELETE   14
#define ZEBRA_IPV4_NEXTHOP_LOOKUP   15
#define ZEBRA_IPV6_NEXTHOP_LOOKUP   16
#define ZEBRA_IPV4_IMPORT_LOOKUP   17
#define ZEBRA_IPV6_IMPORT_LOOKUP   18
#define ZEBRA_MESSAGE_MAX   19
#define ZEBRA_ROUTE_SYSTEM   0
#define ZEBRA_ROUTE_KERNEL   1
#define ZEBRA_ROUTE_CONNECT   2
#define ZEBRA_ROUTE_STATIC   3
#define ZEBRA_ROUTE_RIP   4
#define ZEBRA_ROUTE_RIPNG   5
#define ZEBRA_ROUTE_OSPF   6
#define ZEBRA_ROUTE_OSPF6   7
#define ZEBRA_ROUTE_BGP   8
#define ZEBRA_ROUTE_MAX   9
#define ZEBRA_FAMILY_IPV4   1
#define ZEBRA_FAMILY_IPV6   2
#define ZEBRA_FAMILY_MAX   3
#define ZEBRA_ERR_RTEXIST   -1
#define ZEBRA_ERR_RTUNREACH   -2
#define ZEBRA_ERR_EPERM   -3
#define ZEBRA_ERR_RTNOEXIST   -4
#define ZEBRA_FLAG_INTERNAL   0x01
#define ZEBRA_FLAG_SELFROUTE   0x02
#define ZEBRA_FLAG_BLACKHOLE   0x04
#define ZEBRA_FLAG_IBGP   0x08
#define ZEBRA_FLAG_SELECTED   0x10
#define ZEBRA_FLAG_CHANGED   0x20
#define ZEBRA_FLAG_STATIC   0x40
#define ZEBRA_NEXTHOP_IFINDEX   1
#define ZEBRA_NEXTHOP_IFNAME   2
#define ZEBRA_NEXTHOP_IPV4   3
#define ZEBRA_NEXTHOP_IPV4_IFINDEX   4
#define ZEBRA_NEXTHOP_IPV4_IFNAME   5
#define ZEBRA_NEXTHOP_IPV6   6
#define ZEBRA_NEXTHOP_IPV6_IFINDEX   7
#define ZEBRA_NEXTHOP_IPV6_IFNAME   8
#define ZEBRA_NEXTHOP_BLACKHOLE   9
#define INADDR_LOOPBACK   0x7f000001
#define AFI_IP   1
#define AFI_IP6   2
#define AFI_MAX   3
#define SAFI_UNICAST   1
#define SAFI_MULTICAST   2
#define SAFI_UNICAST_MULTICAST   3
#define SAFI_MPLS_VPN   4
#define SAFI_MAX   5
#define FILTER_IN   0
#define FILTER_OUT   1
#define FILTER_MAX   2
#define ZEBRA_KERNEL_DISTANCE_DEFAULT   0
#define ZEBRA_CONNECT_DISTANCE_DEFAULT   0
#define ZEBRA_STATIC_DISTANCE_DEFAULT   1
#define ZEBRA_RIP_DISTANCE_DEFAULT   120
#define ZEBRA_RIPNG_DISTANCE_DEFAULT   120
#define ZEBRA_OSPF_DISTANCE_DEFAULT   110
#define ZEBRA_OSPF6_DISTANCE_DEFAULT   110
#define ZEBRA_IBGP_DISTANCE_DEFAULT   200
#define ZEBRA_EBGP_DISTANCE_DEFAULT   20
#define CHECK_FLAG(V, F)   ((V) & (F))
#define SET_FLAG(V, F)   (V) = (V) | (F)
#define UNSET_FLAG(V, F)   (V) = (V) & ~(F)
#define FIFO_INIT(F)
#define FIFO_ADD(F, N)
#define FIFO_DEL(N)
#define FIFO_HEAD(F)
#define FIFO_EMPTY(F)   (((struct fifo *)(F))->next == (struct fifo *)(F))
#define FIFO_TOP(F)   (FIFO_EMPTY(F) ? NULL : ((struct fifo *)(F))->next)
#define BGP_INFO_ADD(N, A, TYPE)
#define BGP_INFO_DEL(N, A, TYPE)
#define BGP_ADJ_IN_ADD(N, A)   BGP_INFO_ADD(N,A,adj_in)
#define BGP_ADJ_IN_DEL(N, A)   BGP_INFO_DEL(N,A,adj_in)
#define BGP_ADJ_OUT_ADD(N, A)   BGP_INFO_ADD(N,A,adj_out)
#define BGP_ADJ_OUT_DEL(N, A)   BGP_INFO_DEL(N,A,adj_out)
#define AS_SET   1
#define AS_SEQUENCE   2
#define AS_CONFED_SEQUENCE   3
#define AS_CONFED_SET   4
#define BGP_PRIVATE_AS_MIN   64512
#define BGP_PRIVATE_AS_MAX   65535
#define ASPATH_STR_DEFAULT_LEN   32
#define ZEBRA_MAX_PACKET_SIZ   4096
#define ZEBRA_HEADER_SIZE   3
#define ZAPI_MESSAGE_NEXTHOP   0x01
#define ZAPI_MESSAGE_IFINDEX   0x02
#define ZAPI_MESSAGE_DISTANCE   0x04
#define ZAPI_MESSAGE_METRIC   0x08
#define INTERFACE_NAMSIZ   20
#define INTERFACE_HWADDR_MAX   20
#define IFINDEX_INTERNBASE   0x80000000
#define ZEBRA_INTERFACE_ACTIVE   (1 << 0)
#define ZEBRA_INTERFACE_SUB   (1 << 1)
#define ZEBRA_IFC_REAL   (1 << 0)
#define ZEBRA_IFC_CONFIGURED   (1 << 1)
#define ZEBRA_IFA_SECONDARY   (1 << 0)
#define IF_NEW_HOOK   0
#define IF_DELETE_HOOK   1
#define IFF_NOTRAILERS   0x0
#define IFF_OACTIVE   0x0
#define IFF_SIMPLEX   0x0
#define IFF_LINK0   0x0
#define IFF_LINK1   0x0
#define IFF_LINK2   0x0
#define BGP_SCAN_INTERVAL_DEFAULT   60
#define BGP_IMPORT_INTERVAL_DEFAULT   15
#define BGP_OPT_NO_FIB   (1 << 0)
#define BGP_OPT_MULTIPLE_INSTANCE   (1 << 1)
#define BGP_OPT_CONFIG_CISCO   (1 << 2)
#define BGP_CONFIG_ROUTER_ID   (1 << 0)
#define BGP_CONFIG_CLUSTER_ID   (1 << 1)
#define BGP_CONFIG_CONFEDERATION   (1 << 2)
#define BGP_CONFIG_DEFAULT_LOCAL_PREF   (1 << 3)
#define BGP_FLAG_ALWAYS_COMPARE_MED   (1 << 0)
#define BGP_FLAG_DETERMINISTIC_MED   (1 << 1)
#define BGP_FLAG_MED_MISSING_AS_WORST   (1 << 2)
#define BGP_FLAG_MED_CONFED   (1 << 3)
#define BGP_FLAG_NO_DEFAULT_IPV4   (1 << 4)
#define BGP_FLAG_NO_CLIENT_TO_CLIENT   (1 << 5)
#define BGP_FLAG_ENFORCE_FIRST_AS   (1 << 6)
#define BGP_FLAG_COMPARE_ROUTER_ID   (1 << 7)
#define BGP_FLAG_ASPATH_IGNORE   (1 << 8)
#define BGP_FLAG_IMPORT_CHECK   (1 << 9)
#define BGP_FLAG_NO_FAST_EXT_FAILOVER   (1 << 10)
#define BGP_FLAG_LOG_NEIGHBOR_CHANGES   (1 << 11)
#define BGP_CONFIG_DAMPENING   (1 << 0)
#define BGP_RD_SIZE   8
#define PEER_CAP_REFRESH_ADV   (1 << 0)
#define PEER_CAP_REFRESH_OLD_RCV   (1 << 1)
#define PEER_CAP_REFRESH_NEW_RCV   (1 << 2)
#define PEER_CAP_DYNAMIC_ADV   (1 << 3)
#define PEER_CAP_DYNAMIC_RCV   (1 << 4)
#define PEER_CAP_ORF_PREFIX_SM_ADV   (1 << 0)
#define PEER_CAP_ORF_PREFIX_RM_ADV   (1 << 1)
#define PEER_CAP_ORF_PREFIX_SM_RCV   (1 << 2)
#define PEER_CAP_ORF_PREFIX_RM_RCV   (1 << 3)
#define PEER_CAP_ORF_PREFIX_SM_OLD_RCV   (1 << 4)
#define PEER_CAP_ORF_PREFIX_RM_OLD_RCV   (1 << 5)
#define PEER_FLAG_PASSIVE   (1 << 0)
#define PEER_FLAG_SHUTDOWN   (1 << 1)
#define PEER_FLAG_DONT_CAPABILITY   (1 << 2)
#define PEER_FLAG_OVERRIDE_CAPABILITY   (1 << 3)
#define PEER_FLAG_STRICT_CAP_MATCH   (1 << 4)
#define PEER_FLAG_NO_ROUTE_REFRESH_CAP   (1 << 5)
#define PEER_FLAG_DYNAMIC_CAPABILITY   (1 << 6)
#define PEER_FLAG_ENFORCE_MULTIHOP   (1 << 7)
#define PEER_FLAG_LOCAL_AS_NO_PREPEND   (1 << 8)
#define PEER_FLAG_SEND_COMMUNITY   (1 << 0)
#define PEER_FLAG_SEND_EXT_COMMUNITY   (1 << 1)
#define PEER_FLAG_NEXTHOP_SELF   (1 << 2)
#define PEER_FLAG_REFLECTOR_CLIENT   (1 << 3)
#define PEER_FLAG_RSERVER_CLIENT   (1 << 4)
#define PEER_FLAG_SOFT_RECONFIG   (1 << 5)
#define PEER_FLAG_AS_PATH_UNCHANGED   (1 << 6)
#define PEER_FLAG_NEXTHOP_UNCHANGED   (1 << 7)
#define PEER_FLAG_MED_UNCHANGED   (1 << 8)
#define PEER_FLAG_DEFAULT_ORIGINATE   (1 << 9)
#define PEER_FLAG_REMOVE_PRIVATE_AS   (1 << 10)
#define PEER_FLAG_ALLOWAS_IN   (1 << 11)
#define PEER_FLAG_ORF_PREFIX_SM   (1 << 12)
#define PEER_FLAG_ORF_PREFIX_RM   (1 << 13)
#define PEER_FLAG_MAX_PREFIX   (1 << 14)
#define PEER_FLAG_MAX_PREFIX_WARNING   (1 << 15)
#define PEER_STATUS_ACCEPT_PEER   (1 << 0)
#define PEER_STATUS_PREFIX_OVERFLOW   (1 << 1)
#define PEER_STATUS_CAPABILITY_OPEN   (1 << 2)
#define PEER_STATUS_HAVE_ACCEPT   (1 << 3)
#define PEER_STATUS_GROUP   (1 << 4)
#define PEER_STATUS_ORF_PREFIX_SEND   (1 << 0)
#define PEER_STATUS_ORF_WAIT_REFRESH   (1 << 1)
#define PEER_STATUS_DEFAULT_ORIGINATE   (1 << 2)
#define PEER_STATUS_PREFIX_THRESHOLD   (1 << 3)
#define PEER_STATUS_PREFIX_LIMIT   (1 << 4)
#define PEER_CONFIG_WEIGHT   (1 << 0)
#define PEER_CONFIG_TIMER   (1 << 1)
#define PEER_CONFIG_CONNECT   (1 << 2)
#define PEER_CONFIG_ROUTEADV   (1 << 3)
#define MAXIMUM_PREFIX_THRESHOLD_DEFAULT   75
#define PEER_DOWN_RID_CHANGE   1
#define PEER_DOWN_REMOTE_AS_CHANGE   2
#define PEER_DOWN_LOCAL_AS_CHANGE   3
#define PEER_DOWN_CLID_CHANGE   4
#define PEER_DOWN_CONFED_ID_CHANGE   5
#define PEER_DOWN_CONFED_PEER_CHANGE   6
#define PEER_DOWN_RR_CLIENT_CHANGE   7
#define PEER_DOWN_RS_CLIENT_CHANGE   8
#define PEER_DOWN_UPDATE_SOURCE_CHANGE   9
#define PEER_DOWN_AF_ACTIVATE   10
#define PEER_DOWN_USER_SHUTDOWN   11
#define PEER_DOWN_USER_RESET   12
#define PEER_DOWN_NOTIFY_RECEIVED   13
#define PEER_DOWN_NOTIFY_SEND   14
#define PEER_DOWN_CLOSE_SESSION   15
#define PEER_DOWN_NEIGHBOR_DELETE   16
#define PEER_DOWN_RMAP_BIND   17
#define PEER_DOWN_RMAP_UNBIND   18
#define PEER_DOWN_CAPABILITY_CHANGE   19
#define PEER_DOWN_PASSIVE_CHANGE   20
#define PEER_DOWN_MULTIHOP_CHANGE   21
#define PEER_RMAP_TYPE_IN   (1 << 0)
#define PEER_RMAP_TYPE_OUT   (1 << 1)
#define PEER_RMAP_TYPE_NETWORK   (1 << 2)
#define PEER_RMAP_TYPE_REDISTRIBUTE   (1 << 3)
#define PEER_RMAP_TYPE_DEFAULT   (1 << 4)
#define PEER_RMAP_TYPE_NOSET   (1 << 5)
#define BGP_VERSION_4   4
#define BGP_VERSION_MP_4_DRAFT_00   40
#define BGP_PORT_DEFAULT   179
#define BGP_MARKER_SIZE   16
#define BGP_HEADER_SIZE   19
#define BGP_MAX_PACKET_SIZE   4096
#define BGP_MSG_OPEN_MIN_SIZE   (BGP_HEADER_SIZE + 10)
#define BGP_MSG_UPDATE_MIN_SIZE   (BGP_HEADER_SIZE + 4)
#define BGP_MSG_NOTIFY_MIN_SIZE   (BGP_HEADER_SIZE + 2)
#define BGP_MSG_KEEPALIVE_MIN_SIZE   (BGP_HEADER_SIZE + 0)
#define BGP_MSG_ROUTE_REFRESH_MIN_SIZE   (BGP_HEADER_SIZE + 4)
#define BGP_MSG_CAPABILITY_MIN_SIZE   (BGP_HEADER_SIZE + 3)
#define BGP_MSG_OPEN   1
#define BGP_MSG_UPDATE   2
#define BGP_MSG_NOTIFY   3
#define BGP_MSG_KEEPALIVE   4
#define BGP_MSG_ROUTE_REFRESH_NEW   5
#define BGP_MSG_CAPABILITY   6
#define BGP_MSG_ROUTE_REFRESH_OLD   128
#define BGP_OPEN_OPT_AUTH   1
#define BGP_OPEN_OPT_CAP   2
#define BGP_ATTR_ORIGIN   1
#define BGP_ATTR_AS_PATH   2
#define BGP_ATTR_NEXT_HOP   3
#define BGP_ATTR_MULTI_EXIT_DISC   4
#define BGP_ATTR_LOCAL_PREF   5
#define BGP_ATTR_ATOMIC_AGGREGATE   6
#define BGP_ATTR_AGGREGATOR   7
#define BGP_ATTR_COMMUNITIES   8
#define BGP_ATTR_ORIGINATOR_ID   9
#define BGP_ATTR_CLUSTER_LIST   10
#define BGP_ATTR_DPA   11
#define BGP_ATTR_ADVERTISER   12
#define BGP_ATTR_RCID_PATH   13
#define BGP_ATTR_MP_REACH_NLRI   14
#define BGP_ATTR_MP_UNREACH_NLRI   15
#define BGP_ATTR_EXT_COMMUNITIES   16
#define BGP_ORIGIN_IGP   0
#define BGP_ORIGIN_EGP   1
#define BGP_ORIGIN_INCOMPLETE   2
#define BGP_NOTIFY_HEADER_ERR   1
#define BGP_NOTIFY_OPEN_ERR   2
#define BGP_NOTIFY_UPDATE_ERR   3
#define BGP_NOTIFY_HOLD_ERR   4
#define BGP_NOTIFY_FSM_ERR   5
#define BGP_NOTIFY_CEASE   6
#define BGP_NOTIFY_CAPABILITY_ERR   7
#define BGP_NOTIFY_MAX   8
#define BGP_NOTIFY_HEADER_NOT_SYNC   1
#define BGP_NOTIFY_HEADER_BAD_MESLEN   2
#define BGP_NOTIFY_HEADER_BAD_MESTYPE   3
#define BGP_NOTIFY_HEADER_MAX   4
#define BGP_NOTIFY_OPEN_UNSUP_VERSION   1
#define BGP_NOTIFY_OPEN_BAD_PEER_AS   2
#define BGP_NOTIFY_OPEN_BAD_BGP_IDENT   3
#define BGP_NOTIFY_OPEN_UNSUP_PARAM   4
#define BGP_NOTIFY_OPEN_AUTH_FAILURE   5
#define BGP_NOTIFY_OPEN_UNACEP_HOLDTIME   6
#define BGP_NOTIFY_OPEN_UNSUP_CAPBL   7
#define BGP_NOTIFY_OPEN_MAX   8
#define BGP_NOTIFY_UPDATE_MAL_ATTR   1
#define BGP_NOTIFY_UPDATE_UNREC_ATTR   2
#define BGP_NOTIFY_UPDATE_MISS_ATTR   3
#define BGP_NOTIFY_UPDATE_ATTR_FLAG_ERR   4
#define BGP_NOTIFY_UPDATE_ATTR_LENG_ERR   5
#define BGP_NOTIFY_UPDATE_INVAL_ORIGIN   6
#define BGP_NOTIFY_UPDATE_AS_ROUTE_LOOP   7
#define BGP_NOTIFY_UPDATE_INVAL_NEXT_HOP   8
#define BGP_NOTIFY_UPDATE_OPT_ATTR_ERR   9
#define BGP_NOTIFY_UPDATE_INVAL_NETWORK   10
#define BGP_NOTIFY_UPDATE_MAL_AS_PATH   11
#define BGP_NOTIFY_UPDATE_MAX   12
#define BGP_NOTIFY_CEASE_MAX_PREFIX   1
#define BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN   2
#define BGP_NOTIFY_CEASE_PEER_UNCONFIG   3
#define BGP_NOTIFY_CEASE_ADMIN_RESET   4
#define BGP_NOTIFY_CEASE_CONNECT_REJECT   5
#define BGP_NOTIFY_CEASE_CONFIG_CHANGE   6
#define BGP_NOTIFY_CEASE_CONNECT_COLLISION   7
#define BGP_NOTIFY_CEASE_MAX   8
#define BGP_NOTIFY_CAPABILITY_INVALID_ACTION   1
#define BGP_NOTIFY_CAPABILITY_INVALID_LENGTH   2
#define BGP_NOTIFY_CAPABILITY_MALFORMED_CODE   3
#define BGP_NOTIFY_CAPABILITY_MAX   4
#define Idle   1
#define connect   2
#define Active   3
#define OpenSent   4
#define OpenConfirm   5
#define Established   6
#define BGP_STATUS_MAX   7
#define BGP_Start   1
#define BGP_Stop   2
#define TCP_connection_open   3
#define TCP_connection_closed   4
#define TCP_connection_open_failed   5
#define TCP_fatal_error   6
#define ConnectRetry_timer_expired   7
#define Hold_Timer_expired   8
#define KeepAlive_timer_expired   9
#define Receive_OPEN_message   10
#define Receive_KEEPALIVE_message   11
#define Receive_UPDATE_message   12
#define Receive_NOTIFICATION_message   13
#define BGP_EVENTS_MAX   14
#define BGP_INIT_START_TIMER   5
#define BGP_ERROR_START_TIMER   30
#define BGP_DEFAULT_HOLDTIME   180
#define BGP_DEFAULT_KEEPALIVE   60
#define BGP_DEFAULT_ASORIGINATE   15
#define BGP_DEFAULT_EBGP_ROUTEADV   30
#define BGP_DEFAULT_IBGP_ROUTEADV   5
#define BGP_CLEAR_CONNECT_RETRY   20
#define BGP_DEFAULT_CONNECT_RETRY   120
#define BGP_DEFAULT_LOCAL_PREF   100
#define BGP_SAFI_VPNV4   128
#define BGP_SAFI_VPNV6   129
#define TTL_MAX   255
#define BGP_UPTIME_LEN   25
#define BGP_VTY_PORT   2605
#define BGP_VTYSH_PATH   "/tmp/.bgpd"
#define BGP_DEFAULT_CONFIG   "bgpd.conf"
#define BGP_INPUT(P)   ((P)->ibuf)
#define BGP_INPUT_PNT(P)   (STREAM_PNT(BGP_INPUT(P)))
#define BGP_INFO_HOLDDOWN(BI)
#define PSIZE(a)   (((a) + 7) / (8))
#define BGP_SUCCESS   0
#define BGP_ERR_INVALID_VALUE   -1
#define BGP_ERR_INVALID_FLAG   -2
#define BGP_ERR_INVALID_AS   -3
#define BGP_ERR_INVALID_BGP   -4
#define BGP_ERR_PEER_GROUP_MEMBER   -5
#define BGP_ERR_MULTIPLE_INSTANCE_USED   -6
#define BGP_ERR_PEER_GROUP_MEMBER_EXISTS   -7
#define BGP_ERR_PEER_BELONGS_TO_GROUP   -8
#define BGP_ERR_PEER_GROUP_AF_UNCONFIGURED   -9
#define BGP_ERR_PEER_GROUP_NO_REMOTE_AS   -10
#define BGP_ERR_PEER_GROUP_CANT_CHANGE   -11
#define BGP_ERR_PEER_GROUP_MISMATCH   -12
#define BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT   -13
#define BGP_ERR_MULTIPLE_INSTANCE_NOT_SET   -14
#define BGP_ERR_AS_MISMATCH   -15
#define BGP_ERR_PEER_INACTIVE   -16
#define BGP_ERR_INVALID_FOR_PEER_GROUP_MEMBER   -17
#define BGP_ERR_PEER_GROUP_HAS_THE_FLAG   -18
#define BGP_ERR_PEER_FLAG_CONFLICT   -19
#define BGP_ERR_PEER_GROUP_SHUTDOWN   -20
#define BGP_ERR_PEER_FILTER_CONFLICT   -21
#define BGP_ERR_NOT_INTERNAL_PEER   -22
#define BGP_ERR_REMOVE_PRIVATE_AS   -23
#define BGP_ERR_AF_UNCONFIGURED   -24
#define BGP_ERR_SOFT_RECONFIG_UNCONFIGURED   -25
#define BGP_ERR_INSTANCE_MISMATCH   -26
#define BGP_ERR_LOCAL_AS_ALLOWED_ONLY_FOR_EBGP   -27
#define BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS   -28
#define BGP_ERR_MAX   -29
#define AS_HEADER_SIZE   2
#define AS_VALUE_SIZE   sizeof (as_t)
#define ASSEGMENT_LEN(X)   ((X)->length * AS_VALUE_SIZE + AS_HEADER_SIZE)
#define COMMUNITY_INTERNET   0x0
#define COMMUNITY_NO_EXPORT   0xFFFFFF01
#define COMMUNITY_NO_ADVERTISE   0xFFFFFF02
#define COMMUNITY_NO_EXPORT_SUBCONFED   0xFFFFFF03
#define COMMUNITY_LOCAL_AS   0xFFFFFF03
#define com_length(X)   ((X)->size * 4)
#define com_lastval(X)   ((X)->val + (X)->size - 1)
#define com_nthval(X, n)   ((X)->val + (n))
#define ECOMMUNITY_ENCODE_AS   0x00
#define ECOMMUNITY_ENCODE_IP   0x01
#define ECOMMUNITY_ROUTE_TARGET   0x02
#define ECOMMUNITY_SITE_ORIGIN   0x03
#define ECOMMUNITY_FORMAT_ROUTE_MAP   0
#define ECOMMUNITY_FORMAT_COMMUNITY_LIST   1
#define ECOMMUNITY_FORMAT_DISPLAY   2
#define ECOMMUNITY_SIZE   8
#define ecom_length(X)   ((X)->size * ECOMMUNITY_SIZE)
#define BITMAP_NBBY   8
#define SET_BITMAP(MAP, NUM)   SET_FLAG (MAP[(NUM) / BITMAP_NBBY], 1 << ((NUM) % BITMAP_NBBY))
#define CHECK_BITMAP(MAP, NUM)   CHECK_FLAG (MAP[(NUM) / BITMAP_NBBY], 1 << ((NUM) % BITMAP_NBBY))
#define BGP_ATTR_TYPE_RANGE   256
#define BGP_ATTR_BITMAP_SIZE   (BGP_ATTR_TYPE_RANGE / BITMAP_NBBY)
#define BGP_ATTR_FLAG_OPTIONAL   0x80
#define BGP_ATTR_FLAG_TRANS   0x40
#define BGP_ATTR_FLAG_PARTIAL   0x20
#define BGP_ATTR_FLAG_EXTLEN   0x10
#define BGP_ATTR_MIN_LEN   2
#define ATTR_FLAG_BIT(X)   (1 << ((X) - 1))
#define COMMUNITY_DENY   0
#define COMMUNITY_PERMIT   1
#define COMMUNITY_LIST_STRING   0
#define COMMUNITY_LIST_NUMBER   1
#define COMMUNITY_LIST_STANDARD   0
#define COMMUNITY_LIST_EXPANDED   1
#define COMMUNITY_LIST_AUTO   2
#define EXTCOMMUNITY_LIST_STANDARD   3
#define EXTCOMMUNITY_LIST_EXPANDED   4
#define EXTCOMMUNITY_LIST_AUTO   5
#define COMMUNITY_LIST_ERR_CANT_FIND_LIST   -1
#define COMMUNITY_LIST_ERR_MALFORMED_VAL   -2
#define COMMUNITY_LIST_ERR_STANDARD_CONFLICT   -3
#define COMMUNITY_LIST_ERR_EXPANDED_CONFLICT   -4
#define CAPABILITY_CODE_MP   1
#define CAPABILITY_CODE_MP_LEN   4
#define CAPABILITY_CODE_REFRESH   2
#define CAPABILITY_CODE_REFRESH_OLD   128
#define CAPABILITY_CODE_REFRESH_LEN   0
#define CAPABILITY_CODE_ORF   3
#define CAPABILITY_CODE_ORF_OLD   130
#define ORF_TYPE_PREFIX   64
#define ORF_TYPE_PREFIX_OLD   128
#define ORF_MODE_RECEIVE   1
#define ORF_MODE_SEND   2
#define ORF_MODE_BOTH   3
#define CAPABILITY_CODE_DYNAMIC   66
#define CAPABILITY_CODE_DYNAMIC_LEN   0
#define CAPABILITY_ACTION_SET   0
#define CAPABILITY_ACTION_UNSET   1
#define INET_ADDRSTRLEN   16
#define INET6_ADDRSTRLEN   46
#define INET6_BUFSIZ   51
#define IPV4_MAX_BYTELEN   4
#define IPV4_MAX_BITLEN   32
#define IPV4_MAX_PREFIXLEN   32
#define IPV4_ADDR_CMP(D, S)   memcmp ((D), (S), IPV4_MAX_BYTELEN)
#define IPV4_ADDR_SAME(D, S)   (memcmp ((D), (S), IPV4_MAX_BYTELEN) == 0)
#define IPV4_ADDR_COPY(D, S)   memcpy ((D), (S), IPV4_MAX_BYTELEN)
#define IPV4_NET0(a)   ((((u_int32_t) (a)) & 0xff000000) == 0x00000000)
#define IPV4_NET127(a)   ((((u_int32_t) (a)) & 0xff000000) == 0x7f000000)
#define IPV6_MAX_BYTELEN   16
#define IPV6_MAX_BITLEN   128
#define IPV6_MAX_PREFIXLEN   128
#define IPV6_ADDR_CMP(D, S)   memcmp ((D), (S), IPV6_MAX_BYTELEN)
#define IPV6_ADDR_SAME(D, S)   (memcmp ((D), (S), IPV6_MAX_BYTELEN) == 0)
#define IPV6_ADDR_COPY(D, S)   memcpy ((D), (S), IPV6_MAX_BYTELEN)
#define PSIZE(a)   (((a) + 7) / (8))
#define PREFIX_FAMILY(p)   ((p)->family)
#define l_left   link[0]
#define l_right   link[1]
#define BGP_RECORD_UPDATE   1
#define BGP_RECORD_WITHDRAW   2
#define BGP_DAMP_NONE   0
#define BGP_DAMP_USED   1
#define BGP_DAMP_SUPPRESSED   2
#define DELTA_REUSE   10
#define DELTA_T   5
#define DEFAULT_PENALTY   1000
#define DEFAULT_HALF_LIFE   15
#define DEFAULT_REUSE   750
#define DEFAULT_SUPPRESS   2000
#define REUSE_LIST_SIZE   256
#define REUSE_ARRAY_SIZE   1024
#define BGP_DAMP_LIST_ADD(N, A)   BGP_INFO_ADD(N,A,no_reuse_list)
#define BGP_DAMP_LIST_DEL(N, A)   BGP_INFO_DEL(N,A,no_reuse_list)
#define BGP_UPTIME_LEN   25
#define DUMP_ON   1
#define DUMP_SEND   2
#define DUMP_RECV   4
#define DUMP_WITHDRAW   8
#define DUMP_NLRI   16
#define DUMP_DETAIL   32
#define NLRI   1
#define WITHDRAW   2
#define NO_OPT   3
#define SEND   4
#define RECV   5
#define DETAIL   6
#define BGP_DEBUG_FSM   0x01
#define BGP_DEBUG_EVENTS   0x01
#define BGP_DEBUG_PACKET   0x01
#define BGP_DEBUG_FILTER   0x01
#define BGP_DEBUG_KEEPALIVE   0x01
#define BGP_DEBUG_UPDATE_IN   0x01
#define BGP_DEBUG_UPDATE_OUT   0x02
#define BGP_DEBUG_NORMAL   0x01
#define BGP_DEBUG_PACKET_SEND   0x01
#define BGP_DEBUG_PACKET_SEND_DETAIL   0x02
#define BGP_DEBUG_PACKET_RECV   0x01
#define BGP_DEBUG_PACKET_RECV_DETAIL   0x02
#define CONF_DEBUG_ON(a, b)   (conf_bgp_debug_ ## a |= (BGP_DEBUG_ ## b))
#define CONF_DEBUG_OFF(a, b)   (conf_bgp_debug_ ## a &= ~(BGP_DEBUG_ ## b))
#define TERM_DEBUG_ON(a, b)   (term_bgp_debug_ ## a |= (BGP_DEBUG_ ## b))
#define TERM_DEBUG_OFF(a, b)   (term_bgp_debug_ ## a &= ~(BGP_DEBUG_ ## b))
#define DEBUG_ON(a, b)
#define DEBUG_OFF(a, b)
#define BGP_DEBUG(a, b)   (term_bgp_debug_ ## a & BGP_DEBUG_ ## b)
#define CONF_BGP_DEBUG(a, b)   (conf_bgp_debug_ ## a & BGP_DEBUG_ ## b)
#define MSG_PROTOCOL_BGP4MP   16
#define BGP4MP_STATE_CHANGE   0
#define BGP4MP_MESSAGE   1
#define BGP4MP_ENTRY   2
#define BGP4MP_SNAPSHOT   3
#define BGP_DUMP_HEADER_SIZE   12
#define BGP_SHOW_HEADER   " Network Next Hop Metric LocPrf Weight Path%s"
#define BGP_SHOW_DAMP_HEADER   " Network From Reuse Path%s"
#define BGP_SHOW_FLAP_HEADER   " Network From Flaps Duration Reuse Path%s"
#define BGP_ROUTE_NORMAL   0
#define BGP_ROUTE_STATIC   1
#define BGP_ROUTE_AGGREGATE   2
#define BGP_ROUTE_REDISTRIBUTE   3
#define BGP_INFO_IGP_CHANGED   (1 << 0)
#define BGP_INFO_DAMPED   (1 << 1)
#define BGP_INFO_HISTORY   (1 << 2)
#define BGP_INFO_SELECTED   (1 << 3)
#define BGP_INFO_VALID   (1 << 4)
#define BGP_INFO_ATTR_CHANGED   (1 << 5)
#define BGP_INFO_DMED_CHECK   (1 << 6)
#define BGP_INFO_DMED_SELECTED   (1 << 7)
#define DISTRIBUTE_IN_NAME(F)   ((F)->dlist[FILTER_IN].name)
#define DISTRIBUTE_IN(F)   ((F)->dlist[FILTER_IN].alist)
#define DISTRIBUTE_OUT_NAME(F)   ((F)->dlist[FILTER_OUT].name)
#define DISTRIBUTE_OUT(F)   ((F)->dlist[FILTER_OUT].alist)
#define PREFIX_LIST_IN_NAME(F)   ((F)->plist[FILTER_IN].name)
#define PREFIX_LIST_IN(F)   ((F)->plist[FILTER_IN].plist)
#define PREFIX_LIST_OUT_NAME(F)   ((F)->plist[FILTER_OUT].name)
#define PREFIX_LIST_OUT(F)   ((F)->plist[FILTER_OUT].plist)
#define FILTER_LIST_IN_NAME(F)   ((F)->aslist[FILTER_IN].name)
#define FILTER_LIST_IN(F)   ((F)->aslist[FILTER_IN].aslist)
#define FILTER_LIST_OUT_NAME(F)   ((F)->aslist[FILTER_OUT].name)
#define FILTER_LIST_OUT(F)   ((F)->aslist[FILTER_OUT].aslist)
#define ROUTE_MAP_IN_NAME(F)   ((F)->map[FILTER_IN].name)
#define ROUTE_MAP_IN(F)   ((F)->map[FILTER_IN].map)
#define ROUTE_MAP_OUT_NAME(F)   ((F)->map[FILTER_OUT].name)
#define ROUTE_MAP_OUT(F)   ((F)->map[FILTER_OUT].map)
#define UNSUPPRESS_MAP_NAME(F)   ((F)->usmap.name)
#define UNSUPPRESS_MAP(F)   ((F)->usmap.map)
#define BGP_READ_ON(T, F, V)   THREAD_READ_ON(master,T,F,peer,V)
#define BGP_READ_OFF(X)   THREAD_READ_OFF(X)
#define BGP_WRITE_ON(T, F)
#define BGP_WRITE_OFF(X)   THREAD_WRITE_OFF(X)
#define BGP_TIMER_ON(T, F, V)   THREAD_TIMER_ON(master,T,F,peer,V)
#define BGP_TIMER_OFF(X)   THREAD_TIMER_OFF(X)
#define BGP_EVENT_ADD(P, E)   thread_add_event (master, &BGP::bgp_event, (P), (E))
#define BGP_EVENT_DELETE(P)   thread_cancel_event (master, (P))
#define BGP_NLRI_LENGTH   1
#define BGP_TOTAL_ATTR_LEN   2
#define BGP_UNFEASIBLE_LEN   2
#define BGP_WRITE_PACKET_MAX   10
#define REFRESH_IMMEDIATE   1
#define REFRESH_DEFER   2
#define ORF_COMMON_PART_ADD   0x00
#define ORF_COMMON_PART_REMOVE   0x80
#define ORF_COMMON_PART_REMOVE_ALL   0xC0
#define ORF_COMMON_PART_PERMIT   0x00
#define ORF_COMMON_PART_DENY   0x20
#define VTY_BUFSIZ   512
#define VTY_MAXHIST   20
#define INTEGRATE_DEFAULT_CONFIG   "Zebra.conf"
#define VTY_NEWLINE   ("\n")
#define VTY_TIMEOUT_DEFAULT   600
#define VTY_READ_BUFSIZ   512
#define DIRECTORY_SEP   '/'
#define IS_DIRECTORY_SEP(c)   ((c) == DIRECTORY_SEP)
#define PRINTF_ATTRIBUTE(a, b)
#define VTY_GET_INTEGER(NAME, V, STR)
#define VTY_GET_INTEGER_RANGE(NAME, V, STR, MIN, MAX)
#define CMD_SUCCESS   0
#define CMD_WARNING   1
#define CMD_ERR_NO_MATCH   2
#define CMD_ERR_AMBIGUOUS   3
#define CMD_ERR_INCOMPLETE   4
#define CMD_ERR_EXEED_ARGC_MAX   5
#define CMD_ERR_NOTHING_TODO   6
#define CMD_COMPLETE_FULL_MATCH   7
#define CMD_COMPLETE_MATCH   8
#define CMD_COMPLETE_LIST_MATCH   9
#define CMD_SUCCESS_DAEMON   10
#define CMD_ARGC_MAX   25
#define DEFUN(funcname, cmdname, cmdstr, helpstr)
#define DEFUNST(funcname, cmdname, cmdstr, helpstr)
#define DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr)
#define DEFSH(daemon, cmdname, cmdstr, helpstr)
#define DEFUNSH(daemon, funcname, cmdname, cmdstr, helpstr)
#define ALIAS(funcname, cmdname, cmdstr, helpstr)
#define CMD_OPTION(S)   ((S[0]) == '[')
#define CMD_VARIABLE(S)   (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<'))
#define CMD_VARARG(S)   ((S[0]) == '.')
#define CMD_RANGE(S)   ((S[0] == '<'))
#define CMD_IPV4(S)   ((strcmp ((S), "A.B.C.D") == 0))
#define CMD_IPV4_PREFIX(S)   ((strcmp ((S), "A.B.C.D/M") == 0))
#define CMD_IPV6(S)   ((strcmp ((S), "X:X::X:X") == 0))
#define CMD_IPV6_PREFIX(S)   ((strcmp ((S), "X:X::X:X/M") == 0))
#define SHOW_STR   "Show running system information\n"
#define IP_STR   "IP information\n"
#define IPV6_STR   "IPv6 information\n"
#define NO_STR   "Negate a command or set its defaults\n"
#define CLEAR_STR   "Reset functions\n"
#define RIP_STR   "RIP information\n"
#define BGP_STR   "BGP information\n"
#define OSPF_STR   "OSPF information\n"
#define NEIGHBOR_STR   "Specify neighbor router\n"
#define DEBUG_STR   "Debugging functions (see also 'undebug')\n"
#define UNDEBUG_STR   "Disable debugging functions (see also 'debug')\n"
#define ROUTER_STR   "Enable a routing process\n"
#define AS_STR   "AS number\n"
#define MBGP_STR   "MBGP information\n"
#define MATCH_STR   "Match values from routing table\n"
#define SET_STR   "Set values in destination routing protocol\n"
#define OUT_STR   "Filter outgoing routing updates\n"
#define IN_STR   "Filter incoming routing updates\n"
#define V4NOTATION_STR   "specify by IPv4 address notation(e.g. 0.0.0.0)\n"
#define OSPF6_NUMBER_STR   "Specify by number\n"
#define INTERFACE_STR   "Interface infomation\n"
#define IFNAME_STR   "Interface name(e.g. ep0)\n"
#define IP6_STR   "IPv6 Information\n"
#define OSPF6_STR   "Open Shortest Path First (OSPF) for IPv6\n"
#define OSPF6_ROUTER_STR   "Enable a routing process\n"
#define OSPF6_INSTANCE_STR   "<1-65535> Instance ID\n"
#define SECONDS_STR   "<1-65535> Seconds\n"
#define ROUTE_STR   "Routing Table\n"
#define PREFIX_LIST_STR   "Build a prefix list\n"
#define OSPF6_DUMP_TYPE_LIST   "(neighbor|interface|area|lsa|zebra|config|dbex|spf|route|lsdb|redistribute|hook|asbr|prefix|abr)"
#define CONF_BACKUP_EXT   ".sav"
#define NEIGHBOR_CMD   "neighbor A.B.C.D "
#define NO_NEIGHBOR_CMD   "no neighbor A.B.C.D "
#define NEIGHBOR_ADDR_STR   "Neighbor address\n"
#define NEIGHBOR_CMD2   "neighbor (A.B.C.D|WORD) "
#define NO_NEIGHBOR_CMD2   "no neighbor (A.B.C.D|WORD) "
#define NEIGHBOR_ADDR_STR2   "Neighbor address\nNeighbor tag\n"
#define HASHTABSIZE   1024
#define nextnode(X)   ((X) = (X)->next)
#define listhead(X)   ((X)->head)
#define listcount(X)   ((X)->count)
#define list_isempty(X)   ((X)->head == NULL && (X)->tail == NULL)
#define getdata(X)   ((X)->data)
#define LIST_LOOP(L, V, N)
#define LISTNODE_ADD(L, N)
#define LISTNODE_DELETE(L, N)
#define ZLOG_NOLOG   0x00
#define ZLOG_FILE   0x01
#define ZLOG_SYSLOG   0x02
#define ZLOG_STDOUT   0x04
#define ZLOG_STDERR   0x08
#define ZLOG_NOLOG_INDEX   0
#define ZLOG_FILE_INDEX   1
#define ZLOG_SYSLOG_INDEX   2
#define ZLOG_STDOUT_INDEX   3
#define ZLOG_STDERR_INDEX   4
#define ZLOG_MAX_INDEX   5
#define LOOKUP(x, y)   mes_lookup(x, x ## _max, y)
#define XMALLOC(mtype, size)   zmalloc ((mtype), (size))
#define XCALLOC(mtype, size)   zcalloc ((mtype), (size))
#define XREALLOC(mtype, ptr, size)   zrealloc ((mtype), (ptr), (size))
#define XFREE(mtype, ptr)   zfree ((mtype), (ptr))
#define XSTRDUP(mtype, str)   zstrdup ((mtype), (str))
#define AFI_ORF_PREFIX   65535
#define STREAM_PNT(S)   ((S)->data + (S)->getp)
#define STREAM_SIZE(S)   ((S)->size)
#define STREAM_REMAIN(S)   ((S)->size - (S)->putp)
#define STREAM_DATA(S)   ((S)->data)
#define l_left   link[0]
#define l_right   link[1]
#define RUSAGE_T   struct timeval
#define GETRUSAGE(X)   gettimeofday (X, NULL);
#define THREAD_READ   0
#define THREAD_WRITE   1
#define THREAD_TIMER   2
#define THREAD_EVENT   3
#define THREAD_READY   4
#define THREAD_UNUSED   5
#define THREAD_YIELD_TIME_SLOT   100 * 1000L
#define THREAD_ARG(X)   ((X)->arg)
#define THREAD_FD(X)   ((X)->u.fd)
#define THREAD_VAL(X)   ((X)->u.val)
#define THREAD_READ_ON(master, thread, func, arg, sock)
#define THREAD_WRITE_ON(master, thread, func, arg, sock)
#define THREAD_TIMER_ON(master, thread, func, arg, time)
#define THREAD_OFF(thread)
#define THREAD_READ_OFF(thread)   THREAD_OFF(thread)
#define THREAD_WRITE_OFF(thread)   THREAD_OFF(thread)
#define THREAD_TIMER_OFF(thread)   THREAD_OFF(thread)
#define VECTOR_MIN_SIZE   1
#define vector_slot(V, I)   ((V)->index[(I)])
#define vector_max(V)   ((V)->max)
#define TYPE_MAIN   0
#define TYPE_FETCH1   1
#define TYPE_FETCH2   2
#define TYPE_EXECUTE   3
#define SET_TIMEOUT_TYPE_MAIN   type=TYPE_MAIN
#define SET_TIMEOUT_TYPE_FETCH1   type=TYPE_FETCH1
#define SET_TIMEOUT_TYPE_FETCH2   type=TYPE_FETCH2
#define SET_TIMEOUT_TYPE_EXECUTE   type=TYPE_EXECUTE
#define BGP_VERSION   1.0
#define EXTCOMMUNITY_LIST_STR   "Add a extended community list entry\n"
#define EXTCOMMUNITY_VAL_STR   "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n"
#define COMMUNITY_LIST_STR   "Add a community list entry\n"
#define COMMUNITY_VAL_STR   "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n"
#define NO_WORKLOAD_MODEL   0
#define UNIFORM_WORKLOAD_MODEL   1
#define TIME_SAMPLE_WORKLOAD_MODEL   2
#define MRAI_DISABLE   0
#define MRAI_PER_PEER   1
#define MRAI_PER_PREFIX   2
#define MAX_CONFIG_LENGTH   512

Typedefs

typedef list< RouteMsgRMsgList_t
typedef vector< BGPPeerPeerVec_t
typedef u_int16_t afi_t
typedef u_char safi_t
typedef u_int16_t zebra_size_t
typedef u_int8_t zebra_command_t
typedef u_int16_t as_t
typedef u_long bgp_size_t
typedef list< pair< struct
prefix, double > > 
Prefix2Timestamp_t
typedef vector< pair< IPAddr_t,
BGP * > > 
IpBgp_t
typedef vector< pair< agent_index,
pair< int, RMsgList_t > > > 
Agent2MsgListMap_t
typedef vector< pair< agent_index,
union sockunion > > 
Agent2Su_t
typedef vector< pair< union
sockunion,BGP * > > 
Su2BgpMap_t
typedef pair< string, string > IpAddrMaskPair_t
typedef list< IpAddrMaskPair_tInterfaceList_t
typedef list< pair< string,
InterfaceList_t > > 
String2List_t
typedef std::pair< TCP *,
MessageBuffer * > 
TCPMsgBuf_pair
typedef std::map< TCP *, MessageBuffer * > TCPMsgBuf

Enumerations

enum  connect_result { connect_error, connect_success, connect_in_progress }
enum  { BGP_PEER_IBGP, BGP_PEER_EBGP, BGP_PEER_INTERNAL, BGP_PEER_CONFED }
enum  bgp_clear_type {
  BGP_CLEAR_SOFT_NONE, BGP_CLEAR_SOFT_OUT, BGP_CLEAR_SOFT_IN, BGP_CLEAR_SOFT_BOTH,
  BGP_CLEAR_SOFT_IN_ORF_PREFIX
}
enum  peer_change_type { peer_change_none, peer_change_reset, peer_change_reset_in, peer_change_reset_out }
enum  as_token {
  as_token_asval, as_token_set_start, as_token_set_end, as_token_confed_start,
  as_token_confed_end, as_token_unknown
}
enum  community_token {
  community_token_val, community_token_no_export, community_token_no_advertise, community_token_local_as,
  community_token_unknown
}
enum  ecommunity_token { ecommunity_token_rt, ecommunity_token_soo, ecommunity_token_val, ecommunity_token_unknown }
enum  as_filter_type { AS_FILTER_DENY, AS_FILTER_PERMIT }
enum  as_list_type { ACCESS_TYPE_STRING, ACCESS_TYPE_NUMBER }
enum  clear_sort {
  clear_all, clear_peer, clear_group, clear_external,
  clear_as
}
enum  show_type { show_all, show_peer }
enum  bgp_dump_type { BGP_DUMP_ALL, BGP_DUMP_UPDATES, BGP_DUMP_ROUTES }
enum  MRT_MSG_TYPES {
  MSG_NULL, MSG_START, MSG_DIE, MSG_I_AM_DEAD,
  MSG_PEER_DOWN, MSG_PROTOCOL_BGP, MSG_PROTOCOL_RIP, MSG_PROTOCOL_IDRP,
  MSG_PROTOCOL_RIPNG, MSG_PROTOCOL_BGP4PLUS, MSG_PROTOCOL_BGP4PLUS_01, MSG_PROTOCOL_OSPF,
  MSG_TABLE_DUMP
}
enum  bgp_show_type {
  bgp_show_type_normal, bgp_show_type_regexp, bgp_show_type_prefix_list, bgp_show_type_filter_list,
  bgp_show_type_route_map, bgp_show_type_neighbor, bgp_show_type_cidr_only, bgp_show_type_prefix_longer,
  bgp_show_type_community_all, bgp_show_type_community, bgp_show_type_community_exact, bgp_show_type_community_list,
  bgp_show_type_community_list_exact, bgp_show_type_flap_statistics, bgp_show_type_flap_address, bgp_show_type_flap_prefix,
  bgp_show_type_flap_cidr_only, bgp_show_type_flap_regexp, bgp_show_type_flap_filter_list, bgp_show_type_flap_prefix_list,
  bgp_show_type_flap_prefix_longer, bgp_show_type_flap_route_map, bgp_show_type_flap_neighbor, bgp_show_type_dampend_paths,
  bgp_show_type_damp_neighbor
}
enum  match_type {
  no_match, extend_match, ipv4_prefix_match, ipv4_match,
  ipv6_prefix_match, ipv6_match, range_match, vararg_match,
  partly_match, exact_match
}
enum  Type { VTY_TERM, VTY_FILE, VTY_SHELL, VTY_SHELL_SERV }
enum  Status {
  VTY_NORMAL, VTY_CLOSE, VTY_MORE, VTY_MORELINE,
  VTY_START, VTY_CONTINUE
}
enum  node_type {
  AUTH_NODE, VIEW_NODE, AUTH_ENABLE_NODE, ENABLE_NODE,
  CONFIG_NODE, DEBUG_NODE, AAA_NODE, KEYCHAIN_NODE,
  KEYCHAIN_KEY_NODE, INTERFACE_NODE, ZEBRA_NODE, TABLE_NODE,
  RIP_NODE, RIPNG_NODE, BGP_NODE, BGP_VPNV4_NODE,
  BGP_IPV4_NODE, BGP_IPV4M_NODE, BGP_IPV6_NODE, OSPF_NODE,
  OSPF6_NODE, MASC_NODE, IRDP_NODE, IP_NODE,
  ACCESS_NODE, PREFIX_NODE, ACCESS_IPV6_NODE, PREFIX_IPV6_NODE,
  AS_LIST_NODE, COMMUNITY_LIST_NODE, RMAP_NODE, SMUX_NODE,
  DUMP_NODE, FORWARDING_NODE, VTY_NODE
}
enum  distribute_type { DISTRIBUTE_IN, DISTRIBUTE_OUT, DISTRIBUTE_MAX }
enum  filter_type { FILTER_DENY, FILTER_PERMIT, FILTER_DYNAMIC }
enum  zlog_proto_t {
  ZLOG_NONE, ZLOG_DEFAULT, ZLOG_ZEBRA, ZLOG_RIP,
  ZLOG_BGP, ZLOG_OSPF, ZLOG_RIPNG, ZLOG_OSPF6,
  ZLOG_MASC
}
enum  {
  MTYPE_TMP = 1, MTYPE_STRVEC, MTYPE_VECTOR, MTYPE_VECTOR_INDEX,
  MTYPE_LINK_LIST, MTYPE_LINK_NODE, MTYPE_THREAD, MTYPE_THREAD_MASTER,
  MTYPE_VTY, MTYPE_VTY_HIST, MTYPE_VTY_OUT_BUF, MTYPE_IF,
  MTYPE_CONNECTED, MTYPE_AS_SEG, MTYPE_AS_STR, MTYPE_AS_PATH,
  MTYPE_CLUSTER, MTYPE_CLUSTER_VAL, MTYPE_ATTR, MTYPE_TRANSIT,
  MTYPE_TRANSIT_VAL, MTYPE_BUFFER, MTYPE_BUFFER_DATA, MTYPE_STREAM,
  MTYPE_STREAM_DATA, MTYPE_STREAM_FIFO, MTYPE_PREFIX, MTYPE_PREFIX_IPV4,
  MTYPE_PREFIX_IPV6, MTYPE_HASH, MTYPE_HASH_INDEX, MTYPE_HASH_BACKET,
  MTYPE_RIPNG_ROUTE, MTYPE_RIPNG_AGGREGATE, MTYPE_ROUTE_TABLE, MTYPE_ROUTE_NODE,
  MTYPE_ACCESS_LIST, MTYPE_ACCESS_LIST_STR, MTYPE_ACCESS_FILTER, MTYPE_PREFIX_LIST,
  MTYPE_PREFIX_LIST_STR, MTYPE_PREFIX_LIST_ENTRY, MTYPE_ROUTE_MAP, MTYPE_ROUTE_MAP_NAME,
  MTYPE_ROUTE_MAP_INDEX, MTYPE_ROUTE_MAP_RULE, MTYPE_ROUTE_MAP_RULE_STR, MTYPE_ROUTE_MAP_COMPILED,
  MTYPE_RIB, MTYPE_DISTRIBUTE, MTYPE_ZLOG, MTYPE_ZCLIENT,
  MTYPE_NEXTHOP, MTYPE_RTADV_PREFIX, MTYPE_IF_RMAP, MTYPE_SOCKUNION,
  MTYPE_STATIC_IPV4, MTYPE_STATIC_IPV6, MTYPE_DESC, MTYPE_OSPF_TOP,
  MTYPE_OSPF_AREA, MTYPE_OSPF_AREA_RANGE, MTYPE_OSPF_NETWORK, MTYPE_OSPF_NEIGHBOR_STATIC,
  MTYPE_OSPF_IF, MTYPE_OSPF_NEIGHBOR, MTYPE_OSPF_ROUTE, MTYPE_OSPF_TMP,
  MTYPE_OSPF_LSA, MTYPE_OSPF_LSA_DATA, MTYPE_OSPF_LSDB, MTYPE_OSPF_PACKET,
  MTYPE_OSPF_FIFO, MTYPE_OSPF_VERTEX, MTYPE_OSPF_NEXTHOP, MTYPE_OSPF_PATH,
  MTYPE_OSPF_VL_DATA, MTYPE_OSPF_CRYPT_KEY, MTYPE_OSPF_EXTERNAL_INFO, MTYPE_OSPF_MESSAGE,
  MTYPE_OSPF_DISTANCE, MTYPE_OSPF_IF_INFO, MTYPE_OSPF_IF_PARAMS, MTYPE_OSPF6_TOP,
  MTYPE_OSPF6_AREA, MTYPE_OSPF6_IF, MTYPE_OSPF6_NEIGHBOR, MTYPE_OSPF6_ROUTE,
  MTYPE_OSPF6_PREFIX, MTYPE_OSPF6_MESSAGE, MTYPE_OSPF6_LSA, MTYPE_OSPF6_LSA_SUMMARY,
  MTYPE_OSPF6_LSDB, MTYPE_OSPF6_VERTEX, MTYPE_OSPF6_SPFTREE, MTYPE_OSPF6_NEXTHOP,
  MTYPE_OSPF6_EXTERNAL_INFO, MTYPE_OSPF6_OTHER, MTYPE_BGP, MTYPE_PEER_CONF,
  MTYPE_BGP_PEER, MTYPE_PEER_GROUP, MTYPE_PEER_DESC, MTYPE_PEER_UPDATE_SOURCE,
  MTYPE_BGP_STATIC, MTYPE_BGP_AGGREGATE, MTYPE_BGP_CONFED_LIST, MTYPE_BGP_NEXTHOP_CACHE,
  MTYPE_BGP_DAMP_INFO, MTYPE_BGP_DAMP_ARRAY, MTYPE_BGP_ANNOUNCE, MTYPE_BGP_ATTR_QUEUE,
  MTYPE_BGP_ROUTE_QUEUE, MTYPE_BGP_DISTANCE, MTYPE_BGP_ROUTE, MTYPE_BGP_TABLE,
  MTYPE_BGP_NODE, MTYPE_BGP_MRAI_INFO, MTYPE_BGP_ROUTEADV_LIST, MTYPE_BGP_ADVERTISE_ATTR,
  MTYPE_BGP_ADVERTISE, MTYPE_BGP_ADJ_IN, MTYPE_BGP_ADJ_OUT, MTYPE_BGP_REGEXP,
  MTYPE_AS_FILTER, MTYPE_AS_FILTER_STR, MTYPE_AS_LIST, MTYPE_COMMUNITY,
  MTYPE_COMMUNITY_VAL, MTYPE_COMMUNITY_STR, MTYPE_ECOMMUNITY, MTYPE_ECOMMUNITY_VAL,
  MTYPE_ECOMMUNITY_STR, MTYPE_COMMUNITY_LIST_HANDLER, MTYPE_COMMUNITY_LIST, MTYPE_COMMUNITY_LIST_NAME,
  MTYPE_COMMUNITY_LIST_ENTRY, MTYPE_COMMUNITY_LIST_CONFIG, MTYPE_RIP, MTYPE_RIP_INTERFACE,
  MTYPE_RIP_DISTANCE, MTYPE_RIP_OFFSET_LIST, MTYPE_RIP_INFO, MTYPE_RIP_PEER,
  MTYPE_KEYCHAIN, MTYPE_KEY, MTYPE_VTYSH_CONFIG, MTYPE_VTYSH_CONFIG_LINE,
  MTYPE_VRF, MTYPE_VRF_NAME, MTYPE_MAX
}
enum  display_type {
  normal_display, summary_display, detail_display, sequential_display,
  longer_display, first_match_display
}
enum  prefix_list_type { PREFIX_DENY, PREFIX_PERMIT }
enum  prefix_name_type { PREFIX_TYPE_STRING, PREFIX_TYPE_NUMBER }
enum  route_map_type { RMAP_PERMIT, RMAP_DENY, RMAP_ANY }
enum  route_map_result_t {
  RMAP_MATCH, RMAP_DENYMATCH, RMAP_NOMATCH, RMAP_ERROR,
  RMAP_OKAY
}
enum  route_map_object_t {
  RMAP_RIP, RMAP_RIPNG, RMAP_OSPF, RMAP_OSPF6,
  RMAP_BGP
}
enum  route_map_end_t { RMAP_EXIT, RMAP_GOTO, RMAP_NEXT }
enum  route_map_event_t {
  RMAP_EVENT_SET_ADDED, RMAP_EVENT_SET_DELETED, RMAP_EVENT_SET_REPLACED, RMAP_EVENT_MATCH_ADDED,
  RMAP_EVENT_MATCH_DELETED, RMAP_EVENT_MATCH_REPLACED, RMAP_EVENT_INDEX_ADDED, RMAP_EVENT_INDEX_DELETED
}
enum  { RMAP_RULE_MISSING = 1, RMAP_COMPILE_ERROR }
enum  event { VTY_SERV, VTY_READ, VTY_WRITE, VTY_TIMEOUT_RESET }

Functions

int community_compare (const void *, const void *)
int cmp_node (const void *, const void *)
int cmp_desc (const void *, const void *)


Define Documentation

#define Active   3
 

#define AFI_IP   1
 

#define AFI_IP6   2
 

#define AFI_MAX   3
 

#define AFI_ORF_PREFIX   65535
 

#define ALIAS funcname,
cmdname,
cmdstr,
helpstr   ) 
 

Value:

struct cmd_element BGP::cmdname = \
  { \
    cmdstr, \
    &BGP::funcname, \
    helpstr \
  };

#define AS_CONFED_SEQUENCE   3
 

#define AS_CONFED_SET   4
 

#define AS_HEADER_SIZE   2
 

#define AS_SEQUENCE   2
 

#define AS_SET   1
 

#define AS_STR   "AS number\n"
 

#define AS_VALUE_SIZE   sizeof (as_t)
 

#define ASPATH_STR_DEFAULT_LEN   32
 

#define ASSEGMENT_LEN  )     ((X)->length * AS_VALUE_SIZE + AS_HEADER_SIZE)
 

#define ATTR_FLAG_BIT  )     (1 << ((X) - 1))
 

#define BGP4MP_ENTRY   2
 

#define BGP4MP_MESSAGE   1
 

#define BGP4MP_SNAPSHOT   3
 

#define BGP4MP_STATE_CHANGE   0
 

#define BGP_ADJ_IN_ADD N,
 )     BGP_INFO_ADD(N,A,adj_in)
 

#define BGP_ADJ_IN_DEL N,
 )     BGP_INFO_DEL(N,A,adj_in)
 

#define BGP_ADJ_OUT_ADD N,
 )     BGP_INFO_ADD(N,A,adj_out)
 

#define BGP_ADJ_OUT_DEL N,
 )     BGP_INFO_DEL(N,A,adj_out)
 

#define BGP_ATTR_ADVERTISER   12
 

#define BGP_ATTR_AGGREGATOR   7
 

#define BGP_ATTR_AS_PATH   2
 

#define BGP_ATTR_ATOMIC_AGGREGATE   6
 

#define BGP_ATTR_BITMAP_SIZE   (BGP_ATTR_TYPE_RANGE / BITMAP_NBBY)
 

#define BGP_ATTR_CLUSTER_LIST   10
 

#define BGP_ATTR_COMMUNITIES   8
 

#define BGP_ATTR_DPA   11
 

#define BGP_ATTR_EXT_COMMUNITIES   16
 

#define BGP_ATTR_FLAG_EXTLEN   0x10
 

#define BGP_ATTR_FLAG_OPTIONAL   0x80
 

#define BGP_ATTR_FLAG_PARTIAL   0x20
 

#define BGP_ATTR_FLAG_TRANS   0x40
 

#define BGP_ATTR_LOCAL_PREF   5
 

#define BGP_ATTR_MIN_LEN   2
 

#define BGP_ATTR_MP_REACH_NLRI   14
 

#define BGP_ATTR_MP_UNREACH_NLRI   15
 

#define BGP_ATTR_MULTI_EXIT_DISC   4
 

#define BGP_ATTR_NEXT_HOP   3
 

#define BGP_ATTR_ORIGIN   1
 

#define BGP_ATTR_ORIGINATOR_ID   9
 

#define BGP_ATTR_RCID_PATH   13
 

#define BGP_ATTR_TYPE_RANGE   256
 

#define BGP_CLEAR_CONNECT_RETRY   20
 

#define BGP_CONFIG_CLUSTER_ID   (1 << 1)
 

#define BGP_CONFIG_CONFEDERATION   (1 << 2)
 

#define BGP_CONFIG_DAMPENING   (1 << 0)
 

#define BGP_CONFIG_DEFAULT_LOCAL_PREF   (1 << 3)
 

#define BGP_CONFIG_ROUTER_ID   (1 << 0)
 

#define BGP_DAMP_LIST_ADD N,
 )     BGP_INFO_ADD(N,A,no_reuse_list)
 

#define BGP_DAMP_LIST_DEL N,
 )     BGP_INFO_DEL(N,A,no_reuse_list)
 

#define BGP_DAMP_NONE   0
 

#define BGP_DAMP_SUPPRESSED   2
 

#define BGP_DAMP_USED   1
 

#define BGP_DEBUG a,
 )     (term_bgp_debug_ ## a & BGP_DEBUG_ ## b)
 

#define BGP_DEBUG_EVENTS   0x01
 

#define BGP_DEBUG_FILTER   0x01
 

#define BGP_DEBUG_FSM   0x01
 

#define BGP_DEBUG_KEEPALIVE   0x01
 

#define BGP_DEBUG_NORMAL   0x01
 

#define BGP_DEBUG_PACKET   0x01
 

#define BGP_DEBUG_PACKET_RECV   0x01
 

#define BGP_DEBUG_PACKET_RECV_DETAIL   0x02
 

#define BGP_DEBUG_PACKET_SEND   0x01
 

#define BGP_DEBUG_PACKET_SEND_DETAIL   0x02
 

#define BGP_DEBUG_UPDATE_IN   0x01
 

#define BGP_DEBUG_UPDATE_OUT   0x02
 

#define BGP_DEFAULT_ASORIGINATE   15
 

#define BGP_DEFAULT_CONFIG   "bgpd.conf"
 

#define BGP_DEFAULT_CONNECT_RETRY   120
 

#define BGP_DEFAULT_EBGP_ROUTEADV   30
 

#define BGP_DEFAULT_HOLDTIME   180
 

#define BGP_DEFAULT_IBGP_ROUTEADV   5
 

#define BGP_DEFAULT_KEEPALIVE   60
 

#define BGP_DEFAULT_LOCAL_PREF   100
 

#define BGP_DUMP_HEADER_SIZE   12
 

#define BGP_ERR_AF_UNCONFIGURED   -24
 

#define BGP_ERR_AS_MISMATCH   -15
 

#define BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS   -28
 

#define BGP_ERR_INSTANCE_MISMATCH   -26
 

#define BGP_ERR_INVALID_AS   -3
 

#define BGP_ERR_INVALID_BGP   -4
 

#define BGP_ERR_INVALID_FLAG   -2
 

#define BGP_ERR_INVALID_FOR_PEER_GROUP_MEMBER   -17
 

#define BGP_ERR_INVALID_VALUE   -1
 

#define BGP_ERR_LOCAL_AS_ALLOWED_ONLY_FOR_EBGP   -27
 

#define BGP_ERR_MAX   -29
 

#define BGP_ERR_MULTIPLE_INSTANCE_NOT_SET   -14
 

#define BGP_ERR_MULTIPLE_INSTANCE_USED   -6
 

#define BGP_ERR_NOT_INTERNAL_PEER   -22
 

#define BGP_ERR_PEER_BELONGS_TO_GROUP   -8
 

#define BGP_ERR_PEER_FILTER_CONFLICT   -21
 

#define BGP_ERR_PEER_FLAG_CONFLICT   -19
 

#define BGP_ERR_PEER_GROUP_AF_UNCONFIGURED   -9
 

#define BGP_ERR_PEER_GROUP_CANT_CHANGE   -11
 

#define BGP_ERR_PEER_GROUP_HAS_THE_FLAG   -18
 

#define BGP_ERR_PEER_GROUP_MEMBER   -5
 

#define BGP_ERR_PEER_GROUP_MEMBER_EXISTS   -7
 

#define BGP_ERR_PEER_GROUP_MISMATCH   -12
 

#define BGP_ERR_PEER_GROUP_NO_REMOTE_AS   -10
 

#define BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT   -13
 

#define BGP_ERR_PEER_GROUP_SHUTDOWN   -20
 

#define BGP_ERR_PEER_INACTIVE   -16
 

#define BGP_ERR_REMOVE_PRIVATE_AS   -23
 

#define BGP_ERR_SOFT_RECONFIG_UNCONFIGURED   -25
 

#define BGP_ERROR_START_TIMER   30
 

#define BGP_EVENT_ADD P,
 )     thread_add_event (master, &BGP::bgp_event, (P), (E))
 

#define BGP_EVENT_DELETE  )     thread_cancel_event (master, (P))
 

#define BGP_EVENTS_MAX   14
 

#define BGP_FLAG_ALWAYS_COMPARE_MED   (1 << 0)
 

#define BGP_FLAG_ASPATH_IGNORE   (1 << 8)
 

#define BGP_FLAG_COMPARE_ROUTER_ID   (1 << 7)
 

#define BGP_FLAG_DETERMINISTIC_MED   (1 << 1)
 

#define BGP_FLAG_ENFORCE_FIRST_AS   (1 << 6)
 

#define BGP_FLAG_IMPORT_CHECK   (1 << 9)
 

#define BGP_FLAG_LOG_NEIGHBOR_CHANGES   (1 << 11)
 

#define BGP_FLAG_MED_CONFED   (1 << 3)
 

#define BGP_FLAG_MED_MISSING_AS_WORST   (1 << 2)
 

#define BGP_FLAG_NO_CLIENT_TO_CLIENT   (1 << 5)
 

#define BGP_FLAG_NO_DEFAULT_IPV4   (1 << 4)
 

#define BGP_FLAG_NO_FAST_EXT_FAILOVER   (1 << 10)
 

#define BGP_HEADER_SIZE   19
 

#define BGP_IMPORT_INTERVAL_DEFAULT   15
 

#define BGP_INFO_ADD N,
A,
TYPE   ) 
 

Value:

do {                                                \
    (A)->prev = NULL;                                 \
    (A)->next = (N)->TYPE;                            \
    if ((N)->TYPE)                                    \
      (N)->TYPE->prev = (A);                          \
    (N)->TYPE = (A);                                  \
  } while (0)

#define BGP_INFO_ATTR_CHANGED   (1 << 5)
 

#define BGP_INFO_DAMPED   (1 << 1)
 

#define BGP_INFO_DEL N,
A,
TYPE   ) 
 

Value:

do {                                                \
    if ((A)->next)                                    \
      (A)->next->prev = (A)->prev;                    \
    if ((A)->prev)                                    \
      (A)->prev->next = (A)->next;                    \
    else                                              \
      (N)->TYPE = (A)->next;                          \
  } while (0)

#define BGP_INFO_DMED_CHECK   (1 << 6)
 

#define BGP_INFO_DMED_SELECTED   (1 << 7)
 

#define BGP_INFO_HISTORY   (1 << 2)
 

#define BGP_INFO_HOLDDOWN BI   ) 
 

Value:

(! CHECK_FLAG ((BI)->flags, BGP_INFO_VALID)         \
   || CHECK_FLAG ((BI)->flags, BGP_INFO_HISTORY)      \
   || CHECK_FLAG ((BI)->flags, BGP_INFO_DAMPED))

#define BGP_INFO_IGP_CHANGED   (1 << 0)
 

#define BGP_INFO_SELECTED   (1 << 3)
 

#define BGP_INFO_VALID   (1 << 4)
 

#define BGP_INIT_START_TIMER   5
 

#define BGP_INPUT  )     ((P)->ibuf)
 

#define BGP_INPUT_PNT  )     (STREAM_PNT(BGP_INPUT(P)))
 

#define BGP_MARKER_SIZE   16
 

#define BGP_MAX_PACKET_SIZE   4096
 

#define BGP_MSG_CAPABILITY   6
 

#define BGP_MSG_CAPABILITY_MIN_SIZE   (BGP_HEADER_SIZE + 3)
 

#define BGP_MSG_KEEPALIVE   4
 

#define BGP_MSG_KEEPALIVE_MIN_SIZE   (BGP_HEADER_SIZE + 0)
 

#define BGP_MSG_NOTIFY   3
 

#define BGP_MSG_NOTIFY_MIN_SIZE   (BGP_HEADER_SIZE + 2)
 

#define BGP_MSG_OPEN   1
 

#define BGP_MSG_OPEN_MIN_SIZE   (BGP_HEADER_SIZE + 10)
 

#define BGP_MSG_ROUTE_REFRESH_MIN_SIZE   (BGP_HEADER_SIZE + 4)
 

#define BGP_MSG_ROUTE_REFRESH_NEW   5
 

#define BGP_MSG_ROUTE_REFRESH_OLD   128
 

#define BGP_MSG_UPDATE   2
 

#define BGP_MSG_UPDATE_MIN_SIZE   (BGP_HEADER_SIZE + 4)
 

#define BGP_NLRI_LENGTH   1
 

#define BGP_NOTIFY_CAPABILITY_ERR   7
 

#define BGP_NOTIFY_CAPABILITY_INVALID_ACTION   1
 

#define BGP_NOTIFY_CAPABILITY_INVALID_LENGTH   2
 

#define BGP_NOTIFY_CAPABILITY_MALFORMED_CODE   3
 

#define BGP_NOTIFY_CAPABILITY_MAX   4
 

#define BGP_NOTIFY_CEASE   6
 

#define BGP_NOTIFY_CEASE_ADMIN_RESET   4
 

#define BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN   2
 

#define BGP_NOTIFY_CEASE_CONFIG_CHANGE   6
 

#define BGP_NOTIFY_CEASE_CONNECT_COLLISION   7
 

#define BGP_NOTIFY_CEASE_CONNECT_REJECT   5
 

#define BGP_NOTIFY_CEASE_MAX   8
 

#define BGP_NOTIFY_CEASE_MAX_PREFIX   1
 

#define BGP_NOTIFY_CEASE_PEER_UNCONFIG   3
 

#define BGP_NOTIFY_FSM_ERR   5
 

#define BGP_NOTIFY_HEADER_BAD_MESLEN   2
 

#define BGP_NOTIFY_HEADER_BAD_MESTYPE   3
 

#define BGP_NOTIFY_HEADER_ERR   1
 

#define BGP_NOTIFY_HEADER_MAX   4
 

#define BGP_NOTIFY_HEADER_NOT_SYNC   1
 

#define BGP_NOTIFY_HOLD_ERR   4
 

#define BGP_NOTIFY_MAX   8
 

#define BGP_NOTIFY_OPEN_AUTH_FAILURE   5
 

#define BGP_NOTIFY_OPEN_BAD_BGP_IDENT   3
 

#define BGP_NOTIFY_OPEN_BAD_PEER_AS   2
 

#define BGP_NOTIFY_OPEN_ERR   2
 

#define BGP_NOTIFY_OPEN_MAX   8
 

#define BGP_NOTIFY_OPEN_UNACEP_HOLDTIME   6
 

#define BGP_NOTIFY_OPEN_UNSUP_CAPBL   7
 

#define BGP_NOTIFY_OPEN_UNSUP_PARAM   4
 

#define BGP_NOTIFY_OPEN_UNSUP_VERSION   1
 

#define BGP_NOTIFY_UPDATE_AS_ROUTE_LOOP   7
 

#define BGP_NOTIFY_UPDATE_ATTR_FLAG_ERR   4
 

#define BGP_NOTIFY_UPDATE_ATTR_LENG_ERR   5
 

#define BGP_NOTIFY_UPDATE_ERR   3
 

#define BGP_NOTIFY_UPDATE_INVAL_NETWORK   10
 

#define BGP_NOTIFY_UPDATE_INVAL_NEXT_HOP   8
 

#define BGP_NOTIFY_UPDATE_INVAL_ORIGIN   6
 

#define BGP_NOTIFY_UPDATE_MAL_AS_PATH   11
 

#define BGP_NOTIFY_UPDATE_MAL_ATTR   1
 

#define BGP_NOTIFY_UPDATE_MAX   12
 

#define BGP_NOTIFY_UPDATE_MISS_ATTR   3
 

#define BGP_NOTIFY_UPDATE_OPT_ATTR_ERR   9
 

#define BGP_NOTIFY_UPDATE_UNREC_ATTR   2
 

#define BGP_OPEN_OPT_AUTH   1
 

#define BGP_OPEN_OPT_CAP   2
 

#define BGP_OPT_CONFIG_CISCO   (1 << 2)
 

#define BGP_OPT_MULTIPLE_INSTANCE   (1 << 1)
 

#define BGP_OPT_NO_FIB   (1 << 0)
 

#define BGP_ORIGIN_EGP   1
 

#define BGP_ORIGIN_IGP   0
 

#define BGP_ORIGIN_INCOMPLETE   2
 

#define BGP_PORT_DEFAULT   179
 

#define BGP_PRIVATE_AS_MAX   65535
 

#define BGP_PRIVATE_AS_MIN   64512
 

#define BGP_RD_SIZE   8
 

#define BGP_READ_OFF  )     THREAD_READ_OFF(X)
 

#define BGP_READ_ON T,
F,
 )     THREAD_READ_ON(master,T,F,peer,V)
 

#define BGP_RECORD_UPDATE   1
 

#define BGP_RECORD_WITHDRAW   2
 

#define BGP_ROUTE_AGGREGATE   2
 

#define BGP_ROUTE_NORMAL   0
 

#define BGP_ROUTE_REDISTRIBUTE   3
 

#define BGP_ROUTE_STATIC   1
 

#define BGP_SAFI_VPNV4   128
 

#define BGP_SAFI_VPNV6   129
 

#define BGP_SCAN_INTERVAL_DEFAULT   60
 

#define BGP_SHOW_DAMP_HEADER   " Network From Reuse Path%s"
 

#define BGP_SHOW_FLAP_HEADER   " Network From Flaps Duration Reuse Path%s"
 

#define BGP_SHOW_HEADER   " Network Next Hop Metric LocPrf Weight Path%s"
 

#define BGP_Start   1
 

#define BGP_STATUS_MAX   7
 

#define BGP_Stop   2
 

#define BGP_STR   "BGP information\n"
 

#define BGP_SUCCESS   0
 

#define BGP_TIMER_OFF  )     THREAD_TIMER_OFF(X)
 

#define BGP_TIMER_ON T,
F,
 )     THREAD_TIMER_ON(master,T,F,peer,V)
 

#define BGP_TOTAL_ATTR_LEN   2
 

#define BGP_UNFEASIBLE_LEN   2
 

#define BGP_UPTIME_LEN   25
 

#define BGP_UPTIME_LEN   25
 

#define BGP_VERSION   1.0
 

#define BGP_VERSION_4   4
 

#define BGP_VERSION_MP_4_DRAFT_00   40
 

#define BGP_VTY_PORT   2605
 

#define BGP_VTYSH_PATH   "/tmp/.bgpd"
 

#define BGP_WRITE_OFF  )     THREAD_WRITE_OFF(X)
 

#define BGP_WRITE_ON T,
 ) 
 

Value:

do { \
  if (!(T)) \
    (T) = thread_add_ready (master, (F), peer); \
} while (0)

#define BGP_WRITE_PACKET_MAX   10
 

#define BITMAP_NBBY   8
 

#define CAPABILITY_ACTION_SET   0
 

#define CAPABILITY_ACTION_UNSET   1
 

#define CAPABILITY_CODE_DYNAMIC   66
 

#define CAPABILITY_CODE_DYNAMIC_LEN   0
 

#define CAPABILITY_CODE_MP   1
 

#define CAPABILITY_CODE_MP_LEN   4
 

#define CAPABILITY_CODE_ORF   3
 

#define CAPABILITY_CODE_ORF_OLD   130
 

#define CAPABILITY_CODE_REFRESH   2
 

#define CAPABILITY_CODE_REFRESH_LEN   0
 

#define CAPABILITY_CODE_REFRESH_OLD   128
 

#define CHECK_BITMAP MAP,
NUM   )     CHECK_FLAG (MAP[(NUM) / BITMAP_NBBY], 1 << ((NUM) % BITMAP_NBBY))
 

#define CHECK_FLAG V,
 )     ((V) & (F))
 

#define CLEAR_STR   "Reset functions\n"
 

#define CMD_ARGC_MAX   25
 

#define CMD_COMPLETE_FULL_MATCH   7
 

#define CMD_COMPLETE_LIST_MATCH   9
 

#define CMD_COMPLETE_MATCH   8
 

#define CMD_ERR_AMBIGUOUS   3
 

#define CMD_ERR_EXEED_ARGC_MAX   5
 

#define CMD_ERR_INCOMPLETE   4
 

#define CMD_ERR_NO_MATCH   2
 

#define CMD_ERR_NOTHING_TODO   6
 

#define CMD_IPV4  )     ((strcmp ((S), "A.B.C.D") == 0))
 

#define CMD_IPV4_PREFIX  )     ((strcmp ((S), "A.B.C.D/M") == 0))
 

#define CMD_IPV6  )     ((strcmp ((S), "X:X::X:X") == 0))
 

#define CMD_IPV6_PREFIX  )     ((strcmp ((S), "X:X::X:X/M") == 0))
 

#define CMD_OPTION  )     ((S[0]) == '[')
 

#define CMD_RANGE  )     ((S[0] == '<'))
 

#define CMD_SUCCESS   0
 

#define CMD_SUCCESS_DAEMON   10
 

#define CMD_VARARG  )     ((S[0]) == '.')
 

#define CMD_VARIABLE  )     (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<'))
 

#define CMD_WARNING   1
 

#define com_lastval  )     ((X)->val + (X)->size - 1)
 

#define com_length  )     ((X)->size * 4)
 

#define com_nthval X,
 )     ((X)->val + (n))
 

#define COMMUNITY_DENY   0
 

#define COMMUNITY_INTERNET   0x0
 

#define COMMUNITY_LIST_AUTO   2
 

#define COMMUNITY_LIST_ERR_CANT_FIND_LIST   -1
 

#define COMMUNITY_LIST_ERR_EXPANDED_CONFLICT   -4
 

#define COMMUNITY_LIST_ERR_MALFORMED_VAL   -2
 

#define COMMUNITY_LIST_ERR_STANDARD_CONFLICT   -3
 

#define COMMUNITY_LIST_EXPANDED   1
 

#define COMMUNITY_LIST_NUMBER   1
 

#define COMMUNITY_LIST_STANDARD   0
 

#define COMMUNITY_LIST_STR   "Add a community list entry\n"
 

#define COMMUNITY_LIST_STRING   0
 

#define COMMUNITY_LOCAL_AS   0xFFFFFF03
 

#define COMMUNITY_NO_ADVERTISE   0xFFFFFF02
 

#define COMMUNITY_NO_EXPORT   0xFFFFFF01
 

#define COMMUNITY_NO_EXPORT_SUBCONFED   0xFFFFFF03
 

#define COMMUNITY_PERMIT   1
 

#define COMMUNITY_VAL_STR   "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n"
 

#define CONF_BACKUP_EXT   ".sav"
 

#define CONF_BGP_DEBUG a,
 )     (conf_bgp_debug_ ## a & BGP_DEBUG_ ## b)
 

#define CONF_DEBUG_OFF a,
 )     (conf_bgp_debug_ ## a &= ~(BGP_DEBUG_ ## b))
 

#define CONF_DEBUG_ON a,
 )     (conf_bgp_debug_ ## a |= (BGP_DEBUG_ ## b))
 

#define connect   2
 

#define ConnectRetry_timer_expired   7
 

#define DEBUG_OFF a,
 ) 
 

Value:

do { \
    CONF_DEBUG_OFF(a, b); \
    TERM_DEBUG_OFF(a, b); \
    } while (0)

#define DEBUG_ON a,
 ) 
 

Value:

do { \
    CONF_DEBUG_ON(a, b); \
    TERM_DEBUG_ON(a, b); \
    } while (0)

#define DEBUG_STR   "Debugging functions (see also 'undebug')\n"
 

#define DEFAULT_HALF_LIFE   15
 

#define DEFAULT_PENALTY   1000
 

#define DEFAULT_REUSE   750
 

#define DEFAULT_SUPPRESS   2000
 

#define DEFSH daemon,
cmdname,
cmdstr,
helpstr   ) 
 

Value:

struct cmd_element cmdname = \
  { \
    cmdstr, \
    NULL, \
    helpstr, \
    daemon \
  }; \

#define DEFUN funcname,
cmdname,
cmdstr,
helpstr   ) 
 

Value:

int BGP::funcname \
        (struct cmd_element * self, struct vty *vty, int argc, char **argv)

#define DEFUN_NOSH funcname,
cmdname,
cmdstr,
helpstr   ) 
 

Value:

DEFUN(funcname, cmdname, cmdstr, helpstr)\
  struct cmd_element BGP::cmdname = \
  { \
    cmdstr, \
    &BGP::funcname, \
    helpstr \
  }; \
  int funcname \
  (struct cmd_element *self, struct vty *vty, int argc, char **argv)

#define DEFUNSH daemon,
funcname,
cmdname,
cmdstr,
helpstr   ) 
 

Value:

int funcname (struct cmd_element *, struct vty *, int, char **); \
  struct cmd_element cmdname = \
  { \
    cmdstr, \
    funcname, \
    helpstr, \
    daemon \
  }; \
  int funcname \
  (struct cmd_element *self, struct vty *vty, int argc, char **argv)

#define DEFUNST funcname,
cmdname,
cmdstr,
helpstr   ) 
 

Value:

struct cmd_element BGP::cmdname = \
  { \
    cmdstr, \
    &BGP::funcname, \
    helpstr \
  };

#define DELTA_REUSE   10
 

#define DELTA_T   5
 

#define DETAIL   6
 

#define DIRECTORY_SEP   '/'
 

#define DISTRIBUTE_IN  )     ((F)->dlist[FILTER_IN].alist)
 

#define DISTRIBUTE_IN_NAME  )     ((F)->dlist[FILTER_IN].name)
 

#define DISTRIBUTE_OUT  )     ((F)->dlist[FILTER_OUT].alist)
 

#define DISTRIBUTE_OUT_NAME  )     ((F)->dlist[FILTER_OUT].name)
 

#define DUMP_DETAIL   32
 

#define DUMP_NLRI   16
 

#define DUMP_ON   1
 

#define DUMP_RECV   4
 

#define DUMP_SEND   2
 

#define DUMP_WITHDRAW   8
 

#define ecom_length  )     ((X)->size * ECOMMUNITY_SIZE)
 

#define ECOMMUNITY_ENCODE_AS   0x00
 

#define ECOMMUNITY_ENCODE_IP   0x01
 

#define ECOMMUNITY_FORMAT_COMMUNITY_LIST   1
 

#define ECOMMUNITY_FORMAT_DISPLAY   2
 

#define ECOMMUNITY_FORMAT_ROUTE_MAP   0
 

#define ECOMMUNITY_ROUTE_TARGET   0x02
 

#define ECOMMUNITY_SITE_ORIGIN   0x03
 

#define ECOMMUNITY_SIZE   8
 

#define Established   6
 

#define EXTCOMMUNITY_LIST_AUTO   5
 

#define EXTCOMMUNITY_LIST_EXPANDED   4
 

#define EXTCOMMUNITY_LIST_STANDARD   3
 

#define EXTCOMMUNITY_LIST_STR   "Add a extended community list entry\n"
 

#define EXTCOMMUNITY_VAL_STR   "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n"
 

#define FIFO_ADD F,
 ) 
 

Value:

do {                                                \
    struct fifo *Xfifo = (struct fifo *)(F);          \
    struct fifo *Xnode = (struct fifo *)(N);          \
    Xnode->next = Xfifo;                              \
    Xnode->prev = Xfifo->prev;                        \
    Xfifo->prev = Xfifo->prev->next = Xnode;          \
  } while (0)

#define FIFO_DEL  ) 
 

Value:

do {                                                \
    struct fifo *Xnode = (struct fifo *)(N);          \
    Xnode->prev->next = Xnode->next;                  \
    Xnode->next->prev = Xnode->prev;                  \
  } while (0)

#define FIFO_EMPTY  )     (((struct fifo *)(F))->next == (struct fifo *)(F))
 

#define FIFO_HEAD  ) 
 

Value:

((((struct fifo *)(F))->next == (struct fifo *)(F)) \
  ? NULL : (F)->next)

#define FIFO_INIT  ) 
 

Value:

do {                                                \
    struct fifo *Xfifo = (struct fifo *)(F);          \
    Xfifo->next = Xfifo->prev = Xfifo;                \
  } while (0)

#define FIFO_TOP  )     (FIFO_EMPTY(F) ? NULL : ((struct fifo *)(F))->next)
 

#define FILTER_IN   0
 

#define FILTER_LIST_IN  )     ((F)->aslist[FILTER_IN].aslist)
 

#define FILTER_LIST_IN_NAME  )     ((F)->aslist[FILTER_IN].name)
 

#define FILTER_LIST_OUT  )     ((F)->aslist[FILTER_OUT].aslist)
 

#define FILTER_LIST_OUT_NAME  )     ((F)->aslist[FILTER_OUT].name)
 

#define FILTER_MAX   2
 

#define FILTER_OUT   1
 

#define getdata  )     ((X)->data)
 

#define GETRUSAGE  )     gettimeofday (X, NULL);
 

#define HASHTABSIZE   1024
 

#define Hold_Timer_expired   8
 

#define Idle   1
 

#define IF_DELETE_HOOK   1
 

#define IF_NEW_HOOK   0
 

#define IFF_LINK0   0x0
 

#define IFF_LINK1   0x0
 

#define IFF_LINK2   0x0
 

#define IFF_NOTRAILERS   0x0
 

#define IFF_OACTIVE   0x0
 

#define IFF_SIMPLEX   0x0
 

#define IFINDEX_INTERNBASE   0x80000000
 

#define IFNAME_STR   "Interface name(e.g. ep0)\n"
 

#define IN_STR   "Filter incoming routing updates\n"
 

#define INADDR_LOOPBACK   0x7f000001
 

#define INET6_ADDRSTRLEN   46
 

#define INET6_BUFSIZ   51
 

#define INET_ADDRSTRLEN   16
 

#define INTEGRATE_DEFAULT_CONFIG   "Zebra.conf"
 

#define INTERFACE_HWADDR_MAX   20
 

#define INTERFACE_NAMSIZ   20
 

#define INTERFACE_STR   "Interface infomation\n"
 

#define IP6_STR   "IPv6 Information\n"
 

#define IP_STR   "IP information\n"
 

#define IPV4_ADDR_CMP D,
 )     memcmp ((D), (S), IPV4_MAX_BYTELEN)
 

#define IPV4_ADDR_COPY D,
 )     memcpy ((D), (S), IPV4_MAX_BYTELEN)
 

#define IPV4_ADDR_SAME D,
 )     (memcmp ((D), (S), IPV4_MAX_BYTELEN) == 0)
 

#define IPV4_MAX_BITLEN   32
 

#define IPV4_MAX_BYTELEN   4
 

#define IPV4_MAX_PREFIXLEN   32
 

#define IPV4_NET0  )     ((((u_int32_t) (a)) & 0xff000000) == 0x00000000)
 

#define IPV4_NET127  )     ((((u_int32_t) (a)) & 0xff000000) == 0x7f000000)
 

#define IPV6_ADDR_CMP D,
 )     memcmp ((D), (S), IPV6_MAX_BYTELEN)
 

#define IPV6_ADDR_COPY D,
 )     memcpy ((D), (S), IPV6_MAX_BYTELEN)
 

#define IPV6_ADDR_SAME D,
 )     (memcmp ((D), (S), IPV6_MAX_BYTELEN) == 0)
 

#define IPV6_MAX_BITLEN   128
 

#define IPV6_MAX_BYTELEN   16
 

#define IPV6_MAX_PREFIXLEN   128
 

#define IPV6_STR   "IPv6 information\n"
 

#define IS_DIRECTORY_SEP  )     ((c) == DIRECTORY_SEP)
 

#define KeepAlive_timer_expired   9
 

#define l_left   link[0]
 

#define l_left   link[0]
 

#define l_right   link[1]
 

#define l_right   link[1]
 

#define list_isempty  )     ((X)->head == NULL && (X)->tail == NULL)
 

#define LIST_LOOP L,
V,
 ) 
 

Value:

for ((N) = (L)->head; (N); (N) = (N)->next) \
    if (((V) = ((N)->data) != NULL)

#define listcount  )     ((X)->count)
 

#define listhead  )     ((X)->head)
 

#define LISTNODE_ADD L,
 ) 
 

Value:

do { \
    (N)->prev = (L)->tail; \
    if ((L)->head == NULL) \
      (L)->head = (N); \
    else \
      (L)->tail->next = (N); \
    (L)->tail = (N); \
  } while (0)

#define LISTNODE_DELETE L,
 ) 
 

Value:

do { \
    if ((N)->prev) \
      (N)->prev->next = (N)->next; \
    else \
      (L)->head = (N)->next; \
    if ((N)->next) \
      (N)->next->prev = (N)->prev; \
    else \
      (L)->tail = (N)->prev; \
  } while (0)

#define LOOKUP x,
 )     mes_lookup(x, x ## _max, y)
 

#define MATCH_STR   "Match values from routing table\n"
 

#define MAX_CONFIG_LENGTH   512
 

#define MAXIMUM_PREFIX_THRESHOLD_DEFAULT   75
 

#define MBGP_STR   "MBGP information\n"
 

#define MRAI_DISABLE   0
 

#define MRAI_PER_PEER   1
 

#define MRAI_PER_PREFIX   2
 

#define MSG_PROTOCOL_BGP4MP   16
 

#define NEIGHBOR_ADDR_STR   "Neighbor address\n"
 

#define NEIGHBOR_ADDR_STR2   "Neighbor address\nNeighbor tag\n"
 

#define NEIGHBOR_CMD   "neighbor A.B.C.D "
 

#define NEIGHBOR_CMD2   "neighbor (A.B.C.D|WORD) "
 

#define NEIGHBOR_STR   "Specify neighbor router\n"
 

#define nextnode  )     ((X) = (X)->next)
 

#define NLRI   1
 

#define NO_NEIGHBOR_CMD   "no neighbor A.B.C.D "
 

#define NO_NEIGHBOR_CMD2   "no neighbor (A.B.C.D|WORD) "
 

#define NO_OPT   3
 

#define NO_STR   "Negate a command or set its defaults\n"
 

#define NO_WORKLOAD_MODEL   0
 

#define OpenConfirm   5
 

#define OpenSent   4
 

#define ORF_COMMON_PART_ADD   0x00
 

#define ORF_COMMON_PART_DENY   0x20
 

#define ORF_COMMON_PART_PERMIT   0x00
 

#define ORF_COMMON_PART_REMOVE   0x80
 

#define ORF_COMMON_PART_REMOVE_ALL   0xC0
 

#define ORF_MODE_BOTH   3
 

#define ORF_MODE_RECEIVE   1
 

#define ORF_MODE_SEND   2
 

#define ORF_TYPE_PREFIX   64
 

#define ORF_TYPE_PREFIX_OLD   128
 

#define OSPF6_DUMP_TYPE_LIST   "(neighbor|interface|area|lsa|zebra|config|dbex|spf|route|lsdb|redistribute|hook|asbr|prefix|abr)"
 

#define OSPF6_INSTANCE_STR   "<1-65535> Instance ID\n"
 

#define OSPF6_NUMBER_STR   "Specify by number\n"
 

#define OSPF6_ROUTER_STR   "Enable a routing process\n"
 

#define OSPF6_STR   "Open Shortest Path First (OSPF) for IPv6\n"
 

#define OSPF_STR   "OSPF information\n"
 

#define OUT_STR   "Filter outgoing routing updates\n"
 

#define PEER_CAP_DYNAMIC_ADV   (1 << 3)
 

#define PEER_CAP_DYNAMIC_RCV   (1 << 4)
 

#define PEER_CAP_ORF_PREFIX_RM_ADV   (1 << 1)
 

#define PEER_CAP_ORF_PREFIX_RM_OLD_RCV   (1 << 5)
 

#define PEER_CAP_ORF_PREFIX_RM_RCV   (1 << 3)
 

#define PEER_CAP_ORF_PREFIX_SM_ADV   (1 << 0)
 

#define PEER_CAP_ORF_PREFIX_SM_OLD_RCV   (1 << 4)
 

#define PEER_CAP_ORF_PREFIX_SM_RCV   (1 << 2)
 

#define PEER_CAP_REFRESH_ADV   (1 << 0)
 

#define PEER_CAP_REFRESH_NEW_RCV   (1 << 2)
 

#define PEER_CAP_REFRESH_OLD_RCV   (1 << 1)
 

#define PEER_CONFIG_CONNECT   (1 << 2)
 

#define PEER_CONFIG_ROUTEADV   (1 << 3)
 

#define PEER_CONFIG_TIMER   (1 << 1)
 

#define PEER_CONFIG_WEIGHT   (1 << 0)
 

#define PEER_DOWN_AF_ACTIVATE   10
 

#define PEER_DOWN_CAPABILITY_CHANGE   19
 

#define PEER_DOWN_CLID_CHANGE   4
 

#define PEER_DOWN_CLOSE_SESSION   15
 

#define PEER_DOWN_CONFED_ID_CHANGE   5
 

#define PEER_DOWN_CONFED_PEER_CHANGE   6
 

#define PEER_DOWN_LOCAL_AS_CHANGE   3
 

#define PEER_DOWN_MULTIHOP_CHANGE   21
 

#define PEER_DOWN_NEIGHBOR_DELETE   16
 

#define PEER_DOWN_NOTIFY_RECEIVED   13
 

#define PEER_DOWN_NOTIFY_SEND   14
 

#define PEER_DOWN_PASSIVE_CHANGE   20
 

#define PEER_DOWN_REMOTE_AS_CHANGE   2
 

#define PEER_DOWN_RID_CHANGE   1
 

#define PEER_DOWN_RMAP_BIND   17
 

#define PEER_DOWN_RMAP_UNBIND   18
 

#define PEER_DOWN_RR_CLIENT_CHANGE   7
 

#define PEER_DOWN_RS_CLIENT_CHANGE   8
 

#define PEER_DOWN_UPDATE_SOURCE_CHANGE   9
 

#define PEER_DOWN_USER_RESET   12
 

#define PEER_DOWN_USER_SHUTDOWN   11
 

#define PEER_FLAG_ALLOWAS_IN   (1 << 11)
 

#define PEER_FLAG_AS_PATH_UNCHANGED   (1 << 6)
 

#define PEER_FLAG_DEFAULT_ORIGINATE   (1 << 9)
 

#define PEER_FLAG_DONT_CAPABILITY   (1 << 2)
 

#define PEER_FLAG_DYNAMIC_CAPABILITY   (1 << 6)
 

#define PEER_FLAG_ENFORCE_MULTIHOP   (1 << 7)
 

#define PEER_FLAG_LOCAL_AS_NO_PREPEND   (1 << 8)
 

#define PEER_FLAG_MAX_PREFIX   (1 << 14)
 

#define PEER_FLAG_MAX_PREFIX_WARNING   (1 << 15)
 

#define PEER_FLAG_MED_UNCHANGED   (1 << 8)
 

#define PEER_FLAG_NEXTHOP_SELF   (1 << 2)
 

#define PEER_FLAG_NEXTHOP_UNCHANGED   (1 << 7)
 

#define PEER_FLAG_NO_ROUTE_REFRESH_CAP   (1 << 5)
 

#define PEER_FLAG_ORF_PREFIX_RM   (1 << 13)
 

#define PEER_FLAG_ORF_PREFIX_SM   (1 << 12)
 

#define PEER_FLAG_OVERRIDE_CAPABILITY   (1 << 3)
 

#define PEER_FLAG_PASSIVE   (1 << 0)
 

#define PEER_FLAG_REFLECTOR_CLIENT   (1 << 3)
 

#define PEER_FLAG_REMOVE_PRIVATE_AS   (1 << 10)
 

#define PEER_FLAG_RSERVER_CLIENT   (1 << 4)
 

#define PEER_FLAG_SEND_COMMUNITY   (1 << 0)
 

#define PEER_FLAG_SEND_EXT_COMMUNITY   (1 << 1)
 

#define PEER_FLAG_SHUTDOWN   (1 << 1)
 

#define PEER_FLAG_SOFT_RECONFIG   (1 << 5)
 

#define PEER_FLAG_STRICT_CAP_MATCH   (1 << 4)
 

#define PEER_RMAP_TYPE_DEFAULT   (1 << 4)
 

#define PEER_RMAP_TYPE_IN   (1 << 0)
 

#define PEER_RMAP_TYPE_NETWORK   (1 << 2)
 

#define PEER_RMAP_TYPE_NOSET   (1 << 5)
 

#define PEER_RMAP_TYPE_OUT   (1 << 1)
 

#define PEER_RMAP_TYPE_REDISTRIBUTE   (1 << 3)
 

#define PEER_STATUS_ACCEPT_PEER   (1 << 0)
 

#define PEER_STATUS_CAPABILITY_OPEN   (1 << 2)
 

#define PEER_STATUS_DEFAULT_ORIGINATE   (1 << 2)
 

#define PEER_STATUS_GROUP   (1 << 4)
 

#define PEER_STATUS_HAVE_ACCEPT   (1 << 3)
 

#define PEER_STATUS_ORF_PREFIX_SEND   (1 << 0)
 

#define PEER_STATUS_ORF_WAIT_REFRESH   (1 << 1)
 

#define PEER_STATUS_PREFIX_LIMIT   (1 << 4)
 

#define PEER_STATUS_PREFIX_OVERFLOW   (1 << 1)
 

#define PEER_STATUS_PREFIX_THRESHOLD   (1 << 3)
 

#define PREFIX_FAMILY  )     ((p)->family)
 

#define PREFIX_LIST_IN  )     ((F)->plist[FILTER_IN].plist)
 

#define PREFIX_LIST_IN_NAME  )     ((F)->plist[FILTER_IN].name)
 

#define PREFIX_LIST_OUT  )     ((F)->plist[FILTER_OUT].plist)
 

#define PREFIX_LIST_OUT_NAME  )     ((F)->plist[FILTER_OUT].name)
 

#define PREFIX_LIST_STR   "Build a prefix list\n"
 

#define PRINTF_ATTRIBUTE a,
 ) 
 

#define PSIZE  )     (((a) + 7) / (8))
 

#define PSIZE  )     (((a) + 7) / (8))
 

#define Receive_KEEPALIVE_message   11
 

#define Receive_NOTIFICATION_message   13
 

#define Receive_OPEN_message   10
 

#define Receive_UPDATE_message   12
 

#define RECV   5
 

#define REFRESH_DEFER   2
 

#define REFRESH_IMMEDIATE   1
 

#define REUSE_ARRAY_SIZE   1024
 

#define REUSE_LIST_SIZE   256
 

#define RIP_STR   "RIP information\n"
 

#define ROUTE_MAP_IN  )     ((F)->map[FILTER_IN].map)
 

#define ROUTE_MAP_IN_NAME  )     ((F)->map[FILTER_IN].name)
 

#define ROUTE_MAP_OUT  )     ((F)->map[FILTER_OUT].map)
 

#define ROUTE_MAP_OUT_NAME  )     ((F)->map[FILTER_OUT].name)
 

#define ROUTE_STR   "Routing Table\n"
 

#define ROUTER_STR   "Enable a routing process\n"
 

#define RUSAGE_T   struct timeval
 

#define SAFI_MAX   5
 

#define SAFI_MPLS_VPN   4
 

#define SAFI_MULTICAST   2
 

#define SAFI_UNICAST   1
 

#define SAFI_UNICAST_MULTICAST   3
 

#define SECONDS_STR   "<1-65535> Seconds\n"
 

#define SEND   4
 

#define SET_BITMAP MAP,
NUM   )     SET_FLAG (MAP[(NUM) / BITMAP_NBBY], 1 << ((NUM) % BITMAP_NBBY))
 

#define SET_FLAG V,
 )     (V) = (V) | (F)
 

#define SET_STR   "Set values in destination routing protocol\n"
 

#define SET_TIMEOUT_TYPE_EXECUTE   type=TYPE_EXECUTE
 

#define SET_TIMEOUT_TYPE_FETCH1   type=TYPE_FETCH1
 

#define SET_TIMEOUT_TYPE_FETCH2   type=TYPE_FETCH2
 

#define SET_TIMEOUT_TYPE_MAIN   type=TYPE_MAIN
 

#define SHOW_STR   "Show running system information\n"
 

#define sockunion_family  )     (X)->sa.sa_family
 

#define STREAM_DATA  )     ((S)->data)
 

#define STREAM_PNT  )     ((S)->data + (S)->getp)
 

#define STREAM_REMAIN  )     ((S)->size - (S)->putp)
 

#define STREAM_SIZE  )     ((S)->size)
 

#define SU_ADDRSTRLEN   46
 

#define TCP_connection_closed   4
 

#define TCP_connection_open   3
 

#define TCP_connection_open_failed   5
 

#define TCP_fatal_error   6
 

#define TERM_DEBUG_OFF a,
 )     (term_bgp_debug_ ## a &= ~(BGP_DEBUG_ ## b))
 

#define TERM_DEBUG_ON a,
 )     (term_bgp_debug_ ## a |= (BGP_DEBUG_ ## b))
 

#define THREAD_ARG  )     ((X)->arg)
 

#define THREAD_EVENT   3
 

#define THREAD_FD  )     ((X)->u.fd)
 

#define THREAD_OFF thread   ) 
 

Value:

do { \
    if (thread) \
      { \
        thread_cancel (thread); \
        thread = NULL; \
      } \
  } while (0)

#define THREAD_READ   0
 

#define THREAD_READ_OFF thread   )     THREAD_OFF(thread)
 

#define THREAD_READ_ON master,
thread,
func,
arg,
sock   ) 
 

Value:

do { \
    if (! thread) \
      thread = thread_add_read (master, func, arg, sock); \
  } while (0)

#define THREAD_READY   4
 

#define THREAD_TIMER   2
 

#define THREAD_TIMER_OFF thread   )     THREAD_OFF(thread)
 

#define THREAD_TIMER_ON master,
thread,
func,
arg,
time   ) 
 

Value:

do { \
    if (! thread) \
      thread = thread_add_timer (master,func, arg, time); \
  } while (0)

#define THREAD_UNUSED   5
 

#define THREAD_VAL  )     ((X)->u.val)
 

#define THREAD_WRITE   1
 

#define THREAD_WRITE_OFF thread   )     THREAD_OFF(thread)
 

#define THREAD_WRITE_ON master,
thread,
func,
arg,
sock   ) 
 

Value:

do { \
    if (! thread) \
      thread = thread_add_write (master,func, arg, sock); \
  } while (0)

#define THREAD_YIELD_TIME_SLOT   100 * 1000L
 

#define TIME_BUF   27
 

#define TIME_SAMPLE_WORKLOAD_MODEL   2
 

#define TTL_MAX   255
 

#define TYPE_EXECUTE   3
 

#define TYPE_FETCH1   1
 

#define TYPE_FETCH2   2
 

#define TYPE_MAIN   0
 

#define UNDEBUG_STR   "Disable debugging functions (see also 'debug')\n"
 

#define UNIFORM_WORKLOAD_MODEL   1
 

#define UNSET_FLAG V,
 )     (V) = (V) & ~(F)
 

#define UNSUPPRESS_MAP  )     ((F)->usmap.map)
 

#define UNSUPPRESS_MAP_NAME  )     ((F)->usmap.name)
 

#define V4NOTATION_STR   "specify by IPv4 address notation(e.g. 0.0.0.0)\n"
 

#define vector_max  )     ((V)->max)
 

#define VECTOR_MIN_SIZE   1
 

#define vector_slot V,
 )     ((V)->index[(I)])
 

#define VTY_BUFSIZ   512
 

#define VTY_GET_INTEGER NAME,
V,
STR   ) 
 

Value:

{                                                                \
  char *endptr = NULL;                                           \
  (V) = strtoul ((STR), &endptr, 10);                            \
  if (*endptr != '\0')                                           \
    {                                                            \
      vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \
      return CMD_WARNING;                                        \
    }                                                            \
}

#define VTY_GET_INTEGER_RANGE NAME,
V,
STR,
MIN,
MAX   ) 
 

Value:

{                                                                \
  char *endptr = NULL;                                           \
  (V) = strtoul ((STR), &endptr, 10);                            \
  if (*endptr != '\0'                                            \
      || (V) < (MIN) || (V) > (MAX))                             \
    {                                                            \
      vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \
      return CMD_WARNING;                                        \
    }                                                            \
}

#define VTY_MAXHIST   20
 

#define VTY_NEWLINE   ("\n")
 

#define VTY_READ_BUFSIZ   512
 

#define VTY_TIMEOUT_DEFAULT   600
 

#define WITHDRAW   2
 

#define XCALLOC mtype,
size   )     zcalloc ((mtype), (size))
 

#define XFREE mtype,
ptr   )     zfree ((mtype), (ptr))
 

#define XMALLOC mtype,
size   )     zmalloc ((mtype), (size))
 

#define XREALLOC mtype,
ptr,
size   )     zrealloc ((mtype), (ptr), (size))
 

#define XSTRDUP mtype,
str   )     zstrdup ((mtype), (str))
 

#define ZAPI_MESSAGE_DISTANCE   0x04
 

#define ZAPI_MESSAGE_IFINDEX   0x02
 

#define ZAPI_MESSAGE_METRIC   0x08
 

#define ZAPI_MESSAGE_NEXTHOP   0x01
 

#define ZEBRA_CONNECT_DISTANCE_DEFAULT   0
 

#define ZEBRA_EBGP_DISTANCE_DEFAULT   20
 

#define ZEBRA_ERR_EPERM   -3
 

#define ZEBRA_ERR_RTEXIST   -1
 

#define ZEBRA_ERR_RTNOEXIST   -4
 

#define ZEBRA_ERR_RTUNREACH   -2
 

#define ZEBRA_FAMILY_IPV4   1
 

#define ZEBRA_FAMILY_IPV6   2
 

#define ZEBRA_FAMILY_MAX   3
 

#define ZEBRA_FLAG_BLACKHOLE   0x04
 

#define ZEBRA_FLAG_CHANGED   0x20
 

#define ZEBRA_FLAG_IBGP   0x08
 

#define ZEBRA_FLAG_INTERNAL   0x01
 

#define ZEBRA_FLAG_SELECTED   0x10
 

#define ZEBRA_FLAG_SELFROUTE   0x02
 

#define ZEBRA_FLAG_STATIC   0x40
 

#define ZEBRA_HEADER_SIZE   3
 

#define ZEBRA_IBGP_DISTANCE_DEFAULT   200
 

#define ZEBRA_IFA_SECONDARY   (1 << 0)
 

#define ZEBRA_IFC_CONFIGURED   (1 << 1)
 

#define ZEBRA_IFC_REAL   (1 << 0)
 

#define ZEBRA_INTERFACE_ACTIVE   (1 << 0)
 

#define ZEBRA_INTERFACE_ADD   1
 

#define ZEBRA_INTERFACE_ADDRESS_ADD   3
 

#define ZEBRA_INTERFACE_ADDRESS_DELETE   4
 

#define ZEBRA_INTERFACE_DELETE   2
 

#define ZEBRA_INTERFACE_DOWN   6
 

#define ZEBRA_INTERFACE_SUB   (1 << 1)
 

#define ZEBRA_INTERFACE_UP   5
 

#define ZEBRA_IPV4_IMPORT_LOOKUP   17
 

#define ZEBRA_IPV4_NEXTHOP_LOOKUP   15
 

#define ZEBRA_IPV4_ROUTE_ADD   7
 

#define ZEBRA_IPV4_ROUTE_DELETE   8
 

#define ZEBRA_IPV6_IMPORT_LOOKUP   18
 

#define ZEBRA_IPV6_NEXTHOP_LOOKUP   16
 

#define ZEBRA_IPV6_ROUTE_ADD   9
 

#define ZEBRA_IPV6_ROUTE_DELETE   10
 

#define ZEBRA_KERNEL_DISTANCE_DEFAULT   0
 

#define ZEBRA_MAX_PACKET_SIZ   4096
 

#define ZEBRA_MESSAGE_MAX   19
 

#define ZEBRA_NEXTHOP_BLACKHOLE   9
 

#define ZEBRA_NEXTHOP_IFINDEX   1
 

#define ZEBRA_NEXTHOP_IFNAME   2
 

#define ZEBRA_NEXTHOP_IPV4   3
 

#define ZEBRA_NEXTHOP_IPV4_IFINDEX   4
 

#define ZEBRA_NEXTHOP_IPV4_IFNAME   5
 

#define ZEBRA_NEXTHOP_IPV6   6
 

#define ZEBRA_NEXTHOP_IPV6_IFINDEX   7
 

#define ZEBRA_NEXTHOP_IPV6_IFNAME   8
 

#define ZEBRA_OSPF6_DISTANCE_DEFAULT   110
 

#define ZEBRA_OSPF_DISTANCE_DEFAULT   110
 

#define ZEBRA_REDISTRIBUTE_ADD   11
 

#define ZEBRA_REDISTRIBUTE_DEFAULT_ADD   13
 

#define ZEBRA_REDISTRIBUTE_DEFAULT_DELETE   14
 

#define ZEBRA_REDISTRIBUTE_DELETE   12
 

#define ZEBRA_RIP_DISTANCE_DEFAULT   120
 

#define ZEBRA_RIPNG_DISTANCE_DEFAULT   120
 

#define ZEBRA_ROUTE_BGP   8
 

#define ZEBRA_ROUTE_CONNECT   2
 

#define ZEBRA_ROUTE_KERNEL   1
 

#define ZEBRA_ROUTE_MAX   9
 

#define ZEBRA_ROUTE_OSPF   6
 

#define ZEBRA_ROUTE_OSPF6   7
 

#define ZEBRA_ROUTE_RIP   4
 

#define ZEBRA_ROUTE_RIPNG   5
 

#define ZEBRA_ROUTE_STATIC   3
 

#define ZEBRA_ROUTE_SYSTEM   0
 

#define ZEBRA_STATIC_DISTANCE_DEFAULT   1
 

#define ZLOG_FILE   0x01
 

#define ZLOG_FILE_INDEX   1
 

#define ZLOG_MAX_INDEX   5
 

#define ZLOG_NOLOG   0x00
 

#define ZLOG_NOLOG_INDEX   0
 

#define ZLOG_STDERR   0x08
 

#define ZLOG_STDERR_INDEX   4
 

#define ZLOG_STDOUT   0x04
 

#define ZLOG_STDOUT_INDEX   3
 

#define ZLOG_SYSLOG   0x02
 

#define ZLOG_SYSLOG_INDEX   2
 


Typedef Documentation

typedef u_int16_t afi_t
 

typedef vector<pair<agent_index,pair<int,RMsgList_t> > > Agent2MsgListMap_t
 

typedef vector<pair<agent_index,union sockunion > > Agent2Su_t
 

typedef u_int16_t as_t
 

typedef u_long bgp_size_t
 

typedef list<IpAddrMaskPair_t> InterfaceList_t
 

typedef pair<string,string> IpAddrMaskPair_t
 

typedef vector<pair<IPAddr_t,BGP*> > IpBgp_t
 

typedef vector<BGPPeer> PeerVec_t
 

typedef list<pair<struct prefix,double> > Prefix2Timestamp_t
 

typedef list<RouteMsg> RMsgList_t
 

typedef u_char safi_t
 

typedef list<pair<string,InterfaceList_t > > String2List_t
 

typedef vector< pair < union sockunion ,BGP* > > Su2BgpMap_t
 

typedef std::map<TCP*,MessageBuffer*> TCPMsgBuf
 

typedef std::pair<TCP*,MessageBuffer*> TCPMsgBuf_pair
 

typedef u_int8_t zebra_command_t
 

typedef u_int16_t zebra_size_t
 


Enumeration Type Documentation

anonymous enum
 

Enumeration values:
BGP_PEER_IBGP 
BGP_PEER_EBGP 
BGP_PEER_INTERNAL 
BGP_PEER_CONFED 

anonymous enum
 

memory.h*

Enumeration values:
MTYPE_TMP 
MTYPE_STRVEC 
MTYPE_VECTOR 
MTYPE_VECTOR_INDEX 
MTYPE_LINK_LIST 
MTYPE_LINK_NODE 
MTYPE_THREAD 
MTYPE_THREAD_MASTER 
MTYPE_VTY 
MTYPE_VTY_HIST 
MTYPE_VTY_OUT_BUF 
MTYPE_IF 
MTYPE_CONNECTED 
MTYPE_AS_SEG 
MTYPE_AS_STR 
MTYPE_AS_PATH 
MTYPE_CLUSTER 
MTYPE_CLUSTER_VAL 
MTYPE_ATTR 
MTYPE_TRANSIT 
MTYPE_TRANSIT_VAL 
MTYPE_BUFFER 
MTYPE_BUFFER_DATA 
MTYPE_STREAM 
MTYPE_STREAM_DATA 
MTYPE_STREAM_FIFO 
MTYPE_PREFIX 
MTYPE_PREFIX_IPV4 
MTYPE_PREFIX_IPV6 
MTYPE_HASH 
MTYPE_HASH_INDEX 
MTYPE_HASH_BACKET 
MTYPE_RIPNG_ROUTE 
MTYPE_RIPNG_AGGREGATE 
MTYPE_ROUTE_TABLE 
MTYPE_ROUTE_NODE 
MTYPE_ACCESS_LIST 
MTYPE_ACCESS_LIST_STR 
MTYPE_ACCESS_FILTER 
MTYPE_PREFIX_LIST 
MTYPE_PREFIX_LIST_STR 
MTYPE_PREFIX_LIST_ENTRY 
MTYPE_ROUTE_MAP 
MTYPE_ROUTE_MAP_NAME 
MTYPE_ROUTE_MAP_INDEX 
MTYPE_ROUTE_MAP_RULE 
MTYPE_ROUTE_MAP_RULE_STR 
MTYPE_ROUTE_MAP_COMPILED 
MTYPE_RIB 
MTYPE_DISTRIBUTE 
MTYPE_ZLOG 
MTYPE_ZCLIENT 
MTYPE_NEXTHOP 
MTYPE_RTADV_PREFIX 
MTYPE_IF_RMAP 
MTYPE_SOCKUNION 
MTYPE_STATIC_IPV4 
MTYPE_STATIC_IPV6 
MTYPE_DESC 
MTYPE_OSPF_TOP 
MTYPE_OSPF_AREA 
MTYPE_OSPF_AREA_RANGE 
MTYPE_OSPF_NETWORK 
MTYPE_OSPF_NEIGHBOR_STATIC 
MTYPE_OSPF_IF 
MTYPE_OSPF_NEIGHBOR 
MTYPE_OSPF_ROUTE 
MTYPE_OSPF_TMP 
MTYPE_OSPF_LSA 
MTYPE_OSPF_LSA_DATA 
MTYPE_OSPF_LSDB 
MTYPE_OSPF_PACKET 
MTYPE_OSPF_FIFO 
MTYPE_OSPF_VERTEX 
MTYPE_OSPF_NEXTHOP 
MTYPE_OSPF_PATH 
MTYPE_OSPF_VL_DATA 
MTYPE_OSPF_CRYPT_KEY 
MTYPE_OSPF_EXTERNAL_INFO 
MTYPE_OSPF_MESSAGE 
MTYPE_OSPF_DISTANCE 
MTYPE_OSPF_IF_INFO 
MTYPE_OSPF_IF_PARAMS 
MTYPE_OSPF6_TOP 
MTYPE_OSPF6_AREA 
MTYPE_OSPF6_IF 
MTYPE_OSPF6_NEIGHBOR 
MTYPE_OSPF6_ROUTE 
MTYPE_OSPF6_PREFIX 
MTYPE_OSPF6_MESSAGE 
MTYPE_OSPF6_LSA 
MTYPE_OSPF6_LSA_SUMMARY 
MTYPE_OSPF6_LSDB 
MTYPE_OSPF6_VERTEX 
MTYPE_OSPF6_SPFTREE 
MTYPE_OSPF6_NEXTHOP 
MTYPE_OSPF6_EXTERNAL_INFO 
MTYPE_OSPF6_OTHER 
MTYPE_BGP 
MTYPE_PEER_CONF 
MTYPE_BGP_PEER 
MTYPE_PEER_GROUP 
MTYPE_PEER_DESC 
MTYPE_PEER_UPDATE_SOURCE 
MTYPE_BGP_STATIC 
MTYPE_BGP_AGGREGATE 
MTYPE_BGP_CONFED_LIST 
MTYPE_BGP_NEXTHOP_CACHE 
MTYPE_BGP_DAMP_INFO 
MTYPE_BGP_DAMP_ARRAY 
MTYPE_BGP_ANNOUNCE 
MTYPE_BGP_ATTR_QUEUE 
MTYPE_BGP_ROUTE_QUEUE 
MTYPE_BGP_DISTANCE 
MTYPE_BGP_ROUTE 
MTYPE_BGP_TABLE 
MTYPE_BGP_NODE 
MTYPE_BGP_MRAI_INFO 
MTYPE_BGP_ROUTEADV_LIST 
MTYPE_BGP_ADVERTISE_ATTR 
MTYPE_BGP_ADVERTISE 
MTYPE_BGP_ADJ_IN 
MTYPE_BGP_ADJ_OUT 
MTYPE_BGP_REGEXP 
MTYPE_AS_FILTER 
MTYPE_AS_FILTER_STR 
MTYPE_AS_LIST 
MTYPE_COMMUNITY 
MTYPE_COMMUNITY_VAL 
MTYPE_COMMUNITY_STR 
MTYPE_ECOMMUNITY 
MTYPE_ECOMMUNITY_VAL 
MTYPE_ECOMMUNITY_STR 
MTYPE_COMMUNITY_LIST_HANDLER 
MTYPE_COMMUNITY_LIST 
MTYPE_COMMUNITY_LIST_NAME 
MTYPE_COMMUNITY_LIST_ENTRY 
MTYPE_COMMUNITY_LIST_CONFIG 
MTYPE_RIP 
MTYPE_RIP_INTERFACE 
MTYPE_RIP_DISTANCE 
MTYPE_RIP_OFFSET_LIST 
MTYPE_RIP_INFO 
MTYPE_RIP_PEER 
MTYPE_KEYCHAIN 
MTYPE_KEY 
MTYPE_VTYSH_CONFIG 
MTYPE_VTYSH_CONFIG_LINE 
MTYPE_VRF 
MTYPE_VRF_NAME 
MTYPE_MAX 

anonymous enum
 

Enumeration values:
RMAP_RULE_MISSING 
RMAP_COMPILE_ERROR 

enum as_filter_type
 

Enumeration values:
AS_FILTER_DENY 
AS_FILTER_PERMIT 

enum as_list_type
 

Enumeration values:
ACCESS_TYPE_STRING 
ACCESS_TYPE_NUMBER 

enum as_token
 

Enumeration values:
as_token_asval 
as_token_set_start 
as_token_set_end 
as_token_confed_start 
as_token_confed_end 
as_token_unknown 

enum bgp_clear_type
 

Enumeration values:
BGP_CLEAR_SOFT_NONE 
BGP_CLEAR_SOFT_OUT 
BGP_CLEAR_SOFT_IN 
BGP_CLEAR_SOFT_BOTH 
BGP_CLEAR_SOFT_IN_ORF_PREFIX 

enum bgp_dump_type
 

Enumeration values:
BGP_DUMP_ALL 
BGP_DUMP_UPDATES 
BGP_DUMP_ROUTES 

enum bgp_show_type
 

Enumeration values:
bgp_show_type_normal 
bgp_show_type_regexp 
bgp_show_type_prefix_list 
bgp_show_type_filter_list 
bgp_show_type_route_map 
bgp_show_type_neighbor 
bgp_show_type_cidr_only 
bgp_show_type_prefix_longer 
bgp_show_type_community_all 
bgp_show_type_community 
bgp_show_type_community_exact 
bgp_show_type_community_list 
bgp_show_type_community_list_exact 
bgp_show_type_flap_statistics 
bgp_show_type_flap_address 
bgp_show_type_flap_prefix 
bgp_show_type_flap_cidr_only 
bgp_show_type_flap_regexp 
bgp_show_type_flap_filter_list 
bgp_show_type_flap_prefix_list 
bgp_show_type_flap_prefix_longer 
bgp_show_type_flap_route_map 
bgp_show_type_flap_neighbor 
bgp_show_type_dampend_paths 
bgp_show_type_damp_neighbor 

enum clear_sort
 

Enumeration values:
clear_all 
clear_peer 
clear_group 
clear_external 
clear_as 

enum community_token
 

Enumeration values:
community_token_val 
community_token_no_export 
community_token_no_advertise 
community_token_local_as 
community_token_unknown 

enum connect_result
 

Enumeration values:
connect_error 
connect_success 
connect_in_progress 

enum display_type
 

Enumeration values:
normal_display 
summary_display 
detail_display 
sequential_display 
longer_display 
first_match_display 

enum distribute_type
 

Enumeration values:
DISTRIBUTE_IN 
DISTRIBUTE_OUT 
DISTRIBUTE_MAX 

enum ecommunity_token
 

Enumeration values:
ecommunity_token_rt 
ecommunity_token_soo 
ecommunity_token_val 
ecommunity_token_unknown 

enum event
 

Enumeration values:
VTY_SERV 
VTY_READ 
VTY_WRITE 
VTY_TIMEOUT_RESET 

enum filter_type
 

Enumeration values:
FILTER_DENY 
FILTER_PERMIT 
FILTER_DYNAMIC 

enum match_type
 

Enumeration values:
no_match 
extend_match 
ipv4_prefix_match 
ipv4_match 
ipv6_prefix_match 
ipv6_match 
range_match 
vararg_match 
partly_match 
exact_match 

enum MRT_MSG_TYPES
 

Enumeration values:
MSG_NULL 
MSG_START 
MSG_DIE 
MSG_I_AM_DEAD 
MSG_PEER_DOWN 
MSG_PROTOCOL_BGP 
MSG_PROTOCOL_RIP 
MSG_PROTOCOL_IDRP 
MSG_PROTOCOL_RIPNG 
MSG_PROTOCOL_BGP4PLUS 
MSG_PROTOCOL_BGP4PLUS_01 
MSG_PROTOCOL_OSPF 
MSG_TABLE_DUMP 

enum node_type
 

Enumeration values:
AUTH_NODE 
VIEW_NODE 
AUTH_ENABLE_NODE 
ENABLE_NODE 
CONFIG_NODE 
DEBUG_NODE 
AAA_NODE 
KEYCHAIN_NODE 
KEYCHAIN_KEY_NODE 
INTERFACE_NODE 
ZEBRA_NODE 
TABLE_NODE 
RIP_NODE 
RIPNG_NODE 
BGP_NODE 
BGP_VPNV4_NODE 
BGP_IPV4_NODE 
BGP_IPV4M_NODE 
BGP_IPV6_NODE 
OSPF_NODE 
OSPF6_NODE 
MASC_NODE 
IRDP_NODE 
IP_NODE 
ACCESS_NODE 
PREFIX_NODE 
ACCESS_IPV6_NODE 
PREFIX_IPV6_NODE 
AS_LIST_NODE 
COMMUNITY_LIST_NODE 
RMAP_NODE 
SMUX_NODE 
DUMP_NODE 
FORWARDING_NODE 
VTY_NODE 

enum peer_change_type
 

Enumeration values:
peer_change_none 
peer_change_reset 
peer_change_reset_in 
peer_change_reset_out 

enum prefix_list_type
 

Enumeration values:
PREFIX_DENY 
PREFIX_PERMIT 

enum prefix_name_type
 

Enumeration values:
PREFIX_TYPE_STRING 
PREFIX_TYPE_NUMBER 

enum route_map_end_t
 

Enumeration values:
RMAP_EXIT 
RMAP_GOTO 
RMAP_NEXT 

enum route_map_event_t
 

Enumeration values:
RMAP_EVENT_SET_ADDED 
RMAP_EVENT_SET_DELETED 
RMAP_EVENT_SET_REPLACED 
RMAP_EVENT_MATCH_ADDED 
RMAP_EVENT_MATCH_DELETED 
RMAP_EVENT_MATCH_REPLACED 
RMAP_EVENT_INDEX_ADDED 
RMAP_EVENT_INDEX_DELETED 

enum route_map_object_t
 

Enumeration values:
RMAP_RIP 
RMAP_RIPNG 
RMAP_OSPF 
RMAP_OSPF6 
RMAP_BGP 

enum route_map_result_t
 

Enumeration values:
RMAP_MATCH 
RMAP_DENYMATCH 
RMAP_NOMATCH 
RMAP_ERROR 
RMAP_OKAY 

enum route_map_type
 

Enumeration values:
RMAP_PERMIT 
RMAP_DENY 
RMAP_ANY 

enum show_type
 

Enumeration values:
show_all 
show_peer 

enum Status
 

Enumeration values:
VTY_NORMAL 
VTY_CLOSE 
VTY_MORE 
VTY_MORELINE 
VTY_START 
VTY_CONTINUE 

enum Type
 

Enumeration values:
VTY_TERM 
VTY_FILE 
VTY_SHELL 
VTY_SHELL_SERV 

enum zlog_proto_t
 

Enumeration values:
ZLOG_NONE 
ZLOG_DEFAULT 
ZLOG_ZEBRA 
ZLOG_RIP 
ZLOG_BGP 
ZLOG_OSPF 
ZLOG_RIPNG 
ZLOG_OSPF6 
ZLOG_MASC 


Function Documentation

int cmp_desc const void *  ,
const void * 
 

int cmp_node const void *  ,
const void * 
 

int community_compare const void *  ,
const void * 
 


Generated on Wed Aug 27 16:17:15 2008 for Georgia Tech Network Simulator (GTNetS) by  doxygen 1.3.9.1