UDP
[Base Protocols]

Collaboration diagram for UDP:

Detailed Description

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.


Functions

void NutUdpInput (NETBUF *nb, uint_fast8_t bcast)
 Handle incoming UDP packets.
int NutUdpOutput (UDPSOCKET *sock, u_long daddr, u_short port, NETBUF *nb)
 Send a UDP packet.


Function Documentation

void NutUdpInput ( NETBUF nb,
uint_fast8_t  bcast 
)

Handle incoming UDP packets.

Note:
This routine is called by the IP layer on incoming UDP packets. Applications typically do not call this function.
Parameters:
nb Network buffer structure containing the UDP packet.
bcast Broadcast flag.

Definition at line 150 of file udpin.c.

References ICMP_UNREACH, ICMP_UNREACH_PORT, _NETBUF::nb_ap, _NETBUF::nb_next, _NETBUF::nb_tp, 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 NutIpInput().

int NutUdpOutput ( UDPSOCKET sock,
u_long  daddr,
u_short  port,
NETBUF nb 
)

Send a UDP packet.

Parameters:
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.
Note:
Applications typically do not call this function but use the UDP socket interface.
Returns:
0 on success, -1 otherwise.

Definition at line 149 of file udpout.c.

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().


© 2000-2007 by egnite Software GmbH - visit http://www.ethernut.de/