diff options
author | Kurt Jaeger <pi@FreeBSD.org> | 2019-06-03 20:08:36 +0000 |
---|---|---|
committer | Kurt Jaeger <pi@FreeBSD.org> | 2019-06-03 20:08:36 +0000 |
commit | 713c2289b8d66d3752c1225ca18d740daa50c8fc (patch) | |
tree | 26af7b6de4c410d2e2810fec4c81c3ab0b9c5e76 /net/openbgpd/files/patch-bgpd_session.h | |
parent | Upgrade to 0.0.5 (diff) |
net/openbgpd: revert upgrade from 6.5p0 to 5.2.20121209
- openbgpd version 6.5p0 was the "portable" version, which specifically
does *not* support kernel routing updates.
- Therefore this is only suitable for route servers/collectors, not
for production use in routers. This significantly violates POLA :)
PR: 213445
Submitted by: Oliver H <oliver@watershed.co.uk>
Diffstat (limited to 'net/openbgpd/files/patch-bgpd_session.h')
-rw-r--r-- | net/openbgpd/files/patch-bgpd_session.h | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/net/openbgpd/files/patch-bgpd_session.h b/net/openbgpd/files/patch-bgpd_session.h new file mode 100644 index 000000000000..6ffbd79abd1f --- /dev/null +++ b/net/openbgpd/files/patch-bgpd_session.h @@ -0,0 +1,188 @@ +Index: bgpd/session.h +=================================================================== +RCS file: /home/cvs/private/hrs/openbgpd/bgpd/session.h,v +retrieving revision 1.1.1.7 +retrieving revision 1.1.1.10 +diff -u -p -r1.1.1.7 -r1.1.1.10 +--- bgpd/session.h 14 Feb 2010 20:19:57 -0000 1.1.1.7 ++++ bgpd/session.h 13 Oct 2012 18:22:50 -0000 1.1.1.10 +@@ -1,4 +1,4 @@ +-/* $OpenBSD: session.h,v 1.101 2009/06/05 20:26:38 claudio Exp $ */ ++/* $OpenBSD: session.h,v 1.113 2012/04/12 17:26:09 claudio Exp $ */ + + /* + * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> +@@ -94,6 +94,13 @@ enum suberr_open { + ERR_OPEN_CAPA + }; + ++enum suberr_fsm { ++ ERR_FSM_UNSPECIFIC = 0, ++ ERR_FSM_UNEX_OPENSENT, ++ ERR_FSM_UNEX_OPENCONFIRM, ++ ERR_FSM_UNEX_ESTABLISHED ++}; ++ + enum opt_params { + OPT_PARAM_NONE, + OPT_PARAM_AUTH, +@@ -109,7 +116,7 @@ enum capa_codes { + }; + + struct bgp_msg { +- struct buf *buf; ++ struct ibuf *buf; + enum msg_type type; + u_int16_t len; + }; +@@ -155,8 +162,10 @@ struct peer_stats { + u_int64_t msg_sent_rrefresh; + u_int64_t prefix_rcvd_update; + u_int64_t prefix_rcvd_withdraw; ++ u_int64_t prefix_rcvd_eor; + u_int64_t prefix_sent_update; + u_int64_t prefix_sent_withdraw; ++ u_int64_t prefix_sent_eor; + time_t last_updown; + time_t last_read; + u_int32_t prefix_cnt; +@@ -172,6 +181,7 @@ enum Timer { + Timer_IdleHold, + Timer_IdleHoldReset, + Timer_CarpUndemote, ++ Timer_RestartTimeout, + Timer_Max + }; + +@@ -189,6 +199,7 @@ struct peer { + struct { + struct capabilities ann; + struct capabilities peer; ++ struct capabilities neg; + } capa; + struct { + struct bgpd_addr local_addr; +@@ -201,7 +212,7 @@ struct peer { + struct sockaddr_storage sa_remote; + struct peer_timer_head timers; + struct msgbuf wbuf; +- struct buf_read *rbuf; ++ struct ibuf_read *rbuf; + struct peer *next; + int fd; + int lasterr; +@@ -217,47 +228,25 @@ struct peer { + u_int8_t passive; + }; + +-struct peer *peers; ++extern struct peer *peers; ++extern time_t pauseaccept; + + struct ctl_timer { + enum Timer type; + time_t val; + }; + +-/* session.c */ +-void session_socket_blockmode(int, enum blockmodes); +-pid_t session_main(struct bgpd_config *, struct peer *, +- struct network_head *, struct filter_head *, +- struct mrt_head *, struct rib_names *, +- int[2], int[2], int[2], int[2]); +-void bgp_fsm(struct peer *, enum session_events); +-int session_neighbor_rrefresh(struct peer *p); +-struct peer *getpeerbyaddr(struct bgpd_addr *); +-struct peer *getpeerbydesc(const char *); +-int imsg_compose_parent(int, pid_t, void *, u_int16_t); +-int imsg_compose_rde(int, pid_t, void *, u_int16_t); +- +-/* log.c */ +-char *log_fmt_peer(const struct peer_config *); +-void log_statechange(struct peer *, enum session_state, +- enum session_events); +-void log_notification(const struct peer *, u_int8_t, u_int8_t, +- u_char *, u_int16_t); +-void log_conn_attempt(const struct peer *, struct sockaddr *); +- +-/* parse.y */ +-int parse_config(char *, struct bgpd_config *, struct mrt_head *, +- struct peer **, struct network_head *, struct filter_head *); ++/* carp.c */ ++int carp_demote_init(char *, int); ++void carp_demote_shutdown(void); ++int carp_demote_get(char *); ++int carp_demote_set(char *, int); + + /* config.c */ + int merge_config(struct bgpd_config *, struct bgpd_config *, + struct peer *, struct listen_addrs *); + void prepare_listeners(struct bgpd_config *); +- +-/* rde.c */ +-pid_t rde_main(struct bgpd_config *, struct peer *, struct network_head *, +- struct filter_head *, struct mrt_head *, struct rib_names *, +- int[2], int[2], int[2], int[2], int); ++int get_mpe_label(struct rdomain *); + + /* control.c */ + int control_init(int, char *); +@@ -266,7 +255,27 @@ void control_shutdown(int); + int control_dispatch_msg(struct pollfd *, u_int *); + unsigned int control_accept(int, int); + ++/* log.c */ ++char *log_fmt_peer(const struct peer_config *); ++void log_statechange(struct peer *, enum session_state, ++ enum session_events); ++void log_notification(const struct peer *, u_int8_t, u_int8_t, ++ u_char *, u_int16_t, const char *); ++void log_conn_attempt(const struct peer *, struct sockaddr *); ++ ++/* mrt.c */ ++void mrt_dump_bgp_msg(struct mrt *, void *, u_int16_t, ++ struct peer *); ++void mrt_dump_state(struct mrt *, u_int16_t, u_int16_t, ++ struct peer *); ++ ++/* parse.y */ ++int parse_config(char *, struct bgpd_config *, struct mrt_head *, ++ struct peer **, struct network_head *, struct filter_head *, ++ struct rdomain_head *); ++ + /* pfkey.c */ ++int pfkey_read(int, struct sadb_msg *); + int pfkey_establish(struct peer *); + int pfkey_remove(struct peer *); + int pfkey_init(struct bgpd_sysdep *); +@@ -274,15 +283,24 @@ int pfkey_init(struct bgpd_sysdep *); + /* printconf.c */ + void print_config(struct bgpd_config *, struct rib_names *, + struct network_head *, struct peer *, struct filter_head *, +- struct mrt_head *); ++ struct mrt_head *, struct rdomain_head *); + +-/* carp.c */ +-int carp_demote_init(char *, int); +-void carp_demote_shutdown(void); +-int carp_demote_get(char *); +-int carp_demote_set(char *, int); ++/* rde.c */ ++pid_t rde_main(int[2], int[2], int[2], int[2], int); ++ ++/* session.c */ ++void session_socket_blockmode(int, enum blockmodes); ++pid_t session_main(int[2], int[2], int[2], int[2]); ++void bgp_fsm(struct peer *, enum session_events); ++int session_neighbor_rrefresh(struct peer *p); ++struct peer *getpeerbyaddr(struct bgpd_addr *); ++struct peer *getpeerbydesc(const char *); ++int imsg_compose_parent(int, u_int32_t, pid_t, void *, u_int16_t); ++int imsg_compose_rde(int, pid_t, void *, u_int16_t); ++void session_stop(struct peer *, u_int8_t); + + /* timer.c */ ++time_t getmonotime(void); + struct peer_timer *timer_get(struct peer *, enum Timer); + struct peer_timer *timer_nextisdue(struct peer *); + time_t timer_nextduein(struct peer *); |