| #ifndef ROS_KERN_UDP_H | 
 | #define ROS_KERN_UDP_H | 
 | #include <net/pbuf.h> | 
 | #include <net/ip.h> | 
 | #include <net.h> | 
 | #include <bits/netinet.h> | 
 | #include <socket.h> | 
 |  | 
 | #define UDP_HLEN 8 | 
 | #define UDP_TTL 255 | 
 |  | 
 |  | 
 | struct udp_pcb { | 
 | 		IP_PCB; | 
 |     /** ports are in host byte order */ | 
 |     uint16_t local_port, remote_port; | 
 |     uint8_t flags; | 
 | 		uint8_t pad2; | 
 |     /* Protocol specific PCB members */ | 
 |     struct udp_pcb *next; | 
 | 		struct socket *pcbsock; | 
 | }; | 
 |  | 
 | extern struct udp_pcb *udp_pcbs; | 
 | #define GLOBAL_IP 0x0A000001 // 10.0.0.1 | 
 | struct udp_pcb * udp_new(void); | 
 | int udp_send(struct udp_pcb *pcb, struct pbuf *p); | 
 | int udp_sendto(struct udp_pcb *pcb, struct pbuf *p, | 
 |                     struct in_addr *dst_ip, uint16_t dst_port); | 
 | int udp_bind(struct udp_pcb *pcb, const struct in_addr *ip, uint16_t port); | 
 | int udp_input(struct pbuf *p); | 
 |  | 
 | #define UDP_FLAGS_NOCHKSUM       0x01U | 
 | #define UDP_FLAGS_UDPLITE        0x02U | 
 | #define UDP_FLAGS_CONNECTED      0x04U | 
 | #define UDP_FLAGS_MULTICAST_LOOP 0x08U | 
 |  | 
 | #endif |