Contiki 2.6
|
Functions used by an application running of top of uIP. More...
Defines | |
#define | uip_datalen() |
The length of any incoming data that is currently available (if available) in the uip_appdata buffer. | |
#define | uip_urgdatalen() |
The length of any out-of-band data (urgent data) that has arrived on the connection. | |
#define | uip_close() |
Close the current connection. | |
#define | uip_abort() |
Abort the current connection. | |
#define | uip_stop() |
Tell the sending host to stop sending data. | |
#define | uip_stopped(conn) |
Find out if the current connection has been previously stopped with uip_stop(). | |
#define | uip_restart() |
Restart the current connection, if is has previously been stopped with uip_stop(). | |
#define | uip_udpconnection() |
Is the current connection a UDP connection? | |
#define | uip_newdata() |
Is new incoming data available? | |
#define | uip_acked() |
Has previously sent data been acknowledged? | |
#define | uip_connected() |
Has the connection just been connected? | |
#define | uip_closed() |
Has the connection been closed by the other end? | |
#define | uip_aborted() |
Has the connection been aborted by the other end? | |
#define | uip_timedout() |
Has the connection timed out? | |
#define | uip_rexmit() |
Do we need to retransmit previously data? | |
#define | uip_poll() |
Is the connection being polled by uIP? | |
#define | uip_initialmss() |
Get the initial maximum segment size (MSS) of the current connection. | |
#define | uip_mss() |
Get the current maximum segment size that can be sent on the current connection. | |
#define | uip_udp_remove(conn) |
Remove a UDP connection. | |
#define | uip_udp_bind(conn, port) |
Bind a UDP connection to a local port. | |
#define | uip_udp_send(len) |
Send a UDP datagram of length len on the current connection. | |
Functions | |
void | uip_listen (uint16_t port) |
Start listening to the specified port. | |
void | uip_unlisten (uint16_t port) |
Stop listening to the specified port. | |
struct uip_conn * | uip_connect (uip_ipaddr_t *ripaddr, uint16_t port) |
Connect to a remote host using TCP. | |
CCIF void | uip_send (const void *data, int len) |
Send data on the current connection. | |
struct uip_udp_conn * | uip_udp_new (const uip_ipaddr_t *ripaddr, uint16_t rport) |
Set up a new UDP connection. |
Functions used by an application running of top of uIP.
#define uip_abort | ( | ) |
Abort the current connection.
This function will abort (reset) the current connection, and is usually used when an error has occurred that prevents using the uip_close() function.
#define uip_aborted | ( | ) |
Has the connection been aborted by the other end?
Non-zero if the current connection has been aborted (reset) by the remote host.
#define uip_acked | ( | ) |
#define uip_close | ( | ) |
#define uip_closed | ( | ) |
Has the connection been closed by the other end?
Is non-zero if the connection has been closed by the remote host. The application may then do the necessary clean-ups.
#define uip_connected | ( | ) |
Has the connection just been connected?
Reduces to non-zero if the current connection has been connected to a remote host. This will happen both if the connection has been actively opened (with uip_connect()) or passively opened (with uip_listen()).
#define uip_datalen | ( | ) |
#define uip_mss | ( | ) |
Get the current maximum segment size that can be sent on the current connection.
The current maximum segment size that can be sent on the connection is computed from the receiver's window and the MSS of the connection (which also is available by calling uip_initialmss()).
#define uip_newdata | ( | ) |
#define uip_poll | ( | ) |
Is the connection being polled by uIP?
Is non-zero if the reason the application is invoked is that the current connection has been idle for a while and should be polled.
The polling event can be used for sending data without having to wait for the remote host to send data.
#define uip_restart | ( | ) |
Restart the current connection, if is has previously been stopped with uip_stop().
This function will open the receiver's window again so that we start receiving data for the current connection.
#define uip_rexmit | ( | ) |
Do we need to retransmit previously data?
Reduces to non-zero if the previously sent data has been lost in the network, and the application should retransmit it. The application should send the exact same data as it did the last time, using the uip_send() function.
#define uip_stop | ( | ) |
#define uip_timedout | ( | ) |
Has the connection timed out?
Non-zero if the current connection has been aborted due to too many retransmissions.
#define uip_udp_bind | ( | conn, | |
port | |||
) |
Bind a UDP connection to a local port.
conn | A pointer to the uip_udp_conn structure for the connection. |
port | The local port number, in network byte order. |
#define uip_udp_remove | ( | conn | ) |
Remove a UDP connection.
conn | A pointer to the uip_udp_conn structure for the connection. |
#define uip_udp_send | ( | len | ) |
Send a UDP datagram of length len on the current connection.
This function can only be called in response to a UDP event (poll or newdata). The data must be present in the uip_buf buffer, at the place pointed to by the uip_appdata pointer.
len | The length of the data in the uip_buf buffer. |
#define uip_udpconnection | ( | ) |
#define uip_urgdatalen | ( | ) |
struct uip_conn* uip_connect | ( | uip_ipaddr_t * | ripaddr, |
uint16_t | port | ||
) | [read] |
Connect to a remote host using TCP.
This function is used to start a new connection to the specified port on the specified host. It allocates a new connection identifier, sets the connection to the SYN_SENT state and sets the retransmission timer to 0. This will cause a TCP SYN segment to be sent out the next time this connection is periodically processed, which usually is done within 0.5 seconds after the call to uip_connect().
uip_ipaddr_t ipaddr; uip_ipaddr(&ipaddr, 192,168,1,2); uip_connect(&ipaddr, UIP_HTONS(80));
ripaddr | The IP address of the remote host. |
port | A 16-bit port number in network byte order. |
void uip_listen | ( | uint16_t | port | ) |
Start listening to the specified port.
uip_listen(UIP_HTONS(80));
port | A 16-bit port number in network byte order. |
Definition at line 521 of file uip.c.
References UIP_LISTENPORTS.
CCIF void uip_send | ( | const void * | data, |
int | len | ||
) |
Send data on the current connection.
This function is used to send out a single segment of TCP data. Only applications that have been invoked by uIP for event processing can send data.
The amount of data that actually is sent out after a call to this function is determined by the maximum amount of data TCP allows. uIP will automatically crop the data so that only the appropriate amount of data is sent. The function uip_mss() can be used to query uIP for the amount of data that actually will be sent.
data | A pointer to the data which is to be sent. |
len | The maximum amount of data bytes to be sent. |
Definition at line 1954 of file uip.c.
References UIP_BUFSIZE, and UIP_LLH_LEN.
struct uip_udp_conn* uip_udp_new | ( | const uip_ipaddr_t * | ripaddr, |
uint16_t | rport | ||
) | [read] |
Set up a new UDP connection.
This function sets up a new UDP connection. The function will automatically allocate an unused local port for the new connection. However, another port can be chosen by using the uip_udp_bind() call, after the uip_udp_new() function has been called.
Example:
uip_ipaddr_t addr; struct uip_udp_conn *c; uip_ipaddr(&addr, 192,168,2,1); c = uip_udp_new(&addr, UIP_HTONS(12345)); if(c != NULL) { uip_udp_bind(c, UIP_HTONS(12344)); }
ripaddr | The IP address of the remote host. |
rport | The remote port number in network byte order. |
Definition at line 465 of file uip.c.
References uip_udp_conn::lport, NULL, uip_udp_conn::ripaddr, uip_udp_conn::rport, uip_udp_conn::ttl, uip_ds6_if, UIP_HTONS, uip_htons(), uip_ipaddr_copy, UIP_TTL, and UIP_UDP_CONNS.
Referenced by udp_new().
void uip_unlisten | ( | uint16_t | port | ) |
Stop listening to the specified port.
uip_unlisten(UIP_HTONS(80));
port | A 16-bit port number in network byte order. |
Definition at line 510 of file uip.c.
References UIP_LISTENPORTS.