RFC 768 user datagram protocol. More...
Functions | |
int | NutUdpInput (NUTDEVICE *dev, NETBUF *nb) |
Handle incoming UDP packets. | |
int | NutUdpOutput (UDPSOCKET *sock, uint32_t daddr, uint16_t port, NETBUF *nb) |
Send a UDP packet. |
RFC 768 user datagram protocol.
UDP only provides checksumming of data and multiplexing by port number. Therefore, an application program must deal directly with end-to-end communication problems like retransmission, flow control etc., if required.
Applications should call the UDP Socket API when using this protocol.
Handle incoming UDP packets.
nb | Network buffer structure containing the UDP packet. |
References ICMP_UNREACH, ICMP_UNREACH_PORT, _NETBUF::nb_ap, _NETBUF::nb_flags, _NETBUF::nb_next, _NETBUF::nb_tp, NBAF_UNICAST, NULL, NutEventPost(), NutIcmpResponse(), NutNetBufFree(), NutUdpFindSocket(), udp_socket::so_rx_bsz, udp_socket::so_rx_cnt, udp_socket::so_rx_nb, udp_socket::so_rx_rdy, _NBDATA::sz, udphdr::uh_dport, and _NBDATA::vp.
Referenced by NutUdpCreateSocket().
Send a UDP packet.
sock | Socket descriptor. This pointer must have been retrieved by calling NutUdpCreateSocket(). |
daddr | IP address of the remote host in network byte order. |
port | Remote port number in host byte order. |
nb | Network buffer structure containing the datagram. This buffer will be released if the function returns an error. |
References _NUTDEVICE::dev_icb, htons, ifnet::if_local_ip, IPPROTO_UDP, _NETBUF::nb_ap, _NETBUF::nb_tp, NBAF_TRANSPORT, NutIpChkSum(), NutIpChkSumPartial(), NutIpOutput(), NutIpPseudoChkSumPartial(), NutIpRouteQuery(), NutNetBufAlloc(), udp_socket::so_local_port, _NBDATA::sz, udphdr::uh_dport, udphdr::uh_sport, udphdr::uh_sum, udphdr::uh_ulen, and _NBDATA::vp.
Referenced by NutUdpSendTo().