#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-l2tp.c,v 1.11 2002-05-25 09:41:07 guy Exp $";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-l2tp.c,v 1.12 2002-06-11 17:08:51 itojun Exp $";
#endif
#ifdef HAVE_CONFIG_H
{ L2TP_AVP_MAXIMUM_BPS, "MAXIMUM_BPS" },
{ L2TP_AVP_BEARER_TYPE, "BEARER_TYPE" },
{ L2TP_AVP_FRAMING_TYPE, "FRAMING_TYPE" },
- { L2TP_AVP_PACKET_PROC_DELAY, "PACKET_PROC_DELAY" },
+ { L2TP_AVP_PACKET_PROC_DELAY, "PACKET_PROC_DELAY" },
{ L2TP_AVP_CALLED_NUMBER, "CALLED_NUMBER" },
{ L2TP_AVP_CALLING_NUMBER, "CALLING_NUMBER" },
{ L2TP_AVP_SUB_ADDRESS, "SUB_ADDRESS" },
{ L2TP_AVP_TX_CONN_SPEED, "TX_CONN_SPEED" },
{ L2TP_AVP_PHY_CHANNEL_ID, "PHY_CHANNEL_ID" },
{ L2TP_AVP_INI_RECV_LCP, "INI_RECV_LCP" },
- { L2TP_AVP_LAST_SENT_LCP, "LAST_SENT_LCP" },
- { L2TP_AVP_LAST_RECV_LCP, "LAST_RECV_LCP" },
- { L2TP_AVP_PROXY_AUTH_TYPE, "PROXY_AUTH_TYPE" },
+ { L2TP_AVP_LAST_SENT_LCP, "LAST_SENT_LCP" },
+ { L2TP_AVP_LAST_RECV_LCP, "LAST_RECV_LCP" },
+ { L2TP_AVP_PROXY_AUTH_TYPE, "PROXY_AUTH_TYPE" },
{ L2TP_AVP_PROXY_AUTH_NAME, "PROXY_AUTH_NAME" },
- { L2TP_AVP_PROXY_AUTH_CHAL, "PROXY_AUTH_CHAL" },
+ { L2TP_AVP_PROXY_AUTH_CHAL, "PROXY_AUTH_CHAL" },
{ L2TP_AVP_PROXY_AUTH_ID, "PROXY_AUTH_ID" },
{ L2TP_AVP_PROXY_AUTH_RESP, "PROXY_AUTH_RESP" },
{ L2TP_AVP_CALL_ERRORS, "CALL_ERRORS" },
- { L2TP_AVP_ACCM, "ACCM" },
- { L2TP_AVP_RANDOM_VECTOR, "RANDOM_VECTOR" },
+ { L2TP_AVP_ACCM, "ACCM" },
+ { L2TP_AVP_RANDOM_VECTOR, "RANDOM_VECTOR" },
{ L2TP_AVP_PRIVATE_GRP_ID, "PRIVATE_GRP_ID" },
- { L2TP_AVP_RX_CONN_SPEED, "RX_CONN_SPEED" },
- { L2TP_AVP_SEQ_REQUIRED, "SEQ_REQUIRED" },
- { L2TP_AVP_PPP_DISCON_CC, "PPP_DISCON_CC" },
+ { L2TP_AVP_RX_CONN_SPEED, "RX_CONN_SPEED" },
+ { L2TP_AVP_SEQ_REQUIRED, "SEQ_REQUIRED" },
+ { L2TP_AVP_PPP_DISCON_CC, "PPP_DISCON_CC" },
{ 0, NULL }
};
/******************************/
/* generic print out routines */
/******************************/
-static void
+static void
print_string(const u_char *dat, u_int length)
{
int i;
}
}
-static void
+static void
print_octets(const u_char *dat, u_int length)
{
int i;
l2tp_result_code_print(const u_char *dat, u_int length)
{
u_int16_t *ptr = (u_int16_t *)dat;
-
+
printf("%u", EXTRACT_16BITS(ptr)); ptr++; /* Result Code */
if (length > 2) { /* Error Code (opt) */
printf("/%u", EXTRACT_16BITS(ptr)); ptr++;
if (length > 3) {
printf(" ");
print_string(dat+3, length-3);
- }
+ }
}
static void
{
u_int16_t *ptr = (u_int16_t *)dat;
- printf("%s", tok2str(l2tp_authentype2str,
+ printf("%s", tok2str(l2tp_authentype2str,
"AuthType-#%u", EXTRACT_16BITS(ptr)));
}
{
u_int16_t *ptr = (u_int16_t *)dat;
u_int16_t val_h, val_l;
-
+
ptr++; /* skip "Reserved" */
val_h = EXTRACT_16BITS(ptr); ptr++;
val_h = EXTRACT_16BITS(ptr); ptr++;
val_l = EXTRACT_16BITS(ptr); ptr++;
printf("send=%08x ", (val_h<<16) + val_l);
-
+
val_h = EXTRACT_16BITS(ptr); ptr++;
val_l = EXTRACT_16BITS(ptr); ptr++;
printf("recv=%08x ", (val_h<<16) + val_l);
l2tp_ppp_discon_cc_print(const u_char *dat, u_int length)
{
u_int16_t *ptr = (u_int16_t *)dat;
-
+
printf("%04x, ", EXTRACT_16BITS(ptr)); ptr++; /* Disconnect Code */
printf("%04x ", EXTRACT_16BITS(ptr)); ptr++; /* Control Protocol Number */
- printf("%s", tok2str(l2tp_cc_direction2str,
+ printf("%s", tok2str(l2tp_cc_direction2str,
"Direction-#%u", *((u_char *)ptr++)));
if (length > 5) {
TCHECK(*ptr); /* Flags & Length */
len = EXTRACT_16BITS(ptr) & L2TP_AVP_HDR_LEN_MASK;
- /* If it is not long enough to decode the entire AVP, we'll
+ /* If it is not long enough to decode the entire AVP, we'll
abandon. */
TCHECK2(*ptr, len);
/* After this point, no need to worry about truncation */
print_octets((u_char *)ptr, len-6);
printf(")");
} else {
- /* IETF-defined Attributes */
+ /* IETF-defined Attributes */
ptr++;
attr_type = EXTRACT_16BITS(ptr); ptr++;
printf("%s", tok2str(l2tp_avp2str, "AVP-#%u", attr_type));
case L2TP_AVP_CALLED_NUMBER:
case L2TP_AVP_SUB_ADDRESS:
case L2TP_AVP_PROXY_AUTH_NAME:
- case L2TP_AVP_PRIVATE_GRP_ID:
+ case L2TP_AVP_PRIVATE_GRP_ID:
print_string((u_char *)ptr, len-6);
break;
case L2TP_AVP_CHALLENGE:
ptr++;
cnt += 2;
-
+
if (flag_l) {
TCHECK(*ptr); /* Length */
l2tp_len = EXTRACT_16BITS(ptr); ptr++;
trunc:
printf("%s", tstr);
-}
+}