#include <stdio.h>
#include <stdlib.h>
#include "snoop.h"

void dumpheader(ETHER_HEADER far *MAC_header, unsigned length) {
	printf("Ether: len %4u  src %.2X:%.2X:%.2X:%.2X:%.2X:%.2X  dst "
				 "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X  type ", length,
				 MAC_header->src[0],MAC_header->src[1],MAC_header->src[2],
				 MAC_header->src[3],MAC_header->src[4],MAC_header->src[5],
				 MAC_header->dst[0],MAC_header->dst[1],MAC_header->dst[2],
				 MAC_header->dst[3],MAC_header->dst[4],MAC_header->dst[5]);

	switch(MAC_header->type) {
	case ETHER_NS_IDP:
		printf("Xerox NS IDP");
		break;
	case ETHER_IP:
		printf("IP");
		break;
	case ETHER_X75:
		printf("X.75 internet");
		break;
	case ETHER_NBS:
		printf("NBS internet");
		break;
	case ETHER_ECMA:
		printf("ECMA internet");
		break;
	case ETHER_CHAOS:
		printf("ChaosNet");
		break;
	case ETHER_X25:
		printf("X.25, level 3");
		break;
	case ETHER_ARP:
		printf("ARP");
		break;
	case ETHER_XNS:
		printf("XNS compatibility");
		break;
	case ETHER_DEC:
		printf("DECnet, phase IV");
		break;
	case ETHER_VLN:
		printf("Cronus VLN");
		break;
	case ETHER_HP:
		printf("HP Probe");
		break;
	case ETHER_NESTAR:
		printf("Nestar");
		break;
	case ETHER_EXCELAN:
		printf("Excelan");
		break;
	case ETHER_RARP:
		printf("reverse ARP");
		break;
	case ETHER_LAN:
		printf("DEC LANbridge");
		break;
	case ETHER_APPLE:
		printf("Appletalk");
		break;
	case ETHER_LOOP:
		printf("loopback");
		break;
	default:
		printf("unknown");
	}

	printf("\n");

}