summaryrefslogtreecommitdiffstats
path: root/proto/bgp
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-04-21 00:54:22 +0200
committerMartin Mares <mj@ucw.cz>2000-04-21 00:54:22 +0200
commit7787ace61ae41060e599ce52e8f0017750d350da (patch)
treee2a4f75bd202e775addc58849b45e059d1926284 /proto/bgp
parent9bc6ab404190db53c9c9dbc183f6fc6fa3e704fb (diff)
downloadbird-7787ace61ae41060e599ce52e8f0017750d350da.tar
bird-7787ace61ae41060e599ce52e8f0017750d350da.zip
Synced to draft-ietf-idr-bgp4-09.
Diffstat (limited to 'proto/bgp')
-rw-r--r--proto/bgp/attrs.c3
-rw-r--r--proto/bgp/config.Y2
-rw-r--r--proto/bgp/packets.c2
3 files changed, 5 insertions, 2 deletions
diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c
index f008b35..fa2649c 100644
--- a/proto/bgp/attrs.c
+++ b/proto/bgp/attrs.c
@@ -6,6 +6,9 @@
* Can be freely distributed and used under the terms of the GNU GPL.
*/
+/* FIXME: Latest draft says that LOCAL_PREF is mandatory for iBGP */
+/* FIXME: Mandatory attributes may be missing in messages that don't contain NLRI */
+
#define LOCAL_DEBUG
#include <stdlib.h>
diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y
index 548f5d0..37f90aa 100644
--- a/proto/bgp/config.Y
+++ b/proto/bgp/config.Y
@@ -29,7 +29,7 @@ bgp_proto_start: proto_start BGP {
BGP_CFG->hold_time = 240;
BGP_CFG->connect_retry_time = 120;
BGP_CFG->initial_hold_time = 240;
- BGP_CFG->default_med = ~0;
+ BGP_CFG->default_med = ~0; /* RFC 1771 doesn't specify this, draft-09 says ~0 */
BGP_CFG->compare_path_lengths = 1;
}
;
diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c
index 91d0508..bec2e50 100644
--- a/proto/bgp/packets.c
+++ b/proto/bgp/packets.c
@@ -216,7 +216,7 @@ bgp_rx_open(struct bgp_conn *conn, byte *pkt, int len)
if (len < 29 || len != 29 + pkt[28])
{ bgp_error(conn, 1, 2, len, 2); return; }
if (pkt[19] != BGP_VERSION)
- { bgp_error(conn, 2, 1, pkt[19], 2); return; }
+ { bgp_error(conn, 2, 1, pkt[19], 1); return; } /* RFC 1771 says 16 bits, draft-09 tells to use 8 */
as = get_u16(pkt+20);
hold = get_u16(pkt+22);
id = get_u32(pkt+24);