Commit graph

19 commits

Author SHA1 Message Date
Benjamin Cama
60bd25ccdc Really fix parameters length calculation this time.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:58 +02:00
Benjamin Cama
e6fe57eec8 Fix a bug in parameters length setting.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:58 +02:00
Benjamin Cama
974d5f4408 A bit of renaming for clarity.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:58 +02:00
Benjamin Cama
350b06e6f4 Fix bugs in IPv6 update routine.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:58 +02:00
Benjamin Cama
c7e67e1de2 Don't send notification when receiving an unsupported capability.
Tested peer (quagga) doesn't interpret it nicely (i.e. it shuts the connection
down). Better not tell anything.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:57 +02:00
Benjamin Cama
3bd675ad2c Better check for IPv6 compatibility with the BGP peer.
We would advertise IPv6 routes to non-multiprotocol aware peers. Fix that.
Also, fix the way we parse options, to handle multiple optional parameters with
one capability in it (or many; it's just the way quagga send them).

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:57 +02:00
Benjamin Cama
3ea85f7c57 Fix the AFI for IPv6.
The Address Family Identifier was not the one I thought it was.
Define it and fix its use for IPv6.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:57 +02:00
Benjamin Cama
e86393ea90 Better handle IPv6 routes advertisement (non-)support.
Don't try to enable multiprotocol BGP when the peer says it can't.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:57 +02:00
Benjamin Cama
db276bcc80 Handle multiprotocol UPDATE.
Add IPv6 routes advertisement handling, with MP path attributes heading
prepared on initialization.
BTW, fix a bug in attribute size calculation (for extended attr).

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 15:01:57 +02:00
Benjamin Cama
f4fb6922fe Add v6 routes handling.
Basically duplicate the v4 functions.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:59:59 +02:00
Benjamin Cama
02611e54fc Move NEXT_HOP attribute so that we can exclude it.
We will need to do that when we will send IPv6 routes (RFC4760 says we SHOULD
NOT carry this attribute when we will send UPDATE without NLRI). So, we save
the length of all the attributes except NEXT_HOP for later memcpy().

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:59:52 +02:00
Benjamin Cama
f2e59e9881 Fix a typo from last commit.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
78a7085778 Disable IPv6 routes adv when peer doesn't support it.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
5305d86922 Advertise IPv6 capability to peers.
Also rename a param define, and fix a forgotten ntohs().

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
1032adb5b4 Avoid implicit cast warning.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
cd8502743f Add a per-peer flag if it supports IPv6 routes adv.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
d7e506baf4 Add Multiprotocol definitions and more param handling.
Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
1b8cb12cb4 Add Optional Parameter and Capability handling.
Optional Parameters is defined in RFC4271 and Capability advertisement in
RFC3392. For now, we only hande them upon receiving an OPEN message.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
2011-07-28 14:58:30 +02:00
Benjamin Cama
f2a3180cc0 Imported Upstream version 2.1.21 2011-07-07 12:45:05 +02:00