*/
-#ifndef lint
-static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-slow.c,v 1.8 2006-10-12 05:44:33 hannes Exp $";
-#endif
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
{ 0x0020, "Remote Evaluating" },
{ 0x0040, "Remote Stable" },
{ 0, NULL}
-};
+};
#define SLOW_OAM_CODE_INFO 0x00
#define SLOW_OAM_CODE_EVENT_NOTIF 0x01
u_int8_t port[2];
u_int8_t state;
u_int8_t pad[3];
-};
+};
static const struct tok lacp_tlv_actor_partner_info_state_values[] = {
{ 0x01, "Activity"},
struct lacp_tlv_collector_info_t {
u_int8_t max_delay[2];
u_int8_t pad[12];
-};
+};
struct marker_tlv_marker_info_t {
u_int8_t req_port[2];
u_int8_t req_sys[ETHER_ADDR_LEN];
u_int8_t req_trans_id[4];
u_int8_t pad[2];
-};
+};
struct lacp_marker_tlv_terminator_t {
u_int8_t pad[50];
-};
+};
void slow_marker_lacp_print(register const u_char *, register u_int);
void slow_oam_print(register const u_char *, register u_int);
/* unrecognized subtype */
if (print_version == -1) {
- print_unknown_data(pptr, "\n\t", len);
+ print_unknown_data(gndo,pptr, "\n\t", len);
return;
}
const struct lacp_tlv_collector_info_t *lacp_tlv_collector_info;
const struct marker_tlv_marker_info_t *marker_tlv_marker_info;
} tlv_ptr;
-
+
while(tlen>0) {
/* did we capture enough for fully decoding the tlv header ? */
TCHECK2(*tptr, sizeof(struct tlv_header_t));
tlv_header->type != LACP_TLV_TERMINATOR &&
tlv_header->type != MARKER_TLV_TERMINATOR) {
printf("\n\t-----trailing data-----");
- print_unknown_data(tptr+sizeof(sizeof(struct tlv_header_t)),"\n\t ",tlen);
+ print_unknown_data(gndo,tptr+sizeof(struct tlv_header_t),"\n\t ",tlen);
return;
}
default:
if (vflag <= 1)
- print_unknown_data(tlv_tptr,"\n\t ",tlv_tlen);
+ print_unknown_data(gndo,tlv_tptr,"\n\t ",tlv_tlen);
break;
}
/* do we want to see an additional hexdump ? */
if (vflag > 1) {
- print_unknown_data(tptr+sizeof(sizeof(struct tlv_header_t)),"\n\t ",
+ print_unknown_data(gndo,tptr+sizeof(struct tlv_header_t),"\n\t ",
tlv_len-sizeof(struct tlv_header_t));
}
const struct slow_oam_variableresponse_t *slow_oam_variableresponse;
const struct slow_oam_loopbackctrl_t *slow_oam_loopbackctrl;
} tlv;
-
+
ptr.slow_oam_common_header = (struct slow_oam_common_header_t *)tptr;
tptr += sizeof(struct slow_oam_common_header_t);
tlen -= sizeof(struct slow_oam_common_header_t);
printf("\n\t ERROR: illegal length - should be 0");
}
return;
-
+
case SLOW_OAM_INFO_TYPE_LOCAL: /* identical format - fall through */
case SLOW_OAM_INFO_TYPE_REMOTE:
tlv.slow_oam_info = (const struct slow_oam_info_t *)tptr;
-
+
if (tlv.slow_oam_info->info_length !=
sizeof(struct slow_oam_info_t)) {
printf("\n\t ERROR: illegal length - should be %lu",
EXTRACT_24BITS(&tlv.slow_oam_info->oui),
EXTRACT_32BITS(&tlv.slow_oam_info->vendor_private));
break;
-
+
case SLOW_OAM_INFO_TYPE_ORG_SPECIFIC:
hexdump = TRUE;
break;
-
+
default:
hexdump = TRUE;
break;
/* do we also want to see a hex dump ? */
if (vflag > 1 || hexdump==TRUE) {
- print_unknown_data(tptr,"\n\t ",
+ print_unknown_data(gndo,tptr,"\n\t ",
ptr.slow_oam_tlv_header->length);
}
printf("\n\t ERROR: illegal length - should be 0");
}
return;
-
+
case SLOW_OAM_LINK_EVENT_ERR_SYM_PER: /* identical format - fall through */
case SLOW_OAM_LINK_EVENT_ERR_FRM:
case SLOW_OAM_LINK_EVENT_ERR_FRM_PER:
case SLOW_OAM_LINK_EVENT_ERR_FRM_SUMM:
tlv.slow_oam_link_event = (const struct slow_oam_link_event_t *)tptr;
-
+
if (tlv.slow_oam_link_event->event_length !=
sizeof(struct slow_oam_link_event_t)) {
printf("\n\t ERROR: illegal length - should be %lu",
EXTRACT_64BITS(&tlv.slow_oam_link_event->errors_running_total),
EXTRACT_32BITS(&tlv.slow_oam_link_event->event_running_total));
break;
-
+
case SLOW_OAM_LINK_EVENT_ORG_SPECIFIC:
hexdump = TRUE;
break;
-
+
default:
hexdump = TRUE;
break;
/* do we also want to see a hex dump ? */
if (vflag > 1 || hexdump==TRUE) {
- print_unknown_data(tptr,"\n\t ",
+ print_unknown_data(gndo,tptr,"\n\t ",
ptr.slow_oam_tlv_header->length);
}
tptr += ptr.slow_oam_tlv_header->length;
}
break;
-
+
case SLOW_OAM_CODE_LOOPBACK_CTRL:
tlv.slow_oam_loopbackctrl = (const struct slow_oam_loopbackctrl_t *)tptr;
printf("\n\t Command %s (%u)",
case SLOW_OAM_CODE_PRIVATE:
default:
if (vflag <= 1) {
- print_unknown_data(tptr,"\n\t ", tlen);
+ print_unknown_data(gndo,tptr,"\n\t ", tlen);
}
break;
}