📄 bgpd.h
字号:
#define BGP_NOTIFY_OPEN_MAX 8/* BGP_NOTIFY_UPDATE_ERR sub codes. */#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/* BGP_NOTIFY_CEASE sub codes (draft-ietf-idr-cease-subcode-05). */#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_OUT_OF_RESOURCE 8#define BGP_NOTIFY_CEASE_MAX 9/* BGP_NOTIFY_CAPABILITY_ERR sub codes (draft-ietf-idr-dynamic-cap-02). */#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/* BGP finite state machine status. */#define Idle 1#define Connect 2#define Active 3#define OpenSent 4#define OpenConfirm 5#define Established 6#define BGP_STATUS_MAX 7/* BGP finite state machine events. */#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/* BGP timers default value. */#define BGP_PEER_FIRST_CREATE_TIMER 20#define BGP_INIT_START_TIMER 0#define BGP_ACTIVE_DELAY_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/* BGP default local preference. */#define BGP_DEFAULT_LOCAL_PREF 100/* BGP graceful restart */#define BGP_DEFAULT_RESTART_TIME 120#define BGP_DEFAULT_STALEPATH_TIME 360/* SAFI which used in open capability negotiation. */#define BGP_SAFI_VPNV4 128#define BGP_SAFI_VPNV6 129/* Max TTL value. */#define TTL_MAX 255/* BGP uptime string length. */#define BGP_UPTIME_LEN 25/* Default configuration settings for bgpd. */#define BGP_VTY_PORT 2605#define BGP_VTYSH_PATH "/tmp/.bgpd"#define BGP_DEFAULT_CONFIG "bgpd.conf"/* Check AS path loop when we send NLRI. *//* #define BGP_SEND_ASPATH_CHECK *//* IBGP/EBGP identifier. We also have a CONFED peer, which is to say, a peer who's AS is part of our Confederation. */enum{ BGP_PEER_IBGP, BGP_PEER_EBGP, BGP_PEER_INTERNAL, BGP_PEER_CONFED};/* Flag for peer_clear_soft(). */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};/* Macros. */#define BGP_INPUT(P) ((P)->ibuf)#define BGP_INPUT_PNT(P) (STREAM_PNT(BGP_INPUT(P)))/* Macro to check BGP information is alive or not. */#define BGP_INFO_HOLDDOWN(BI) \ (! CHECK_FLAG ((BI)->flags, BGP_INFO_VALID) \ || CHECK_FLAG ((BI)->flags, BGP_INFO_HISTORY) \ || CHECK_FLAG ((BI)->flags, BGP_INFO_DAMPED))/* Count prefix size from mask length */#define PSIZE(a) (((a) + 7) / (8))/* BGP error codes. */#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 -29extern struct bgp_master *bm;extern struct thread_master *master;/* Prototypes. */void bgp_terminate (void);void bgp_reset (void);void bgp_zclient_reset ();int bgp_nexthop_set (union sockunion *, union sockunion *, struct bgp_nexthop *, struct peer *);struct bgp *bgp_get_default ();struct bgp *bgp_lookup (as_t, char *);struct bgp *bgp_lookup_by_name (char *);struct peer *peer_lookup (struct bgp *, union sockunion *);struct peer_group *peer_group_lookup (struct bgp *, char *);struct peer_group *peer_group_get (struct bgp *, char *);struct peer *peer_lookup_with_open (union sockunion *, as_t, struct in_addr *, int *);int peer_sort (struct peer *peer);int peer_active (struct peer *);int peer_active_nego (struct peer *);struct peer *peer_create_accept (struct bgp *);char *peer_uptime (time_t, char *, size_t);void bgp_config_write_family_header (struct vty *, afi_t, safi_t, int *);void bgp_master_init ();void bgp_init ();int bgp_option_set (int);int bgp_option_unset (int);int bgp_option_check (int);int bgp_get (struct bgp **, as_t *, char *);int bgp_delete (struct bgp *);int bgp_flag_set (struct bgp *, int);int bgp_flag_unset (struct bgp *, int);int bgp_flag_check (struct bgp *, int);int bgp_router_id_set (struct bgp *, struct in_addr *);int bgp_router_id_unset (struct bgp *);int bgp_cluster_id_set (struct bgp *, struct in_addr *);int bgp_cluster_id_unset (struct bgp *);int bgp_confederation_id_set (struct bgp *, as_t);int bgp_confederation_id_unset (struct bgp *);int bgp_confederation_peers_check (struct bgp *, as_t);int bgp_confederation_peers_add (struct bgp *, as_t);int bgp_confederation_peers_remove (struct bgp *, as_t);int bgp_timers_set (struct bgp *, u_int32_t, u_int32_t);int bgp_timers_unset (struct bgp *);int bgp_default_local_preference_set (struct bgp *, u_int32_t);int bgp_default_local_preference_unset (struct bgp *);int peer_remote_as (struct bgp *, union sockunion *, as_t *, afi_t, safi_t);int peer_group_remote_as (struct bgp *, char *, as_t *);int peer_delete (struct peer *peer);int peer_group_delete (struct peer_group *);int peer_group_remote_as_delete (struct peer_group *);int peer_activate (struct peer *, afi_t, safi_t);int peer_deactivate (struct peer *, afi_t, safi_t);int peer_group_member (struct peer *);int peer_group_bind (struct bgp *, union sockunion *, struct peer_group *, afi_t, safi_t, as_t *);int peer_group_unbind (struct bgp *, struct peer *, struct peer_group *, afi_t, safi_t);int peer_flag_set (struct peer *, u_int32_t);int peer_flag_unset (struct peer *, u_int32_t);int peer_af_flag_set (struct peer *, afi_t, safi_t, u_int32_t);int peer_af_flag_unset (struct peer *, afi_t, safi_t, u_int32_t);int peer_af_flag_check (struct peer *, afi_t, safi_t, u_int32_t);int peer_ebgp_multihop_set (struct peer *, int);int peer_ebgp_multihop_unset (struct peer *);int peer_description_set (struct peer *, char *);int peer_description_unset (struct peer *);int peer_update_source_if_set (struct peer *, char *);int peer_update_source_addr_set (struct peer *, union sockunion *);int peer_update_source_unset (struct peer *);int peer_default_originate_set (struct peer *, afi_t, safi_t, char *);int peer_default_originate_unset (struct peer *, afi_t, safi_t);int peer_port_set (struct peer *, u_int16_t);int peer_port_unset (struct peer *);int peer_weight_set (struct peer *, u_int16_t, afi_t, safi_t);int peer_weight_unset (struct peer *, afi_t, safi_t);int peer_timers_set (struct peer *, u_int32_t, u_int32_t);int peer_timers_unset (struct peer *);int peer_advertise_interval_set (struct peer *, u_int32_t);int peer_advertise_interval_unset (struct peer *);int peer_interface_set (struct peer *, char *);int peer_interface_unset (struct peer *);int peer_distribute_set (struct peer *, afi_t, safi_t, int, char *);int peer_distribute_unset (struct peer *, afi_t, safi_t, int);int peer_allowas_in_set (struct peer *, afi_t, safi_t, int);int peer_allowas_in_unset (struct peer *, afi_t, safi_t);int peer_local_as_set (struct peer *, as_t, int);int peer_local_as_unset (struct peer *);int peer_prefix_list_set (struct peer *, afi_t, safi_t, int, char *);int peer_prefix_list_unset (struct peer *, afi_t, safi_t, int);int peer_aslist_set (struct peer *, afi_t, safi_t, int, char *);int peer_aslist_unset (struct peer *,afi_t, safi_t, int);int peer_route_map_set (struct peer *, afi_t, safi_t, int, char *);int peer_route_map_unset (struct peer *, afi_t, safi_t, int);int peer_unsuppress_map_set (struct peer *, afi_t, safi_t, char *);int peer_unsuppress_map_unset (struct peer *, afi_t, safi_t);int peer_maximum_prefix_set (struct peer *, afi_t, safi_t, u_int32_t, u_char, int, u_int16_t);int peer_maximum_prefix_unset (struct peer *, afi_t, safi_t);#ifdef HAVE_TCP_SIGNATUREint peer_password_set (struct peer *, char *);int peer_password_unset (struct peer *);#endif /* HAVE_TCP_SIGNATURE */int peer_clear (struct peer *);int peer_clear_soft (struct peer *, afi_t, safi_t, enum bgp_clear_type);void peer_nsf_stop (struct peer *);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -