version 1.1.1.1, 2012/02/21 17:26:11
|
version 1.1.1.2, 2012/10/09 09:22:28
|
Line 30
|
Line 30
|
* Name Value IIH LSP SNP Status |
* Name Value IIH LSP SNP Status |
* LAN |
* LAN |
* ____________________________________________________________________________ |
* ____________________________________________________________________________ |
* | * |
* Area Addresses 1 y y n ISO10589 |
* Area Addresses 1 y y n ISO10589 |
* IIS Neighbors 2 n y n ISO10589 |
* IIS Neighbors 2 n y n ISO10589 |
* ES Neighbors 3 n y n ISO10589 |
* ES Neighbors 3 n y n ISO10589 |
Line 39
|
Line 39
|
* LSP Entries 9 n n y ISO10589 |
* LSP Entries 9 n n y ISO10589 |
* Authentication 10 y y y ISO10589, RFC3567 |
* Authentication 10 y y y ISO10589, RFC3567 |
* Checksum 12 y n y RFC3358 |
* Checksum 12 y n y RFC3358 |
* TE IS Reachability 22 n y n RFC3784 | * TE IS Reachability 22 n y n RFC5305 |
* IS Alias 24 n y n RFC3786 |
* IS Alias 24 n y n RFC3786 |
* IP Int. Reachability 128 n y n RFC1195 |
* IP Int. Reachability 128 n y n RFC1195 |
* Protocols Supported 129 y y n RFC1195 |
* Protocols Supported 129 y y n RFC1195 |
* IP Ext. Reachability 130 n y n RFC1195 |
* IP Ext. Reachability 130 n y n RFC1195 |
* IDRPI 131 n y y RFC1195 |
* IDRPI 131 n y y RFC1195 |
* IP Interface Address 132 y y n RFC1195 |
* IP Interface Address 132 y y n RFC1195 |
* TE Router ID 134 n y n RFC3784 | * TE Router ID 134 n y n RFC5305 |
* Extended IP Reachability 135 n y n RFC3784 | * Extended IP Reachability 135 n y n RFC5305 |
* Dynamic Hostname 137 n y n RFC2763 |
* Dynamic Hostname 137 n y n RFC2763 |
* Shared Risk Link Group 138 n y y draft-ietf-isis-gmpls-extensions | * Shared Risk Link Group 138 n y y RFC5307 |
* Restart TLV 211 y n n RFC3847 |
* Restart TLV 211 y n n RFC3847 |
* MT IS Reachability 222 n y n draft-ietf-isis-wg-multi-topology | * MT IS Reachability 222 n y n RFC5120 |
* MT Supported 229 y y n draft-ietf-isis-wg-multi-topology | * MT Supported 229 y y n RFC5120 |
* IPv6 Interface Address 232 y y n draft-ietf-isis_ipv6 | * IPv6 Interface Address 232 y y n RFC5308 |
* MT IP Reachability 235 n y n draft-ietf-isis-wg-multi-topology | * MT IP Reachability 235 n y n RFC5120 |
* IPv6 IP Reachability 236 n y n draft-ietf-isis_ipv6 | * IPv6 IP Reachability 236 n y n RFC5308 |
* MT IPv6 IP Reachability 237 n y n draft-ietf-isis-wg-multi-topology | * MT IPv6 IP Reachability 237 n y n RFC5120 |
* P2P Adjacency State 240 y n n RFC3373 |
* P2P Adjacency State 240 y n n RFC3373 |
* IIH Sequence Number 241 y n n draft-shen-isis-iih-sequence |
* IIH Sequence Number 241 y n n draft-shen-isis-iih-sequence |
* Router Capability 242 - - - draft-ietf-isis-caps |
* Router Capability 242 - - - draft-ietf-isis-caps |
* |
* |
* | * |
* IS Reachability sub-TLVs we (should) support. |
* IS Reachability sub-TLVs we (should) support. |
* ____________________________________________________________________________ |
* ____________________________________________________________________________ |
* Name Value Status |
* Name Value Status |
* ____________________________________________________________________________ |
* ____________________________________________________________________________ |
* Administartive group (color) 3 RFC3784 | * Administartive group (color) 3 RFC5305 |
* Link Local/Remote Identifiers 4 draft-ietf-isis-gmpls-extensions | * Link Local/Remote Identifiers 4 RFC5307 |
* IPv4 interface address 6 RFC3784 | * IPv4 interface address 6 RFC5305 |
* IPv4 neighbor address 8 RFC3784 | * IPv4 neighbor address 8 RFC5305 |
* Maximum link bandwidth 9 RFC3784 | * Maximum link bandwidth 9 RFC5305 |
* Reservable link bandwidth 10 RFC3784 | * Reservable link bandwidth 10 RFC5305 |
* Unreserved bandwidth 11 RFC3784 | * Unreserved bandwidth 11 RFC5305 |
* TE Default metric 18 RFC3784 | * TE Default metric 18 RFC5305 |
* Link Protection Type 20 draft-ietf-isis-gmpls-extensions | * Link Protection Type 20 RFC5307 |
* Interface Switching Capability 21 draft-ietf-isis-gmpls-extensions | * Interface Switching Capability 21 RFC5307 |
* |
* |
* | * |
* IP Reachability sub-TLVs we (should) support. |
* IP Reachability sub-TLVs we (should) support. |
* ____________________________________________________________________________ |
* ____________________________________________________________________________ |
* Name Value Status |
* Name Value Status |
* ____________________________________________________________________________ |
* ____________________________________________________________________________ |
* 32bit administrative tag 1 draft-ietf-isis-admin-tags | * 32bit administrative tag 1 RFC5130 |
* 64bit administrative tag 2 draft-ietf-isis-admin-tags | * 64bit administrative tag 2 RFC5130 |
* Management prefix color 117 draft-ietf-isis-wg-multi-topology | * Management prefix color 117 RFC5120 |
*/ |
*/ |
|
|
#define AREA_ADDRESSES 1 |
#define AREA_ADDRESSES 1 |
Line 110
|
Line 110
|
#define IPV6_REACHABILITY 236 |
#define IPV6_REACHABILITY 236 |
#define WAY3_HELLO 240 |
#define WAY3_HELLO 240 |
|
|
|
#define AUTH_INFO_HDRLEN 3 |
|
|
#define IS_NEIGHBOURS_LEN (ISIS_SYS_ID_LEN + 5) |
#define IS_NEIGHBOURS_LEN (ISIS_SYS_ID_LEN + 5) |
#define LAN_NEIGHBOURS_LEN 6 |
#define LAN_NEIGHBOURS_LEN 6 |
#define LSP_ENTRIES_LEN (10 + ISIS_SYS_ID_LEN) /* FIXME: should be entry */ |
#define LSP_ENTRIES_LEN (10 + ISIS_SYS_ID_LEN) /* FIXME: should be entry */ |
#define IPV4_REACH_LEN 12 |
#define IPV4_REACH_LEN 12 |
#define IPV6_REACH_LEN 22 |
#define IPV6_REACH_LEN 22 |
|
#define TE_IPV4_REACH_LEN 9 |
|
|
/* struct for neighbor */ |
/* struct for neighbor */ |
struct is_neigh |
struct is_neigh |
Line 131 struct te_is_neigh
|
Line 134 struct te_is_neigh
|
u_char sub_tlvs_length; |
u_char sub_tlvs_length; |
}; |
}; |
|
|
|
/* Decode and encode three-octet metric into host byte order integer */ |
|
#define GET_TE_METRIC(t) \ |
|
(((unsigned)(t)->te_metric[0]<<16) | ((t)->te_metric[1]<<8) | \ |
|
(t)->te_metric[2]) |
|
#define SET_TE_METRIC(t, m) \ |
|
(((t)->te_metric[0] = (m) >> 16), \ |
|
((t)->te_metric[1] = (m) >> 8), \ |
|
((t)->te_metric[2] = (m))) |
|
|
/* struct for es neighbors */ |
/* struct for es neighbors */ |
struct es_neigh |
struct es_neigh |
{ |
{ |
Line 213 struct ipv6_reachability
|
Line 225 struct ipv6_reachability
|
u_char prefix_len; |
u_char prefix_len; |
u_char prefix[16]; |
u_char prefix[16]; |
}; |
}; |
#endif /* HAVE_IPV6 */ |
|
|
|
/* bits in control_info */ |
/* bits in control_info */ |
#define CTRL_INFO_DIRECTION 0x80 |
#define CTRL_INFO_DIRECTION 0x80 |
Line 223 struct ipv6_reachability
|
Line 234 struct ipv6_reachability
|
#define DISTRIBUTION_INTERNAL 0 |
#define DISTRIBUTION_INTERNAL 0 |
#define DISTRIBUTION_EXTERNAL 1 |
#define DISTRIBUTION_EXTERNAL 1 |
#define CTRL_INFO_SUBTLVS 0x20 |
#define CTRL_INFO_SUBTLVS 0x20 |
|
#endif /* HAVE_IPV6 */ |
|
|
/* |
/* |
* Pointer to each tlv type, filled by parse_tlvs() |
* Pointer to each tlv type, filled by parse_tlvs() |
*/ |
*/ |
struct tlvs |
struct tlvs |
{ |
{ |
|
struct checksum *checksum; |
|
struct hostname *hostname; |
|
struct nlpids *nlpids; |
|
struct te_router_id *router_id; |
struct list *area_addrs; |
struct list *area_addrs; |
struct list *is_neighs; |
struct list *is_neighs; |
struct list *te_is_neighs; |
struct list *te_is_neighs; |
Line 236 struct tlvs
|
Line 252 struct tlvs
|
struct list *lsp_entries; |
struct list *lsp_entries; |
struct list *prefix_neighs; |
struct list *prefix_neighs; |
struct list *lan_neighs; |
struct list *lan_neighs; |
struct checksum *checksum; |
|
struct nlpids *nlpids; |
|
struct list *ipv4_addrs; |
struct list *ipv4_addrs; |
struct list *ipv4_int_reachs; |
struct list *ipv4_int_reachs; |
struct list *ipv4_ext_reachs; |
struct list *ipv4_ext_reachs; |
struct list *te_ipv4_reachs; |
struct list *te_ipv4_reachs; |
struct hostname *hostname; |
|
struct te_router_id *router_id; |
|
#ifdef HAVE_IPV6 |
#ifdef HAVE_IPV6 |
struct list *ipv6_addrs; |
struct list *ipv6_addrs; |
struct list *ipv6_reachs; |
struct list *ipv6_reachs; |
Line 281 struct tlvs
|
Line 293 struct tlvs
|
void init_tlvs (struct tlvs *tlvs, uint32_t expected); |
void init_tlvs (struct tlvs *tlvs, uint32_t expected); |
void free_tlvs (struct tlvs *tlvs); |
void free_tlvs (struct tlvs *tlvs); |
int parse_tlvs (char *areatag, u_char * stream, int size, |
int parse_tlvs (char *areatag, u_char * stream, int size, |
u_int32_t * expected, u_int32_t * found, struct tlvs *tlvs); | u_int32_t * expected, u_int32_t * found, struct tlvs *tlvs, |
| u_int32_t * auth_tlv_offset); |
| int add_tlv (u_char, u_char, u_char *, struct stream *); |
void free_tlv (void *val); |
void free_tlv (void *val); |
|
|
int tlv_add_area_addrs (struct list *area_addrs, struct stream *stream); |
int tlv_add_area_addrs (struct list *area_addrs, struct stream *stream); |
Line 290 int tlv_add_te_is_neighs (struct list *te_is_neighs, s
|
Line 304 int tlv_add_te_is_neighs (struct list *te_is_neighs, s
|
int tlv_add_lan_neighs (struct list *lan_neighs, struct stream *stream); |
int tlv_add_lan_neighs (struct list *lan_neighs, struct stream *stream); |
int tlv_add_nlpid (struct nlpids *nlpids, struct stream *stream); |
int tlv_add_nlpid (struct nlpids *nlpids, struct stream *stream); |
int tlv_add_checksum (struct checksum *checksum, struct stream *stream); |
int tlv_add_checksum (struct checksum *checksum, struct stream *stream); |
int tlv_add_authinfo (char auth_type, char authlen, u_char *auth_value, | int tlv_add_authinfo (u_char auth_type, u_char authlen, u_char *auth_value, |
struct stream *stream); |
struct stream *stream); |
int tlv_add_ip_addrs (struct list *ip_addrs, struct stream *stream); |
int tlv_add_ip_addrs (struct list *ip_addrs, struct stream *stream); |
int tlv_add_in_addr (struct in_addr *, struct stream *stream, u_char tag); |
int tlv_add_in_addr (struct in_addr *, struct stream *stream, u_char tag); |