home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / internet / netlite / NET / h / UDP < prev    next >
Text File  |  1993-04-03  |  2KB  |  48 lines

  1. /* User Datagram Protocol definitions */
  2.  
  3. #define NUDP    20
  4.  
  5. /* Structure of a UDP protocol header */
  6. struct udp {
  7.         int16 source;   /* Source port */
  8.         int16 dest;     /* Destination port */
  9.         int16 length;   /* Length of header and data */
  10.         int16 checksum; /* Checksum over pseudo-header, header and data */
  11. };
  12. #define UDPHDR  8       /* Length of UDP header */
  13.  
  14. /* User Datagram Protocol control block
  15.  * Each entry on the receive queue consists of the
  16.  * remote socket structure, followed by any data
  17.  */
  18. struct udp_cb {
  19.         struct udp_cb *prev;    /* Linked list pointers */
  20.         struct udp_cb *next;
  21.         struct socket socket;   /* Local port accepting datagrams */
  22.         void (*r_upcall)();     /* Function to call when one arrives */
  23.         void *arg;              /* User supplied data for upcall */
  24.         struct mbuf *rcvq;      /* Queue of pending datagrams */
  25.         int rcvcnt;             /* Count of pending datagrams */
  26. };
  27. extern struct udp_cb *udps[];   /* Hash table for UDP structures */
  28. #define NULLUDP (struct udp_cb *)0
  29.  
  30. /* UDP statistics counters */
  31. struct udp_stat {
  32.         int16 rcvd;             /* Packets received */
  33.         int16 sent;             /* Packets sent */
  34.         int16 cksum;            /* Checksum errors */
  35.         int16 unknown;          /* Unknown socket */
  36.         int16 bdcsts;           /* Incoming broadcasts */
  37. };
  38.  
  39. /* In UDP */
  40. int open_udp(struct socket *, void (*)(), void *);
  41. int recv_udp(struct socket *, struct socket *, struct mbuf **);
  42. int send_udp(struct socket *, struct socket *, char, char,
  43.              struct mbuf *, int16, int16, char);
  44. int del_udp(struct socket *);
  45. struct mbuf *htonudp(struct udp *, struct mbuf *, struct pseudo_header *);
  46. void ntohudp(struct udp *, struct mbuf **);
  47.  
  48.