X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/1b8cb12cb4e85703102de8e464c66603e1766c23..5305d869228097599d64ced5114954bf6523df74:/bgp.h diff --git a/bgp.h b/bgp.h index beb68f9..91adb88 100644 --- a/bgp.h +++ b/bgp.h @@ -46,18 +46,31 @@ struct bgp_data_open { struct bgp_opt_param { uint8_t type; uint8_t len; -#define BGP_MAX_OPT_PARAM_SIZE 256 +#define BGP_MAX_OPT_PARAM_SIZE 256 char value[BGP_MAX_OPT_PARAM_SIZE]; } __attribute__ ((packed)); -#define BGP_CAPABILITY_PARAM_TYPE 2 +#define BGP_PARAM_TYPE_CAPABILITY 2 struct bgp_capability { uint8_t code; uint8_t len; -#define BGP_MAX_CAPABILITY_SIZE 256 +#define BGP_MAX_CAPABILITY_SIZE 256 char value[BGP_MAX_CAPABILITY_SIZE]; } __attribute__ ((packed)); +/* RFC4760 Multiprotocol extension */ +#define BGP_CAP_CODE_MP 1 + +struct bgp_mp_cap_param { + uint16_t afi; /* sa_family_t */ + uint8_t reserved; /* SHOULD be 0 */ + uint8_t safi; +} __attribute__ ((packed)); + +/* bgp_mp_cap_param.safi */ +#define BGP_MP_SAFI_UNICAST 1 +#define BGP_MP_SAFI_MULTICAST 2 + struct bgp_ip_prefix { uint8_t len; uint32_t prefix; /* variable */ @@ -192,6 +205,7 @@ struct bgp_peer { int path_attr_len; /* length of path attrs */ uint32_t events; /* events to poll */ struct event_data edata; /* poll data */ + int handle_ipv6_routes; /* can handle IPv6 routes advertisements */ }; /* bgp_peer.cli_flag */