57 #ifndef LWIP_HDR_UDP_H    58 #define LWIP_HDR_UDP_H    75 #define UDP_FLAGS_NOCHKSUM       0x01U    76 #define UDP_FLAGS_UDPLITE        0x02U    77 #define UDP_FLAGS_CONNECTED      0x04U    78 #define UDP_FLAGS_MULTICAST_LOOP 0x08U    96 typedef void (*udp_recv_fn)(
void *arg, 
struct udp_pcb *pcb, 
struct pbuf *p,
    97     const ip_addr_t *addr, u16_t port);
   106   struct udp_pcb *next;
   110   u16_t local_port, remote_port;
   112 #if LWIP_MULTICAST_TX_OPTIONS   114   ip_addr_t multicast_ip;
   121   u16_t chksum_len_rx, chksum_len_tx;
   130 extern struct udp_pcb *udp_pcbs;
   134 struct udp_pcb * udp_new        (
void);
   135 struct udp_pcb * udp_new_ip_type(u8_t type);
   136 void             udp_remove     (
struct udp_pcb *pcb);
   137 err_t            udp_bind       (
struct udp_pcb *pcb, 
const ip_addr_t *ipaddr,
   139 err_t            udp_connect    (
struct udp_pcb *pcb, 
const ip_addr_t *ipaddr,
   141 void             udp_disconnect (
struct udp_pcb *pcb);
   142 void             udp_recv       (
struct udp_pcb *pcb, udp_recv_fn recv,
   144 err_t            udp_sendto_if  (
struct udp_pcb *pcb, 
struct pbuf *p,
   145                                  const ip_addr_t *dst_ip, u16_t dst_port,
   147 err_t            udp_sendto_if_src(
struct udp_pcb *pcb, 
struct pbuf *p,
   148                                  const ip_addr_t *dst_ip, u16_t dst_port,
   149                                  struct netif *
netif, 
const ip_addr_t *src_ip);
   150 err_t            udp_sendto     (
struct udp_pcb *pcb, 
struct pbuf *p,
   151                                  const ip_addr_t *dst_ip, u16_t dst_port);
   152 err_t            udp_send       (
struct udp_pcb *pcb, 
struct pbuf *p);
   154 #if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP   155 err_t            udp_sendto_if_chksum(
struct udp_pcb *pcb, 
struct pbuf *p,
   156                                  const ip_addr_t *dst_ip, u16_t dst_port,
   159 err_t            udp_sendto_chksum(
struct udp_pcb *pcb, 
struct pbuf *p,
   160                                  const ip_addr_t *dst_ip, u16_t dst_port,
   161                                  u8_t have_chksum, u16_t chksum);
   162 err_t            udp_send_chksum(
struct udp_pcb *pcb, 
struct pbuf *p,
   163                                  u8_t have_chksum, u16_t chksum);
   164 err_t            udp_sendto_if_src_chksum(
struct udp_pcb *pcb, 
struct pbuf *p,
   165                                  const ip_addr_t *dst_ip, u16_t dst_port, 
struct netif *
netif,
   166                                  u8_t have_chksum, u16_t chksum, 
const ip_addr_t *src_ip);
   169 #define          udp_flags(pcb) ((pcb)->flags)   170 #define          udp_setflags(pcb, f)  ((pcb)->flags = (f))   173 void             udp_input      (
struct pbuf *p, 
struct netif *inp);
   175 void             udp_init       (
void);
   178 #define udp_new_ip6() udp_new_ip_type(IPADDR_TYPE_V6)   180 #if LWIP_MULTICAST_TX_OPTIONS   181 #define udp_set_multicast_netif_addr(pcb, ip4addr) ip_addr_copy_from_ip4((pcb)->multicast_ip, *(ip4addr))   182 #define udp_get_multicast_netif_addr(pcb)          ip_2_ip4(&(pcb)->multicast_ip)   183 #define udp_set_multicast_ttl(pcb, value)      do { (pcb)->mcast_ttl = value; } while(0)   184 #define udp_get_multicast_ttl(pcb)                 ((pcb)->mcast_ttl)   188 void udp_debug_print(
struct udp_hdr *udphdr);
   190 #define udp_debug_print(udphdr)   193 void udp_netif_ip_addr_changed(
const ip_addr_t* old_addr, 
const ip_addr_t* new_addr);