#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-rsvp.c,v 1.15 2003-03-05 11:13:34 hannes Exp $";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-rsvp.c,v 1.19 2003-05-08 14:52:20 hannes Exp $";
#endif
#ifdef HAVE_CONFIG_H
{ 0, NULL}
};
+/* draft-ietf-mpls-rsvp-lsp-fastreroute-02.txt */
+static const struct tok rsvp_obj_rro_flag_values[] = {
+ { 0x01, "Local protection available" },
+ { 0x02, "Local protection in use" },
+ { 0x04, "Bandwidth protection" },
+ { 0x08, "Node protection" },
+ { 0, NULL}
+};
+
static const struct tok rsvp_resstyle_values[] = {
{ 17, "Wildcard Filter" },
{ 10, "Fixed Filter" },
};
static struct tok rsvp_session_attribute_flag_values[] = {
- { 1, "Local Protection desired" },
- { 2, "Label Recording desired" },
- { 4, "SE Style desired" },
+ { 0x01, "Local Protection desired" },
+ { 0x02, "Label Recording desired" },
+ { 0x04, "SE Style desired" },
+ { 0x08, "Bandwidth protection desired" }, /* draft-ietf-mpls-rsvp-lsp-fastreroute-02.txt */
+ { 0x10, "Node protection desired" }, /* draft-ietf-mpls-rsvp-lsp-fastreroute-02.txt */
{ 0, NULL}
};
RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)));
switch(RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)) {
case RSVP_OBJ_XRO_IPV4:
- printf(", %s, %s/%u",
+ printf(", %s, %s/%u, Flags: [%s]",
RSVP_OBJ_XRO_MASK_LOOSE(*obj_tptr) ? "Loose" : "Strict",
ipaddr_string(obj_tptr+2),
- *(obj_tptr+6));
+ *(obj_tptr+6),
+ bittok2str(rsvp_obj_rro_flag_values,
+ "none",
+ *(obj_tptr+7))); /* rfc3209 says that this field is rsvd. */
}
obj_tlen-=*(obj_tptr+1);
obj_tptr+=*(obj_tptr+1);
case RSVP_OBJ_SESSION_ATTRIBUTE:
switch(rsvp_obj_ctype) {
case RSVP_CTYPE_TUNNEL_IPV4:
- printf("\n\t Session Name: %s",(obj_tptr+3));
+ printf("\n\t Session Name: %s",(obj_tptr+4));
printf("\n\t Setup Priority: %u, Holding Priority: %u, Flags: [%s]",
(int)*obj_tptr,
(int)*(obj_tptr+1),
ipaddr_string(obj_tptr),
*(obj_tptr+4),
tok2str(rsvp_obj_error_code_values,"unknown",error_code),
- error_code,
- error_value);
+ error_code);
switch (error_code) {
case RSVP_OBJ_ERROR_SPEC_CODE_ROUTING:
printf(", Error Value: %s (%u)",
- tok2str(rsvp_obj_error_code_routing_values,"unknown",error_value));
+ tok2str(rsvp_obj_error_code_routing_values,"unknown",error_value),
+ error_value);
break;
default:
- printf(", Unknown Error Value (%u)");
+ printf(", Unknown Error Value (%u)", error_value);
+ break;
}
break;
#ifdef INET6
ip6addr_string(obj_tptr),
*(obj_tptr+16),
tok2str(rsvp_obj_error_code_values,"unknown",error_code),
- error_code,
- error_value);
+ error_code);
switch (error_code) {
case RSVP_OBJ_ERROR_SPEC_CODE_ROUTING:
printf(", Error Value: %s (%u)",
- tok2str(rsvp_obj_error_code_routing_values,"unknown",error_value));
+ tok2str(rsvp_obj_error_code_routing_values,"unknown",error_value),
+ error_value);
break;
default:
- printf(", Unknown Error Value (%u)");
+ break;
}
break;