Commit bd5d7e28 authored by Pavel Tvrdík's avatar Pavel Tvrdík
Browse files

MRT Table Dump: Fix size of AS_PATH in BGP Attributes

All AS numbers in the AS_PATH attribute in RIB Entries MUST be encoded as 4-byte AS numbers.
 -- RFC 6396

Thanks to Colin Petrie for noticing us about this bug in BIRD!
parent 2d2d8293
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -101,7 +101,11 @@ bgp_mrt_table_dump_step(struct mrt_table_dump_ctx *state)
	  continue;
	}

	attributes_length = bgp_encode_attrs(p, attributes_buffer, e->attrs->eattrs, BGP_ATTR_BUFFER_SIZE);
	struct bgp_proto tmp_bgp_proto = {
	    .as4_session = 1, /* to force build AS_PATH as 32bit AS in bgp_encode_attrs() */
	};

	attributes_length = bgp_encode_attrs(&tmp_bgp_proto, attributes_buffer, e->attrs->eattrs, BGP_ATTR_BUFFER_SIZE);
	if (attributes_length == -1)
	{
	  log(L_WARN "%s: MRT Table Dump for %I/%u: Attribute list too long, let it blank", p->p.name, n->n.prefix, n->n.pxlen);