	case	IP_ICMP:	// internet control msg
	printf("ICMP");
break;

	case	IP_IGMP:	// internet group mangmt
	printf("IGMP");
break;

	case	IP_GGP:		// gateway-2-gateway
	printf("GGP");
break;

	case	IP_ST:		// stream
	printf("ST");
break;

	case	IP_TCP:		// tranmission control
	printf("TCP");
break;

	case	IP_UCL:		// UCL
	printf("UCL");
break;

	case	IP_EGP:		// exterior gateway
	printf("EGP");
break;

	case	IP_IGP:		// any private interior
	printf("IGP");      // gateway
break;

	case	IP_BBN:		// BBN RCC monitoring
	printf("BBN-RCC-MON");
break;

	case	IP_NVP:		// network voice
	printf("NVP-II");
break;

	case	IP_PUP:		// PUP
	printf("PUP");
break;

	case	IP_ARGUS:	// ARGUS
	printf("ARGUS");
break;

	case	IP_EMCON:	// EMCON
	printf("EMCON");
break;

	case	IP_XNET:	// cross-net debugger
	printf("XNET");
break;

	case	IP_CHAOS:	// chaos
	printf("CHAOS");
break;

	case	IP_UDP:		// user datagram
	printf("UDP");
break;

	case	IP_MUX:		// multiplexing
	printf("MUX");
break;

	case	IP_DCN:		// DCN measurment
	printf("DCN-MEAS");
break;

	case	IP_HMP:		// host monitoring
	printf("HMP");
break;

	case	IP_PRM:		// packet radio measurment
	printf("PRM");
break;

	case	IP_XNS:		// XEROX NS IDP
	printf("XNS-IDP");
break;

	case	IP_TRNK1:	// trunk 1
	printf("TRUNK-1");
break;

	case	IP_TRNK2:	// trunk 2
	printf("TRUNK-2");
break;

	case	IP_LEAF1:	// leaf 1
	printf("LEAF-1");
break;

	case	IP_LEAF2:	// leaf 2
	printf("LEAF-2");
break;

	case	IP_RDP:		// reliable data
	printf("RDP");
break;

	case	IP_IRTP:	// inet reliable transaction
	printf("IRTP");
break;

	case	IP_TP4:		// ISO transport, class 4
	printf("ISO-TP4");
break;

	case	IP_NETBLT:	// bulk data transfer
	printf("NETBLT");
break;

	case	IP_MFE:		// MFE net services
	printf("MFE-NSP");
break;

	case	IP_INP:		// merit internodal
	printf("MERIT-INP");
break;

	case	IP_SEP:		// sequential exchange
	printf("SEP");
break;

	case	IP_IHOST:	// any host internal
	printf("IHost");	// protocol
break;

	case	IP_CFTP:	// CFTP
	printf("CFTP");
break;

	case	IP_LOCL:	// any locak network
	printf("Local");
break;

	case	IP_EXPAK:	// SATNET & backroom EXPAK
	printf("SAT-EXPAK");
break;

	case	IP_MIT:		// MIT subnet support
	printf("MIT-SUBNET");
break;

	case	IP_RVD:		// MIT remote virtual disk
	printf("RVD");
break;

	case	IP_IPPC:	// inet pluribus packet core
	printf("IPPC");
break;

	case	IP_DFS:		// any distributed file sys
	printf("DFS");
break;

	case	IP_SAT:		// SATNET monitoring
	printf("SAT-MON");
break;

	case	IP_IPCU:	// inet packet core utility
	printf("IPCU");
break;

	case	IP_BRSAT:	// backroom SATNET monitor
	printf("BR-SAT-MON");
break;

	case	IP_WBMON:	// wideband monitoring
	printf("WB-MON");
break;

	case	IP_WBEXPAK:	// wideband EXPAK
	printf("WB-EXPAK");
break;

default:



