#include "af.h"
#include "signature.h"
-static const char tstr[] = " [|rsvp]";
/*
* RFC 2205 common header
return (parameter_length+4); /* header length 4 bytes */
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return 0;
}
obj_tlen=rsvp_obj_len-sizeof(struct rsvp_object_header);
/* did we capture enough for fully decoding the object ? */
- if (!ND_TTEST_LEN(tptr, rsvp_obj_len))
- return -1;
+ ND_TCHECK_LEN(tptr, rsvp_obj_len);
hexdump=FALSE;
switch(rsvp_obj_class_num) {
ND_PRINT("%s IPv4 DestAddress: %s, Protocol ID: 0x%02x",
indent,
ipaddr_string(ndo, obj_tptr),
- EXTRACT_U_1(obj_tptr + sizeof(struct in_addr)));
+ EXTRACT_U_1(obj_tptr + sizeof(nd_ipv4)));
ND_PRINT("%s Flags: [0x%02x], DestPort %u",
indent,
EXTRACT_U_1((obj_tptr + 5)),
ND_PRINT("%s IPv6 DestAddress: %s, Protocol ID: 0x%02x",
indent,
ip6addr_string(ndo, obj_tptr),
- EXTRACT_U_1(obj_tptr + sizeof(struct in6_addr)));
+ EXTRACT_U_1(obj_tptr + sizeof(nd_ipv6)));
ND_PRINT("%s Flags: [0x%02x], DestPort %u",
indent,
- EXTRACT_U_1((obj_tptr + sizeof(struct in6_addr) + 1)),
- EXTRACT_BE_U_2(obj_tptr + sizeof(struct in6_addr) + 2));
+ EXTRACT_U_1((obj_tptr + sizeof(nd_ipv6) + 1)),
+ EXTRACT_BE_U_2(obj_tptr + sizeof(nd_ipv6) + 2));
obj_tlen-=20;
obj_tptr+=20;
break;
case RSVP_OBJ_CONFIRM:
switch(rsvp_obj_ctype) {
case RSVP_CTYPE_IPV4:
- if (obj_tlen < sizeof(struct in_addr))
+ if (obj_tlen < sizeof(nd_ipv4))
return -1;
ND_PRINT("%s IPv4 Receiver Address: %s",
indent,
ipaddr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in_addr);
- obj_tptr+=sizeof(struct in_addr);
+ obj_tlen-=sizeof(nd_ipv4);
+ obj_tptr+=sizeof(nd_ipv4);
break;
case RSVP_CTYPE_IPV6:
- if (obj_tlen < sizeof(struct in6_addr))
+ if (obj_tlen < sizeof(nd_ipv6))
return -1;
ND_PRINT("%s IPv6 Receiver Address: %s",
indent,
ip6addr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in6_addr);
- obj_tptr+=sizeof(struct in6_addr);
+ obj_tlen-=sizeof(nd_ipv6);
+ obj_tptr+=sizeof(nd_ipv6);
break;
default:
hexdump=TRUE;
case RSVP_OBJ_NOTIFY_REQ:
switch(rsvp_obj_ctype) {
case RSVP_CTYPE_IPV4:
- if (obj_tlen < sizeof(struct in_addr))
+ if (obj_tlen < sizeof(nd_ipv4))
return -1;
ND_PRINT("%s IPv4 Notify Node Address: %s",
indent,
ipaddr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in_addr);
- obj_tptr+=sizeof(struct in_addr);
+ obj_tlen-=sizeof(nd_ipv4);
+ obj_tptr+=sizeof(nd_ipv4);
break;
case RSVP_CTYPE_IPV6:
- if (obj_tlen < sizeof(struct in6_addr))
+ if (obj_tlen < sizeof(nd_ipv6))
return-1;
ND_PRINT("%s IPv6 Notify Node Address: %s",
indent,
ip6addr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in6_addr);
- obj_tptr+=sizeof(struct in6_addr);
+ obj_tlen-=sizeof(nd_ipv6);
+ obj_tptr+=sizeof(nd_ipv6);
break;
default:
hexdump=TRUE;
return-1;
ND_PRINT("%s Session Name: ", indent);
for (i = 0; i < namelen; i++)
- safeputchar(ndo, EXTRACT_U_1(obj_tptr + 4 + i));
+ fn_print_char(ndo, EXTRACT_U_1(obj_tptr + 4 + i));
ND_PRINT("%s Setup Priority: %u, Holding Priority: %u, Flags: [%s] (%#x)",
indent,
EXTRACT_U_1(obj_tptr),
ND_PRINT("%s Action: %s (%u), Label type: %u", indent,
tok2str(rsvp_obj_label_set_action_values, "Unknown", action),
- action, ((EXTRACT_BE_U_4(obj_tptr) & 0x7F)));
+ action, (EXTRACT_BE_U_4(obj_tptr) & 0x7F));
switch (action) {
case LABEL_SET_INCLUSIVE_RANGE:
}
return 0;
invalid:
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
return -1;
trunc:
- ND_PRINT("\n\t\t");
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return -1;
}
const u_char *tptr;
u_short plen, tlen;
+ ndo->ndo_protocol = "rsvp";
tptr=pptr;
rsvp_com_header = (const struct rsvp_common_header *)pptr;
return;
trunc:
- ND_PRINT("\n\t\t");
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
}