/* $Header: decnet.c,v 1.1 87/09/01 16:14:25 mar Exp $ */


#include <stdio.h>
#include <sys/types.h>

do_dna(pbuf, p)
char	*pbuf;
u_char	*p;
{
    char tmp[64];
    u_short dst, src;

    p += 2;
    if (*p & 0x80)
      p += 0x7f & *p;
    switch (p[0] & 0x0f) {
    case 0x06:
    case 0x0e:
	src = p[15] + (p[16] << 8);
	dst = p[7] + (p[8] << 8);
	sprintf(tmp, "DECNET DATA %d.%d -> %d.%d ", (src >> 10), (src & 0x3f),
		(dst >> 10), (dst & 0x3f));
	strcat(pbuf, tmp);
	break;
    case 0x07:
	src = p[1] + (p[2] << 8);
	sprintf(tmp, "DECNET LVL 1 ROUTE %d.%d ", (src >> 10), (src & 0x3f));
	strcat(pbuf, tmp);
	break;
    case 0x09:
	src = p[1] + (p[2] << 8);
	sprintf(tmp, "DECNET LVL 2 ROUTE %d.%d ", (src >> 10), (src & 0x3f));
	strcat(pbuf, tmp);
	break;
    case 0x0b:
	src = p[8] + (p[9] << 8);
	sprintf(tmp, "DECNET HELLO ROUTER %d.%d ", (src >> 10), (src & 0x3f));
	strcat(pbuf, tmp);
	break;
    case 0x0d:
	src = p[8] + (p[9] << 8);
	sprintf(tmp, "DECNET HELLO ENDNODE %d.%d ", (src >> 10), (src & 0x3f));
	strcat(pbuf, tmp);
	break;
    default:
	strcat(pbuf, "DECNET ??? ");
    }

}
