bgp_dump_routes_attr(obuf, path->attr, p);
cur_endp = stream_get_endp(obuf);
- if (cur_endp > BGP_MAX_PACKET_SIZE + BGP_DUMP_MSG_HEADER
+ if (cur_endp > BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE
+ + BGP_DUMP_MSG_HEADER
+ BGP_DUMP_HEADER_SIZE) {
stream_set_endp(obuf, endp);
break;
memset(&bgp_dump_routes, 0, sizeof(struct bgp_dump));
bgp_dump_obuf =
- stream_new((BGP_MAX_PACKET_SIZE << 1) + BGP_DUMP_MSG_HEADER
- + BGP_DUMP_HEADER_SIZE);
+ stream_new((BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE * 2)
+ + BGP_DUMP_MSG_HEADER + BGP_DUMP_HEADER_SIZE);
install_node(&bgp_dump_node);
{
int ret = 0;
uint8_t *error;
- uint8_t error_data[BGP_MAX_PACKET_SIZE];
+ uint8_t error_data[BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE];
struct stream *s = BGP_INPUT(peer);
size_t end = stream_get_getp(s) + length;
/* Extended Message Support */
peer->max_packet_size =
CHECK_FLAG(peer->cap, PEER_CAP_EXTENDED_MESSAGE_RCV)
- ? BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE
- : BGP_MAX_PACKET_SIZE;
+ ? BGP_EXTENDED_MESSAGE_MAX_PACKET_SIZE
+ : BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE;
/* Check there are no common AFI/SAFIs and send Unsupported Capability
error. */
{
struct stream *s;
- s = stream_new(BGP_MAX_PACKET_SIZE);
+ s = stream_new(BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE);
/* Make keepalive packet. */
bgp_packet_set_marker(s, BGP_MSG_KEEPALIVE);
else
local_as = peer->local_as;
- s = stream_new(BGP_MAX_PACKET_SIZE);
+ s = stream_new(BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE);
/* Make open packet. */
bgp_packet_set_marker(s, BGP_MSG_OPEN);
*/
if (peer->curr) {
size_t packetsize = stream_get_endp(peer->curr);
- assert(packetsize <= sizeof(peer->last_reset_cause));
+ assert(packetsize <= peer->max_packet_size);
memcpy(peer->last_reset_cause, peer->curr->data, packetsize);
peer->last_reset_cause_size = packetsize;
}
peer->bgp = bgp_lock(bgp);
peer = peer_lock(peer); /* initial reference */
peer->password = NULL;
- peer->max_packet_size = BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE;
+ peer->max_packet_size = BGP_MAX_PACKET_SIZE;
/* Set default flags. */
FOREACH_AFI_SAFI (afi, safi) {
/* We use a larger buffer for peer->obuf_work in the event that:
* - We RX a BGP_UPDATE where the attributes alone are just
- * under BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE.
+ * under BGP_EXTENDED_MESSAGE_MAX_PACKET_SIZE.
* - The user configures an outbound route-map that does many as-path
* prepends or adds many communities. At most they can have
* CMD_ARGC_MAX args in a route-map so there is a finite limit on how
* bounds checking for every single attribute as we construct an
* UPDATE.
*/
- peer->obuf_work = stream_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE
- + BGP_MAX_PACKET_SIZE_OVERFLOW);
- peer->ibuf_work = ringbuf_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE
- * BGP_READ_PACKET_MAX);
+ peer->obuf_work =
+ stream_new(BGP_MAX_PACKET_SIZE + BGP_MAX_PACKET_SIZE_OVERFLOW);
+ peer->ibuf_work =
+ ringbuf_new(BGP_MAX_PACKET_SIZE * BGP_READ_PACKET_MAX);
- peer->scratch = stream_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE);
+ peer->scratch = stream_new(BGP_MAX_PACKET_SIZE);
bgp_sync_init(peer);
/* BGP message header and packet size. */
#define BGP_MARKER_SIZE 16
#define BGP_HEADER_SIZE 19
-#define BGP_MAX_PACKET_SIZE 4096
-#define BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE 65535
+#define BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE 4096
+#define BGP_EXTENDED_MESSAGE_MAX_PACKET_SIZE 65535
+#define BGP_MAX_PACKET_SIZE BGP_EXTENDED_MESSAGE_MAX_PACKET_SIZE
#define BGP_MAX_PACKET_SIZE_OVERFLOW 1024
/*
struct stream_fifo *obuf; // packets waiting to be written
/* used as a block to deposit raw wire data to */
- uint8_t ibuf_scratch[BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE
+ uint8_t ibuf_scratch[BGP_EXTENDED_MESSAGE_MAX_PACKET_SIZE
* BGP_READ_PACKET_MAX];
struct ringbuf *ibuf_work; // WiP buffer used by bgp_read() only
struct stream *obuf_work; // WiP buffer used to construct packets
/* Excercise AS4 parsing a bit, with a dogfood test */
if (!s)
- s = stream_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE);
+ s = stream_new(BGP_MAX_PACKET_SIZE);
bytes4 = aspath_put(s, as, 1);
as4 = make_aspath(STREAM_DATA(s), bytes4, 1);
asp = make_aspath(t->segment->asdata, t->segment->len, 0);
- peer.curr = stream_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE);
+ peer.curr = stream_new(BGP_MAX_PACKET_SIZE);
peer.obuf = stream_fifo_new();
peer.bgp = &bgp;
peer.host = (char *)"none";
peer.fd = -1;
peer.cap = t->cap;
- peer.max_packet_size = BGP_MAX_PACKET_SIZE;
+ peer.max_packet_size = BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE;
stream_write(peer.curr, t->attrheader, t->len);
datalen = aspath_put(peer.curr, asp, t->as4 == AS4_DATA);
peer->afc_adv[i][j] = 1;
}
- peer->curr = stream_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE);
+ peer->curr = stream_new(BGP_MAX_PACKET_SIZE);
i = 0;
while (mp_segments[i].name)
peer = peer_create_accept(bgp);
peer->host = (char *)"foo";
peer->status = Established;
- peer->curr = stream_new(BGP_MAX_EXTENDED_MESSAGE_PACKET_SIZE);
+ peer->curr = stream_new(BGP_MAX_PACKET_SIZE);
ifp.ifindex = 0;
peer->nexthop.ifp = &ifp;