home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / misc / 9q920411 / enethdr.c < prev    next >
C/C++ Source or Header  |  1992-04-08  |  743b  |  40 lines

  1. /* Ethernet header conversion routines
  2.  * Copyright 1991 Phil Karn, KA9Q
  3.  */
  4. #include "global.h"
  5. #include "mbuf.h"
  6. #include "enet.h"
  7.  
  8. /* Convert Ethernet header in host form to network mbuf */
  9. struct mbuf *
  10. htonether(ether,data)
  11. struct ether *ether;
  12. struct mbuf *bp;
  13. {
  14.     register char *cp;
  15.  
  16.     bp = pushdown(bp,ETHERLEN);
  17.  
  18.     cp = bp->data;
  19.  
  20.     memcpy(cp,ether->dest,EADDR_LEN);
  21.     cp += EADDR_LEN;
  22.     memcpy(cp,ether->source,EADDR_LEN);
  23.     cp += EADDR_LEN;
  24.     put16(cp,ether->type);
  25.  
  26.     return bp;
  27. }
  28. /* Extract Ethernet header */
  29. int
  30. ntohether(ether,bpp)
  31. struct ether *ether;
  32. struct mbuf **bpp;
  33. {
  34.     pullup(bpp,ether->dest,EADDR_LEN);
  35.     pullup(bpp,ether->source,EADDR_LEN);
  36.     ether->type = pull16(bpp);
  37.     return ETHERLEN;
  38. }
  39.  
  40.