This is a low-level network debugging utility that utilizes raw packet i/o to construct and deconstruct tcp, udp, ipv4, arp, and icmp packets over ethernet.

Dependencies:   mbed

net/udp.h

Committer:
etherealflaim
Date:
2010-10-12
Revision:
0:d494b853ce97
Child:
2:e8e09adc41fc

File content as of revision 0:d494b853ce97:

#ifndef UDP_H
#define UDP_H

#include "net.h"

#define IPPROTO_UDP 0x11
typedef struct {
  u16 source_port;
  u16 destination_port;
  u16 length; // entire datagram in bytes
  u16 checksum;
  u8 data[];
} UDP_Packet;

inline void fix_endian_udp(UDP_Packet *segment)
{
  fix_endian_u16(&segment->source_port);
  fix_endian_u16(&segment->destination_port);
  fix_endian_u16(&segment->length);
}

inline void print_udp(UDP_Packet *segment)
{
  main_log.printf("UDP Packet:");
  main_log.printf("  Source:    PORT %d", segment->source_port);
  main_log.printf("  Dest:      PORT %d", segment->destination_port);
  main_log.printf("  Length:    %d", segment->length);
}

#endif