Data Structures | |
struct | Redirected |
struct | uip_ds6_aaddr |
Anycast address. More... | |
struct | uip_ds6_addr |
Unicast address structure. More... | |
struct | uip_ds6_element |
Generic type for a DS6, to use a common loop though all DS. More... | |
struct | uip_ds6_maddr |
A multicast address. More... | |
struct | uip_ds6_nbr |
An entry in the nbr cache. More... | |
struct | uip_ds6_netif |
Interface structure (contains all the interface variables) More... | |
struct | uip_ds6_prefix |
A prefix list entry. More... | |
struct | uip_icmp6_echo_reply_notification |
struct | uip_icmp6_error |
ICMPv6 Error message constant part. More... | |
struct | uip_icmp6_input_handler |
struct | uip_nd6_na |
A neighbor advertisement constant part. More... | |
struct | uip_nd6_ns |
A neighbor solicitation constant part. More... | |
struct | uip_nd6_opt_hdr |
ND option header. More... | |
struct | uip_nd6_opt_mtu |
ND option MTU. More... | |
struct | uip_nd6_opt_prefix_info |
ND option prefix information. More... | |
struct | uip_nd6_opt_redirected_hdr |
struct | uip_nd6_ra |
A router advertisement constant part. More... | |
struct | uip_nd6_redirect |
A redirect message constant part. More... | |
struct | uip_nd6_rs |
A router solicitation constant part. More... | |
Files | |
file | rpl-dag.c |
Logic for Directed Acyclic Graphs in RPL. | |
file | rpl-ext-header.c |
Management of extension headers for ContikiRPL. | |
file | rpl-icmp6.c |
ICMP6 I/O for RPL control messages. | |
file | rpl-mrhof.c |
The Minimum Rank with Hysteresis Objective Function (MRHOF) | |
file | rpl-of0.c |
An implementation of RPL's objective function 0. | |
file | rpl-timers.c |
RPL timer management. | |
file | rpl.c |
ContikiRPL, an implementation of RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks (IETF RFC 6550) | |
file | uip-ds6-nbr.c |
IPv6 Neighbor cache (link-layer/IPv6 address mapping) | |
file | uip-ds6-nbr.h |
IPv6 Neighbor cache (link-layer/IPv6 address mapping) | |
file | uip-ds6.c |
IPv6 data structures handling functions. | |
file | uip-ds6.h |
Network interface and stateless autoconfiguration (RFC 4862) | |
file | uip-icmp6.c |
ICMPv6 echo request and error messages (RFC 4443) | |
file | uip-icmp6.h |
ICMPv6 echo request and error messages (RFC 4443) | |
file | uip-nd6.c |
Neighbor discovery (RFC 4861) | |
file | uip-nd6.h |
Neighbor discovery (RFC 4861) | |
file | uip6.c |
The uIP TCP/IPv6 stack code. | |
Typedefs | |
typedef uint16_t | rpl_path_metric_t |
typedef struct uip_ds6_aaddr | uip_ds6_aaddr_t |
Anycast address. More... | |
typedef struct uip_ds6_addr | uip_ds6_addr_t |
Unicast address structure. More... | |
typedef struct uip_ds6_element | uip_ds6_element_t |
Generic type for a DS6, to use a common loop though all DS. More... | |
typedef struct uip_ds6_maddr | uip_ds6_maddr_t |
A multicast address. More... | |
typedef struct uip_ds6_nbr | uip_ds6_nbr_t |
An entry in the nbr cache. More... | |
typedef struct uip_ds6_netif | uip_ds6_netif_t |
Interface structure (contains all the interface variables) More... | |
typedef struct uip_ds6_prefix | uip_ds6_prefix_t |
A prefix list entry. More... | |
typedef struct uip_icmp6_error | uip_icmp6_error |
ICMPv6 Error message constant part. More... | |
"DS6" Data structures | |
uip_ds6_netif_t | uip_ds6_if |
uip_ds6_prefix_t | uip_ds6_prefix_list [UIP_DS6_PREFIX_NB] |
The single interface. More... | |
uint8_t | uip_ds6_addr_size |
Prefix list. More... | |
uint8_t | uip_ds6_netif_addr_list_offset |
Layer 2 variables | |
uip_lladdr_t | uip_lladdr = {{0x00,0x06,0x98,0x00,0x02,0x32}} |
Host L2 address. More... | |
Layer 3 variables | |
uint8_t * | uip_next_hdr |
Type of the next header in IPv6 header or extension headers. More... | |
uint8_t | uip_ext_bitmap = 0 |
bitmap we use to record which IPv6 headers we have already seen More... | |
uint8_t | uip_ext_len = 0 |
length of the extension headers read. More... | |
uint8_t | uip_ext_opt_offset = 0 |
length of the header options read More... | |
Buffer variables | |
uip_buf_t | uip_aligned_buf |
Packet buffer for incoming and outgoing packets. More... | |
void * | uip_appdata |
Pointer to the application data in the packet buffer. More... | |
void * | uip_sappdata |
uint16_t | uip_len |
The length of the packet in the uip_buf buffer. More... | |
uint16_t | uip_slen |
General variables | |
uint8_t | uip_flags |
struct uip_conn * | uip_conn |
Pointer to the current TCP connection. More... | |
TCP defines | |
#define | TCP_FIN 0x01 |
#define | TCP_SYN 0x02 |
#define | TCP_RST 0x04 |
#define | TCP_PSH 0x08 |
#define | TCP_ACK 0x10 |
#define | TCP_URG 0x20 |
#define | TCP_CTL 0x3f |
#define | TCP_OPT_END 0 /* End of TCP options list */ |
#define | TCP_OPT_NOOP 1 /* "No-operation" TCP option */ |
#define | TCP_OPT_MSS 2 /* Maximum segment size TCP option */ |
#define | TCP_OPT_MSS_LEN 4 /* Length of TCP MSS option. */ |
Pointers to the header structures. | |
All pointers except UIP_IP_BUF depend on uip_ext_len, which at packet reception, is the total length of the extension headers. The pointer to ND6 options header also depends on nd6_opt_offset, which we set in each function. Care should be taken when manipulating these buffers about the value of these length variables | |
#define | UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN]) |
Pointer to IP header. More... | |
#define | UIP_ICMP_BUF ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Pointer to ICMP header. More... | |
#define | UIP_ND6_RS_BUF ((uip_nd6_rs *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
#define | UIP_ND6_RA_BUF ((uip_nd6_ra *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
#define | UIP_ND6_NS_BUF ((uip_nd6_ns *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
#define | UIP_ND6_NA_BUF ((uip_nd6_na *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
General | |
#define | UIP_ND6_HOP_LIMIT 255 |
HOP LIMIT to be used when sending ND messages (255) More... | |
#define | UIP_ND6_INFINITE_LIFETIME 0xFFFFFFFF |
INFINITE lifetime. More... | |
RFC 4861 Host constant | |
#define | UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1 |
#define | UIP_ND6_RTR_SOLICITATION_INTERVAL 4 |
#define | UIP_ND6_MAX_RTR_SOLICITATIONS 3 |
RFC 4861 Router constants | |
#define | UIP_ND6_SEND_RA 1 /* enable/disable RA sending */ |
#define | UIP_ND6_SEND_NA 1 /* enable/disable NA sending */ |
#define | UIP_ND6_MAX_RA_INTERVAL 600 |
#define | UIP_ND6_MIN_RA_INTERVAL (UIP_ND6_MAX_RA_INTERVAL / 3) |
#define | UIP_ND6_M_FLAG 0 |
#define | UIP_ND6_O_FLAG 0 |
#define | UIP_ND6_ROUTER_LIFETIME 3 * UIP_ND6_MAX_RA_INTERVAL |
#define | UIP_ND6_MAX_INITIAL_RA_INTERVAL 16 /*seconds*/ |
#define | UIP_ND6_MAX_INITIAL_RAS 3 /*transmissions*/ |
#define | UIP_ND6_MIN_DELAY_BETWEEN_RAS 3 /*seconds*/ |
#define | UIP_ND6_MAX_RA_DELAY_TIME_MS 500 /*milli seconds*/ |
RFC 4861 Node constant | |
#define | UIP_ND6_MAX_MULTICAST_SOLICIT 3 |
#define | UIP_ND6_MAX_UNICAST_SOLICIT 3 |
#define | UIP_ND6_REACHABLE_TIME 30000 |
#define | UIP_ND6_RETRANS_TIMER 1000 |
#define | UIP_ND6_DELAY_FIRST_PROBE_TIME 5 |
#define | UIP_ND6_MIN_RANDOM_FACTOR(x) (x / 2) |
#define | UIP_ND6_MAX_RANDOM_FACTOR(x) ((x) + (x) / 2) |
ND6 option types | |
#define | UIP_ND6_OPT_SLLAO 1 |
#define | UIP_ND6_OPT_TLLAO 2 |
#define | UIP_ND6_OPT_PREFIX_INFO 3 |
#define | UIP_ND6_OPT_REDIRECTED_HDR 4 |
#define | UIP_ND6_OPT_MTU 5 |
#define | UIP_ND6_OPT_TYPE_OFFSET 0 |
#define | UIP_ND6_OPT_LEN_OFFSET 1 |
#define | UIP_ND6_OPT_DATA_OFFSET 2 |
ND6 message length (excluding options) | |
#define | UIP_ND6_NA_LEN 20 |
#define | UIP_ND6_NS_LEN 20 |
#define | UIP_ND6_RA_LEN 12 |
#define | UIP_ND6_RS_LEN 4 |
ND6 option length in bytes | |
#define | UIP_ND6_OPT_HDR_LEN 2 |
#define | UIP_ND6_OPT_PREFIX_INFO_LEN 32 |
#define | UIP_ND6_OPT_MTU_LEN 8 |
#define | UIP_ND6_OPT_LLAO_LEN 8 |
length of a ND6 LLAO option for default L2 type (e.g. More... | |
Neighbor Advertisement flags masks | |
#define | UIP_ND6_NA_FLAG_ROUTER 0x80 |
#define | UIP_ND6_NA_FLAG_SOLICITED 0x40 |
#define | UIP_ND6_NA_FLAG_OVERRIDE 0x20 |
#define | UIP_ND6_RA_FLAG_ONLINK 0x80 |
#define | UIP_ND6_RA_FLAG_AUTONOMOUS 0x40 |
ND message structures | |
typedef struct uip_nd6_ns | uip_nd6_ns |
A neighbor solicitation constant part. More... | |
typedef struct uip_nd6_na | uip_nd6_na |
A neighbor advertisement constant part. More... | |
typedef struct uip_nd6_rs | uip_nd6_rs |
A router solicitation constant part. More... | |
typedef struct uip_nd6_ra | uip_nd6_ra |
A router advertisement constant part. More... | |
typedef struct uip_nd6_redirect | uip_nd6_redirect |
A redirect message constant part. More... | |
ND Option structures | |
typedef struct uip_nd6_opt_hdr | uip_nd6_opt_hdr |
ND option header. More... | |
typedef struct uip_nd6_opt_prefix_info | uip_nd6_opt_prefix_info |
ND option prefix information. More... | |
typedef struct uip_nd6_opt_mtu | uip_nd6_opt_mtu |
ND option MTU. More... | |
typedef struct uip_nd6_opt_redirected_hdr | uip_nd6_opt_redirected_hdr |
ND Messages Processing and Generation | |
void | uip_nd6_ns_input (void) |
Process a neighbor solicitation. More... | |
void | uip_nd6_ns_output (uip_ipaddr_t *src, uip_ipaddr_t *dest, uip_ipaddr_t *tgt) |
Send a neighbor solicitation, send a Neighbor Advertisement. More... | |
void | uip_nd6_rs_output (void) |
Send a Router Solicitation. More... | |
void | uip_nd6_init (void) |
Initialise the uIP ND core. More... | |
ICMPv6 message types | |
#define | ICMP6_DST_UNREACH 1 |
dest unreachable More... | |
#define | ICMP6_PACKET_TOO_BIG 2 |
packet too big More... | |
#define | ICMP6_TIME_EXCEEDED 3 |
time exceeded More... | |
#define | ICMP6_PARAM_PROB 4 |
ip6 header bad More... | |
#define | ICMP6_ECHO_REQUEST 128 |
Echo request. More... | |
#define | ICMP6_ECHO_REPLY 129 |
Echo reply. More... | |
#define | ICMP6_RS 133 |
Router Solicitation. More... | |
#define | ICMP6_RA 134 |
Router Advertisement. More... | |
#define | ICMP6_NS 135 |
Neighbor Solicitation. More... | |
#define | ICMP6_NA 136 |
Neighbor advertisement. More... | |
#define | ICMP6_REDIRECT 137 |
Redirect. More... | |
#define | ICMP6_RPL 155 |
RPL. More... | |
#define | ICMP6_PRIV_EXP_100 100 |
Private Experimentation. More... | |
#define | ICMP6_PRIV_EXP_101 101 |
Private Experimentation. More... | |
#define | ICMP6_PRIV_EXP_200 200 |
Private Experimentation. More... | |
#define | ICMP6_PRIV_EXP_201 201 |
Private Experimentation. More... | |
#define | ICMP6_ROLL_TM ICMP6_PRIV_EXP_200 |
ROLL Trickle Multicast. More... | |
ICMPv6 Destination Unreachable message codes | |
#define | ICMP6_DST_UNREACH_NOROUTE 0 |
no route to destination More... | |
#define | ICMP6_DST_UNREACH_ADMIN 1 |
administratively prohibited More... | |
#define | ICMP6_DST_UNREACH_NOTNEIGHBOR 2 |
not a neighbor(obsolete) More... | |
#define | ICMP6_DST_UNREACH_BEYONDSCOPE 2 |
beyond scope of source address More... | |
#define | ICMP6_DST_UNREACH_ADDR 3 |
address unreachable More... | |
#define | ICMP6_DST_UNREACH_NOPORT 4 |
port unreachable More... | |
ICMPv6 Time Exceeded message codes | |
#define | ICMP6_TIME_EXCEED_TRANSIT 0 |
ttl==0 in transit More... | |
#define | ICMP6_TIME_EXCEED_REASSEMBLY 1 |
ttl==0 in reass More... | |
ICMPv6 Parameter Problem message codes | |
#define | ICMP6_PARAMPROB_HEADER 0 |
erroneous header field More... | |
#define | ICMP6_PARAMPROB_NEXTHEADER 1 |
unrecognized next header More... | |
#define | ICMP6_PARAMPROB_OPTION 2 |
unrecognized option More... | |
ICMPv6 RFC4443 Message processing and sending | |
typedef void(* | uip_icmp6_echo_reply_callback_t )(uip_ipaddr_t *source, uint8_t ttl, uint8_t *data, uint16_t datalen) |
typedef struct uip_icmp6_input_handler | uip_icmp6_input_handler_t |
uint8_t | uip_icmp6_input (uint8_t type, uint8_t icode) |
Handle an incoming ICMPv6 message. More... | |
void | uip_icmp6_register_input_handler (uip_icmp6_input_handler_t *handler) |
Register a handler which can handle a specific ICMPv6 message type. More... | |
void | uip_icmp6_error_output (uint8_t type, uint8_t code, uint32_t param) |
Send an icmpv6 error message. More... | |
void | uip_icmp6_send (const uip_ipaddr_t *dest, int type, int code, int payload_len) |
Send an icmpv6 message. More... | |
void | uip_icmp6_echo_reply_callback_add (struct uip_icmp6_echo_reply_notification *n, uip_icmp6_echo_reply_callback_t c) |
Add a callback function for ping replies. More... | |
void | uip_icmp6_echo_reply_callback_rm (struct uip_icmp6_echo_reply_notification *n) |
Remove a callback function for ping replies. More... | |
void | uip_icmp6_init (void) |
Initialise the uIP ICMPv6 core. More... | |
#define | UIP_ICMP6_INPUT_SUCCESS 0 |
#define | UIP_ICMP6_INPUT_ERROR 1 |
#define | UIP_ICMP6_HANDLER_CODE_ANY 0xFF /* Handle all codes for this type */ |
#define | UIP_ICMP6_HANDLER(name, type, code, func) static uip_icmp6_input_handler_t name = { NULL, type, code, func } |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ 0 |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ 0 |
#define _DEBUG_ DEBUG_NONE |
#define _DEBUG_ 0 |
#define _DEBUG_ DEBUG_NONE |
#define ADDR_ANYTYPE 0 |
How the address was acquired: Autoconf, DHCP or manually.
#define ADDR_AUTOCONF 1 |
Referenced by check_prefix(), ra_input(), set_global_address(), and uip_ds6_init().
#define ADDR_DEPRECATED 2 |
#define ADDR_DHCP 2 |
#define ADDR_MANUAL 3 |
#define ADDR_PREFERRED 1 |
#define ADDR_TENTATIVE 0 |
Possible states for the an address (RFC 4862)
Referenced by get_global_addr(), ip64_init(), main(), na_input(), ns_input(), set_global_address(), uip_ds6_addr_add(), and uip_ds6_periodic().
#define DEFAULT_RANK_INCREMENT RPL_MIN_HOPRANKINC |
Referenced by calculate_rank().
#define ETX_ALPHA 90 |
Referenced by neighbor_link_callback().
#define ETX_SCALE 100 |
Referenced by neighbor_link_callback().
#define FBUF ((struct uip_tcpip_hdr *)&uip_reassbuf[0]) |
#define FOUND 0 |
Referenced by uip_ds6_aaddr_lookup(), uip_ds6_addr_lookup(), uip_ds6_list_loop(), uip_ds6_maddr_lookup(), and uip_ds6_prefix_lookup().
#define FREESPACE 1 |
Referenced by uip_ds6_aaddr_add(), uip_ds6_addr_add(), uip_ds6_list_loop(), uip_ds6_maddr_add(), and uip_ds6_prefix_add().
#define ICMP6_DST_UNREACH 1 |
dest unreachable
Referenced by uip_process().
#define ICMP6_DST_UNREACH_ADDR 3 |
address unreachable
#define ICMP6_DST_UNREACH_ADMIN 1 |
administratively prohibited
#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 |
beyond scope of source address
#define ICMP6_DST_UNREACH_NOPORT 4 |
port unreachable
Referenced by uip_process().
#define ICMP6_DST_UNREACH_NOROUTE 0 |
no route to destination
#define ICMP6_DST_UNREACH_NOTNEIGHBOR 2 |
not a neighbor(obsolete)
Referenced by uip_process().
#define ICMP6_ECHO_REPLY 129 |
Echo reply.
Referenced by echo_request_input().
#define ICMP6_ECHO_REQUEST 128 |
Echo request.
Referenced by PROCESS_THREAD().
#define ICMP6_NA 136 |
Neighbor advertisement.
Referenced by ns_input().
#define ICMP6_NS 135 |
Neighbor Solicitation.
Referenced by uip_nd6_ns_output().
#define ICMP6_PACKET_TOO_BIG 2 |
packet too big
Referenced by uip_process().
#define ICMP6_PARAM_PROB 4 |
ip6 header bad
Referenced by ext_hdr_options_process(), uip_icmp6_error_output(), and uip_process().
#define ICMP6_PARAMPROB_HEADER 0 |
erroneous header field
Referenced by uip_process().
#define ICMP6_PARAMPROB_NEXTHEADER 1 |
unrecognized next header
Referenced by uip_process().
#define ICMP6_PARAMPROB_OPTION 2 |
unrecognized option
Referenced by ext_hdr_options_process(), and uip_icmp6_error_output().
#define ICMP6_PRIV_EXP_100 100 |
Private Experimentation.
#define ICMP6_PRIV_EXP_101 101 |
Private Experimentation.
#define ICMP6_PRIV_EXP_200 200 |
Private Experimentation.
#define ICMP6_PRIV_EXP_201 201 |
Private Experimentation.
#define ICMP6_RA 134 |
Router Advertisement.
#define ICMP6_REDIRECT 137 |
Redirect.
#define ICMP6_ROLL_TM ICMP6_PRIV_EXP_200 |
ROLL Trickle Multicast.
#define ICMP6_RPL 155 |
RPL.
Referenced by dao_ack_output(), dao_input(), dao_output_target(), dio_output(), and dis_output().
#define ICMP6_RS 133 |
Router Solicitation.
Referenced by uip_nd6_rs_output().
#define ICMP6_TIME_EXCEED_REASSEMBLY 1 |
ttl==0 in reass
#define ICMP6_TIME_EXCEED_TRANSIT 0 |
ttl==0 in transit
Referenced by uip_process().
#define ICMP6_TIME_EXCEEDED 3 |
time exceeded
Referenced by uip_process().
Referenced by uip_ds6_link_neighbor_callback().
#define MAX_LINK_METRIC 10 |
Referenced by neighbor_link_callback().
#define MAX_PATH_COST 100 |
Referenced by calculate_path_metric().
#define MIN_DIFFERENCE (RPL_MIN_HOPRANKINC + RPL_MIN_HOPRANKINC / 2) |
Referenced by best_parent().
#define NBR_DELAY 3 |
Referenced by tcpip_ipv6_output(), uip_ds6_link_neighbor_callback(), and uip_ds6_neighbor_periodic().
#define NBR_INCOMPLETE 0 |
Possible states for the nbr cache entries.
Referenced by na_input(), ns_input(), ra_input(), tcpip_ipv6_output(), uip_ds6_defrt_choose(), and uip_ds6_neighbor_periodic().
#define NBR_PROBE 4 |
Referenced by uip_ds6_link_neighbor_callback(), and uip_ds6_neighbor_periodic().
#define NBR_REACHABLE 1 |
Referenced by dao_input(), dio_input(), na_input(), uip_ds6_link_neighbor_callback(), and uip_ds6_neighbor_periodic().
#define NBR_STALE 2 |
Referenced by na_input(), ns_input(), ra_input(), tcpip_ipv6_output(), uip_ds6_link_neighbor_callback(), and uip_ds6_neighbor_periodic().
#define NEIGHBOR_STATE_CHANGED | ( | n | ) |
Referenced by uip_ds6_nbr_add(), and uip_ds6_nbr_rm().
#define NOSPACE 2 |
Referenced by uip_ds6_list_loop().
#define PARENT_SWITCH_THRESHOLD_DIV 2 |
Referenced by best_parent().
#define PRINT6ADDR | ( | addr | ) |
Referenced by echo_request_input(), and uip_icmp6_error_output().
#define PRINTF | ( | ... | ) |
Referenced by echo_request_input(), and uip_icmp6_error_output().
#define RPL_DIO_GROUNDED 0x80 |
Referenced by dio_input(), and dio_output().
#define RPL_DIO_MOP_MASK 0x3c |
Referenced by dio_input().
#define RPL_DIO_MOP_SHIFT 3 |
Referenced by dio_input(), and dio_output().
#define RPL_DIO_PREFERENCE_MASK 0x07 |
Referenced by dio_input(), and dio_output().
#define RPL_GROUNDED 0 |
Referenced by rpl_set_root().
#define TCP_ACK 0x10 |
Referenced by uip_process().
#define TCP_CTL 0x3f |
Referenced by uip_process().
#define TCP_FIN 0x01 |
Referenced by uip_process().
#define TCP_OPT_END 0 /* End of TCP options list */ |
Referenced by uip_process().
#define TCP_OPT_MSS 2 /* Maximum segment size TCP option */ |
Referenced by uip_process().
#define TCP_OPT_MSS_LEN 4 /* Length of TCP MSS option. */ |
Referenced by uip_process().
#define TCP_OPT_NOOP 1 /* "No-operation" TCP option */ |
Referenced by uip_process().
#define TCP_PSH 0x08 |
Referenced by uip_process().
#define TCP_RST 0x04 |
Referenced by uip_process().
#define TCP_SYN 0x02 |
Referenced by check_for_tcp_syn(), and uip_process().
#define TCP_URG 0x20 |
Referenced by uip_process().
#define UIP_DESTO_BUF ((struct uip_desto_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
#define UIP_DS6_AADDR_NB UIP_DS6_AADDR_NBS + UIP_DS6_AADDR_NBU |
Referenced by uip_ds6_aaddr_add(), uip_ds6_aaddr_lookup(), and uip_ds6_init().
#define UIP_DS6_AADDR_NBS 0 |
#define UIP_DS6_AADDR_NBU 0 |
#define UIP_DS6_ADDR_NB UIP_DS6_ADDR_NBS + UIP_DS6_ADDR_NBU |
Referenced by get_global_addr(), ip64_init(), make_addresses(), set_global_address(), simple_rpl_global_address(), simple_rpl_init_dag_immediately(), uip_ds6_addr_add(), uip_ds6_addr_lookup(), uip_ds6_get_global(), uip_ds6_get_link_local(), uip_ds6_init(), uip_ds6_periodic(), and uip_ds6_select_src().
#define UIP_DS6_ADDR_NBS 1 |
#define UIP_DS6_ADDR_NBU 2 |
#define UIP_DS6_DEFRT_NB UIP_DS6_DEFRT_NBS + UIP_DS6_DEFRT_NBU |
Referenced by uip_ds6_init().
#define UIP_DS6_DEFRT_NBS 0 |
Configuration.
For all tables (Neighbor cache, Prefix List, Routing Table, Default Router List, Unicast address list, multicast address list, anycast address list), we define:
#define UIP_DS6_DEFRT_NBU 2 |
#define UIP_DS6_LL_NUD 0 |
#define UIP_DS6_MADDR_NB UIP_DS6_MADDR_NBS + UIP_DS6_MADDR_NBU |
Referenced by handle_dao_timer(), uip_ds6_init(), uip_ds6_maddr_add(), and uip_ds6_maddr_lookup().
#define UIP_DS6_MADDR_NBS 1 + UIP_DS6_ADDR_NB /* all nodes + one solicited per unicast */ |
#define UIP_DS6_MADDR_NBU 0 |
#define UIP_DS6_PERIOD (CLOCK_SECOND/10) /** Period for uip-ds6 periodic task*/ |
General DS6 definitions.
Referenced by uip_ds6_init().
#define UIP_DS6_PREFIX_NB UIP_DS6_PREFIX_NBS + UIP_DS6_PREFIX_NBU |
Referenced by uip_ds6_init(), uip_ds6_is_addr_onlink(), uip_ds6_periodic(), uip_ds6_prefix_add(), and uip_ds6_prefix_lookup().
#define UIP_DS6_PREFIX_NBS 1 |
#define UIP_DS6_PREFIX_NBU 2 |
#define UIP_EXT_BUF ((struct uip_ext_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by rpl_remove_header(), and set_rpl_opt().
#define UIP_EXT_BUF ((struct uip_ext_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by uip_icmp6_error_output().
#define UIP_EXT_BUF ((struct uip_ext_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by ext_hdr_options_process(), and uip_process().
#define UIP_EXT_HDR_OPT_BUF ((struct uip_ext_hdr_opt *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset]) |
Referenced by rpl_insert_header(), rpl_invert_header(), rpl_update_header_empty(), and rpl_update_header_final().
#define UIP_EXT_HDR_OPT_BUF ((struct uip_ext_hdr_opt *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset]) |
Referenced by ext_hdr_options_process().
#define UIP_EXT_HDR_OPT_PADN_BUF ((struct uip_ext_hdr_opt_padn *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset]) |
#define UIP_EXT_HDR_OPT_PADN_BUF ((struct uip_ext_hdr_opt_padn *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset]) |
Referenced by ext_hdr_options_process().
#define UIP_EXT_HDR_OPT_RPL_BUF ((struct uip_ext_hdr_opt_rpl *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset]) |
Referenced by rpl_invert_header(), rpl_update_header_empty(), rpl_update_header_final(), rpl_verify_header(), and set_rpl_opt().
#define UIP_FIRST_EXT_BUF ((struct uip_ext_hdr *)&uip_buf[UIP_LLIPH_LEN]) |
Referenced by echo_reply_input(), echo_request_input(), and uip_icmp6_error_output().
#define UIP_FRAG_BUF ((struct uip_frag_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
#define UIP_HBHO_BUF ((struct uip_hbho_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by rpl_remove_header(), rpl_update_header_empty(), rpl_update_header_final(), and set_rpl_opt().
#define UIP_HBHO_BUF ((struct uip_hbho_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
#define UIP_HBHO_NEXT_BUF ((struct uip_ext_hdr *)&uip_buf[uip_l2_l3_hdr_len + RPL_HOP_BY_HOP_LEN]) |
Referenced by rpl_remove_header(), and set_rpl_opt().
#define UIP_ICMP6_ECHO_REQUEST_LEN 4 |
Echo Request constant part length.
#define UIP_ICMP6_ERROR_BUF ((struct uip_icmp6_error *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
Referenced by uip_icmp6_error_output().
#define UIP_ICMP6_ERROR_BUF ((struct uip_icmp6_error *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
#define UIP_ICMP6_ERROR_LEN 4 |
ICMPv6 Error message constant part length.
Referenced by uip_icmp6_error_output().
#define UIP_ICMP6_HANDLER | ( | name, | |
type, | |||
code, | |||
func | |||
) | static uip_icmp6_input_handler_t name = { NULL, type, code, func } |
#define UIP_ICMP6_HANDLER_CODE_ANY 0xFF /* Handle all codes for this type */ |
Referenced by input_handler_lookup().
#define UIP_ICMP6_INPUT_ERROR 1 |
Referenced by uip_icmp6_input(), and uip_process().
#define UIP_ICMP6_INPUT_SUCCESS 0 |
Referenced by uip_icmp6_input().
#define UIP_ICMP_BUF ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by echo_reply_input(), echo_request_input(), uip_icmp6_error_output(), and uip_icmp6_send().
#define UIP_ICMP_BUF ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
#define UIP_ICMP_BUF ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Pointer to ICMP header.
Referenced by na_input(), ns_input(), ra_input(), uip_nd6_ns_output(), and uip_nd6_rs_output().
#define UIP_ICMP_BUF ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by uip_process().
#define UIP_ICMP_PAYLOAD ((unsigned char *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
Referenced by dao_ack_input(), dao_ack_output(), dao_input(), dao_output_target(), dio_input(), dio_output(), and dis_output().
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN]) |
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN]) |
Referenced by echo_reply_input(), echo_request_input(), uip_icmp6_error_output(), and uip_icmp6_send().
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN]) |
Referenced by dao_ack_input(), dao_input(), dio_input(), and dis_input().
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN]) |
Pointer to IP header.
Referenced by na_input(), ns_input(), ra_input(), uip_nd6_ns_output(), and uip_nd6_rs_output().
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN]) |
Referenced by ext_hdr_options_process(), remove_ext_hdr(), uip_process(), and upper_layer_chksum().
#define UIP_LOG | ( | m | ) |
#define UIP_LOG | ( | m | ) |
Referenced by uip_process().
#define UIP_ND6_DEF_MAXDADNS UIP_ND6_SEND_NA |
Do not try DAD when using EUI-64 as allowed by draft-ietf-6lowpan-nd-15 section 8.2.
Referenced by uip_ds6_init().
#define UIP_ND6_DELAY_FIRST_PROBE_TIME 5 |
Referenced by tcpip_ipv6_output().
#define UIP_ND6_HOP_LIMIT 255 |
HOP LIMIT to be used when sending ND messages (255)
Referenced by na_input(), ns_input(), ra_input(), uip_nd6_ns_output(), and uip_nd6_rs_output().
#define UIP_ND6_INFINITE_LIFETIME 0xFFFFFFFF |
INFINITE lifetime.
Referenced by ra_input().
#define UIP_ND6_M_FLAG 0 |
#define UIP_ND6_MAX_INITIAL_RA_INTERVAL 16 /*seconds*/ |
#define UIP_ND6_MAX_INITIAL_RAS 3 /*transmissions*/ |
#define UIP_ND6_MAX_MULTICAST_SOLICIT 3 |
Referenced by uip_ds6_neighbor_periodic().
#define UIP_ND6_MAX_RA_DELAY_TIME_MS 500 /*milli seconds*/ |
#define UIP_ND6_MAX_RA_INTERVAL 600 |
#define UIP_ND6_MAX_RANDOM_FACTOR | ( | x | ) | ((x) + (x) / 2) |
Referenced by uip_ds6_compute_reachable_time().
#define UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1 |
Referenced by uip_ds6_addr_add(), and uip_ds6_init().
#define UIP_ND6_MAX_RTR_SOLICITATIONS 3 |
Referenced by uip_ds6_send_rs().
#define UIP_ND6_MAX_UNICAST_SOLICIT 3 |
Referenced by uip_ds6_neighbor_periodic().
#define UIP_ND6_MIN_DELAY_BETWEEN_RAS 3 /*seconds*/ |
#define UIP_ND6_MIN_RA_INTERVAL (UIP_ND6_MAX_RA_INTERVAL / 3) |
#define UIP_ND6_MIN_RANDOM_FACTOR | ( | x | ) | (x / 2) |
Referenced by uip_ds6_compute_reachable_time().
#define UIP_ND6_NA_BUF ((uip_nd6_na *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
Referenced by na_input(), and ns_input().
#define UIP_ND6_NA_FLAG_OVERRIDE 0x20 |
Referenced by na_input(), and ns_input().
#define UIP_ND6_NA_FLAG_ROUTER 0x80 |
Referenced by na_input(), and ns_input().
#define UIP_ND6_NA_FLAG_SOLICITED 0x40 |
Referenced by na_input(), and ns_input().
#define UIP_ND6_NA_LEN 20 |
Referenced by na_input(), and ns_input().
#define UIP_ND6_NS_BUF ((uip_nd6_ns *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
Referenced by ns_input(), and uip_nd6_ns_output().
#define UIP_ND6_NS_LEN 20 |
Referenced by ns_input(), and uip_nd6_ns_output().
#define UIP_ND6_O_FLAG 0 |
#define UIP_ND6_OPT_DATA_OFFSET 2 |
Referenced by create_llao(), na_input(), ns_input(), and ra_input().
#define UIP_ND6_OPT_HDR_BUF ((uip_nd6_opt_hdr *)&uip_buf[uip_l2_l3_icmp_hdr_len + nd6_opt_offset]) |
Pointer to ND option.
Referenced by na_input(), ns_input(), and ra_input().
#define UIP_ND6_OPT_HDR_LEN 2 |
#define UIP_ND6_OPT_LEN_OFFSET 1 |
Referenced by create_llao().
#define UIP_ND6_OPT_LLAO_LEN 8 |
length of a ND6 LLAO option for default L2 type (e.g.
Ethernet)
Referenced by create_llao(), ns_input(), uip_nd6_ns_output(), and uip_nd6_rs_output().
#define UIP_ND6_OPT_MTU 5 |
Referenced by ra_input().
#define UIP_ND6_OPT_MTU_BUF ((uip_nd6_opt_mtu *)&uip_buf[uip_l2_l3_icmp_hdr_len + nd6_opt_offset]) |
#define UIP_ND6_OPT_MTU_LEN 8 |
#define UIP_ND6_OPT_PREFIX_BUF ((uip_nd6_opt_prefix_info *)&uip_buf[uip_l2_l3_icmp_hdr_len + nd6_opt_offset]) |
#define UIP_ND6_OPT_PREFIX_INFO 3 |
Referenced by ra_input().
#define UIP_ND6_OPT_PREFIX_INFO_LEN 32 |
#define UIP_ND6_OPT_REDIRECTED_HDR 4 |
#define UIP_ND6_OPT_SLLAO 1 |
Referenced by ns_input(), ra_input(), uip_nd6_ns_output(), and uip_nd6_rs_output().
#define UIP_ND6_OPT_TLLAO 2 |
Referenced by na_input(), and ns_input().
#define UIP_ND6_OPT_TYPE_OFFSET 0 |
Referenced by create_llao().
#define UIP_ND6_RA_BUF ((uip_nd6_ra *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
Referenced by ra_input().
#define UIP_ND6_RA_FLAG_AUTONOMOUS 0x40 |
Referenced by ra_input(), rpl_free_dag(), rpl_join_instance(), rpl_process_dio(), rpl_select_dag(), and rpl_set_prefix().
#define UIP_ND6_RA_FLAG_ONLINK 0x80 |
Referenced by ra_input().
#define UIP_ND6_RA_LEN 12 |
Referenced by ra_input().
#define UIP_ND6_REACHABLE_TIME 30000 |
Referenced by dao_input(), dio_input(), uip_ds6_init(), and uip_ds6_link_neighbor_callback().
#define UIP_ND6_RETRANS_TIMER 1000 |
Referenced by uip_ds6_init().
#define UIP_ND6_ROUTER_LIFETIME 3 * UIP_ND6_MAX_RA_INTERVAL |
#define UIP_ND6_RS_BUF ((uip_nd6_rs *)&uip_buf[uip_l2_l3_icmp_hdr_len]) |
Pointers to messages just after icmp header
#define UIP_ND6_RS_LEN 4 |
Referenced by uip_nd6_rs_output().
#define UIP_ND6_RTR_SOLICITATION_INTERVAL 4 |
Referenced by uip_ds6_send_rs().
#define UIP_ND6_SEND_NA 1 /* enable/disable NA sending */ |
#define UIP_ND6_SEND_RA 1 /* enable/disable RA sending */ |
#define UIP_ROUTING_BUF ((struct uip_routing_hdr *)&uip_buf[uip_l2_l3_hdr_len]) |
Referenced by uip_process().
#define UIP_TCP_BUF ((struct uip_tcp_hdr *)&uip_buf[UIP_LLH_LEN + UIP_IPH_LEN]) |
Referenced by remove_ext_hdr(), and uip_process().
#define UIP_UDP_BUF ((struct uip_udp_hdr *)&uip_buf[UIP_LLH_LEN + UIP_IPH_LEN]) |
Referenced by uip_process().
typedef uint16_t rpl_path_metric_t |
typedef struct uip_ds6_aaddr uip_ds6_aaddr_t |
Anycast address.
typedef struct uip_ds6_addr uip_ds6_addr_t |
Unicast address structure.
typedef struct uip_ds6_element uip_ds6_element_t |
Generic type for a DS6, to use a common loop though all DS.
typedef struct uip_ds6_maddr uip_ds6_maddr_t |
A multicast address.
typedef struct uip_ds6_nbr uip_ds6_nbr_t |
An entry in the nbr cache.
typedef struct uip_ds6_netif uip_ds6_netif_t |
Interface structure (contains all the interface variables)
typedef struct uip_ds6_prefix uip_ds6_prefix_t |
A prefix list entry.
typedef void(* uip_icmp6_echo_reply_callback_t)(uip_ipaddr_t *source, uint8_t ttl, uint8_t *data, uint16_t datalen) |
typedef struct uip_icmp6_error uip_icmp6_error |
ICMPv6 Error message constant part.
typedef struct uip_icmp6_input_handler uip_icmp6_input_handler_t |
typedef struct uip_nd6_na uip_nd6_na |
A neighbor advertisement constant part.
Possible option is: TLLAO
typedef struct uip_nd6_ns uip_nd6_ns |
A neighbor solicitation constant part.
Possible option is: SLLAO
typedef struct uip_nd6_opt_hdr uip_nd6_opt_hdr |
ND option header.
typedef struct uip_nd6_opt_mtu uip_nd6_opt_mtu |
ND option MTU.
typedef struct uip_nd6_opt_prefix_info uip_nd6_opt_prefix_info |
ND option prefix information.
typedef struct uip_nd6_opt_redirected_hdr uip_nd6_opt_redirected_hdr |
typedef struct uip_nd6_ra uip_nd6_ra |
A router advertisement constant part.
Possible options are: SLLAO, MTU, Prefix Information
typedef struct uip_nd6_redirect uip_nd6_redirect |
A redirect message constant part.
Possible options are: TLLAO, redirected header
typedef struct uip_nd6_rs uip_nd6_rs |
A router solicitation constant part.
Possible option is: SLLAO
|
static |
References DAG_RANK, INFINITE_RANK, rpl_dag::instance, rpl_instance::max_rankinc, and rpl_dag::min_rank.
Referenced by rpl_process_parent_event(), and rpl_select_dag().
References rpl_dag::grounded, rpl_dag::preference, and rpl_dag::rank.
Referenced by rpl_select_dag().
|
static |
|
static |
References rpl_of::best_parent, INFINITE_RANK, rpl_dag::instance, nbr_table_head(), nbr_table_next(), NULL, rpl_instance::of, etimer::p, and rpl_parent::rank.
Referenced by rpl_select_parent().
|
static |
References rpl_parent::link_metric, MAX_PATH_COST, NULL, rpl_parent::rank, RPL_DAG_MC, RPL_DAG_MC_ETX, and RPL_DAG_MC_ETX_DIVISOR.
Referenced by best_parent().
|
static |
|
static |
References ADDR_AUTOCONF, rpl_prefix::flags, ipaddr, rpl_prefix::length, NULL, rpl_prefix::prefix, PRINT6ADDR, PRINTF, set_ip_from_prefix(), uip_ds6_addr_add(), uip_ds6_addr_lookup(), uip_ds6_addr_rm(), and uip_ipaddr_prefixcmp.
Referenced by rpl_free_dag(), rpl_join_instance(), rpl_select_dag(), and rpl_set_prefix().
|
static |
References data.
Referenced by uip_chksum(), uip_ipchksum(), and upper_layer_chksum().
|
static |
References buffer, PRINT6ADDR, PRINTF, status, UIP_ICMP_PAYLOAD, UIP_IP_BUF, uip_l3_icmp_hdr_len, and uip_len.
void dao_ack_output | ( | rpl_instance_t * | instance, |
uip_ipaddr_t * | dest, | ||
uint8_t | sequence | ||
) |
References buffer, ICMP6_RPL, rpl_instance::instance_id, PRINT6ADDR, PRINTF, RPL_CODE_DAO_ACK, uip_icmp6_send(), and UIP_ICMP_PAYLOAD.
Referenced by dao_input().
|
static |
References buffer, rpl_instance::current_dag, uip_mcast6_route::dag, rpl_dag::dag_id, DAG_RANK, dao_ack_output(), DAO_EXPIRATION_TIMEOUT, rpl_instance::default_lifetime, i, ICMP6_RPL, INFINITE_RANK, len, uip_ds6_route::length, uip_mcast6_route::lifetime, nbr, NBR_REACHABLE, NULL, packetbuf_addr(), PACKETBUF_ADDR_SENDER, rpl_dag::preferred_parent, prefix, PRINT6ADDR, PRINTF, PRINTLLADDR, rpl_parent::rank, rpl_dag::rank, uip_ds6_nbr::reachable, rpl_add_route(), RPL_CODE_DAO, RPL_DAO_D_FLAG, RPL_DAO_K_FLAG, rpl_find_parent(), rpl_get_instance(), rpl_get_parent_ipaddr(), RPL_LIFETIME, rpl_lock_parent(), RPL_OPTION_PAD1, RPL_OPTION_TARGET, RPL_OPTION_TRANSIT, RPL_ROUTE_FROM_MULTICAST_DAO, RPL_ROUTE_FROM_UNICAST_DAO, RPL_STAT, RPL_ZERO_LIFETIME, uip_ds6_route::state, stimer_set(), uip_ds6_nbr_add(), uip_ds6_nbr_lookup(), uip_ds6_route_lookup(), uip_ds6_route_nexthop(), uip_icmp6_send(), UIP_ICMP_PAYLOAD, UIP_IP_BUF, uip_ipaddr_cmp, uip_ipaddr_copy, uip_is_addr_mcast, uip_is_addr_mcast_global, uip_l3_icmp_hdr_len, uip_len, uip_mcast6_route_add(), UIP_ND6_REACHABLE_TIME, and rpl_parent::updated.
void dao_output | ( | rpl_parent_t * | parent, |
uint8_t | lifetime | ||
) |
References dao_output_target(), get_global_addr(), prefix, and PRINTF.
Referenced by handle_dao_timer(), rpl_nullify_parent(), and rpl_select_dag().
void dao_output_target | ( | rpl_parent_t * | parent, |
uip_ipaddr_t * | prefix, | ||
uint8_t | lifetime | ||
) |
References buffer, rpl_parent::dag, rpl_dag::dag_id, dao_sequence, ICMP6_RPL, rpl_dag::instance, rpl_instance::instance_id, NULL, PRINT6ADDR, PRINTF, RPL_CODE_DAO, RPL_DAO_D_FLAG, RPL_DAO_K_FLAG, rpl_get_mode(), rpl_get_parent_ipaddr(), RPL_LOLLIPOP_INCREMENT, RPL_MODE_FEATHER, RPL_OPTION_TARGET, RPL_OPTION_TRANSIT, uip_icmp6_send(), and UIP_ICMP_PAYLOAD.
Referenced by dao_output(), handle_dao_timer(), and rpl_purge_routes().
|
static |
References rpl_metric_container::aggr, buffer, rpl_dio::dag_id, rpl_dio::dag_intdoubl, rpl_dio::dag_intmin, rpl_dio::dag_max_rankinc, rpl_dio::dag_min_hoprankinc, rpl_dio::dag_redund, rpl_dio::default_lifetime, rpl_dio::destination_prefix, rpl_dio::dtsn, rpl_metric_container::metric_object::energy, rpl_metric_object_energy::energy_est, rpl_metric_container::metric_object::etx, rpl_metric_object_energy::flags, rpl_metric_container::flags, rpl_prefix::flags, get16(), get32(), rpl_dio::grounded, i, rpl_dio::instance_id, len, rpl_metric_container::length, rpl_prefix::length, rpl_prefix::lifetime, rpl_dio::lifetime_unit, rpl_dio::mc, rpl_dio::mop, nbr, NBR_REACHABLE, NULL, rpl_metric_container::obj, rpl_of::ocp, rpl_dio::ocp, packetbuf_addr(), PACKETBUF_ADDR_SENDER, rpl_metric_container::prec, rpl_dio::preference, rpl_prefix::prefix, rpl_dio::prefix_info, PRINT6ADDR, PRINTF, PRINTLLADDR, rpl_dio::rank, uip_ds6_nbr::reachable, RPL_DAG_MC_ENERGY, RPL_DAG_MC_ETX, RPL_DAG_MC_NONE, RPL_DEFAULT_LIFETIME, RPL_DEFAULT_LIFETIME_UNIT, RPL_DIO_GROUNDED, RPL_DIO_INTERVAL_DOUBLINGS, RPL_DIO_INTERVAL_MIN, RPL_DIO_MOP_MASK, RPL_DIO_MOP_SHIFT, RPL_DIO_PREFERENCE_MASK, RPL_DIO_REDUNDANCY, RPL_MAX_RANKINC, RPL_MIN_HOPRANKINC, RPL_OPTION_DAG_CONF, RPL_OPTION_DAG_METRIC_CONTAINER, RPL_OPTION_PAD1, RPL_OPTION_PREFIX_INFO, RPL_OPTION_ROUTE_INFO, rpl_process_dio(), RPL_STAT, stimer_set(), rpl_metric_container::type, uip_ds6_nbr_add(), uip_ds6_nbr_lookup(), UIP_ICMP_PAYLOAD, UIP_IP_BUF, uip_ipaddr_copy, uip_l3_icmp_hdr_len, uip_len, UIP_ND6_REACHABLE_TIME, and rpl_dio::version.
void dio_output | ( | rpl_instance_t * | instance, |
uip_ipaddr_t * | uc_addr | ||
) |
References addr, rpl_metric_container::aggr, buffer, rpl_instance::current_dag, rpl_dag::dag_id, rpl_instance::default_lifetime, rpl_instance::dio_intdoubl, rpl_instance::dio_intmin, rpl_instance::dio_redundancy, rpl_instance::dtsn_out, rpl_metric_container::metric_object::energy, rpl_metric_object_energy::energy_est, rpl_metric_container::metric_object::etx, rpl_metric_object_energy::flags, rpl_metric_container::flags, rpl_prefix::flags, rpl_dag::grounded, ICMP6_RPL, INFINITE_RANK, rpl_instance::instance_id, rpl_prefix::length, rpl_prefix::lifetime, rpl_instance::lifetime_unit, rpl_instance::max_rankinc, rpl_instance::mc, rpl_instance::min_hoprankinc, rpl_instance::mop, NULL, rpl_metric_container::obj, rpl_of::ocp, rpl_instance::of, rpl_metric_container::prec, rpl_dag::preference, rpl_prefix::prefix, rpl_dag::prefix_info, PRINT6ADDR, PRINTF, rpl_dag::rank, RPL_CODE_DIO, RPL_DAG_MC_ENERGY, RPL_DAG_MC_ETX, RPL_DAG_MC_NONE, RPL_DIO_GROUNDED, RPL_DIO_MOP_SHIFT, RPL_DIO_PREFERENCE_MASK, RPL_LOLLIPOP_INCREMENT, RPL_OPTION_DAG_CONF, RPL_OPTION_DAG_METRIC_CONTAINER, RPL_OPTION_PREFIX_INFO, set16(), set32(), rpl_metric_container::type, uip_create_linklocal_rplnodes_mcast, uip_icmp6_send(), UIP_ICMP_PAYLOAD, rpl_of::update_metric_container, and rpl_dag::version.
Referenced by dis_input(), and handle_dio_timer().
|
static |
References dio_output(), end, instance_table, PRINT6ADDR, PRINTF, RPL_MAX_INSTANCES, rpl_reset_dio_timer(), UIP_IP_BUF, uip_is_addr_mcast, uip_len, and rpl_instance::used.
void dis_output | ( | uip_ipaddr_t * | addr | ) |
References buffer, ICMP6_RPL, NULL, PRINT6ADDR, PRINTF, RPL_CODE_DIS, uip_create_linklocal_rplnodes_mcast, uip_icmp6_send(), and UIP_ICMP_PAYLOAD.
Referenced by handle_periodic_timer(), and simple_rpl_init_dag().
|
static |
|
static |
References uip_ds6_netif::cur_hop_limit, ICMP6_ECHO_REPLY, PRINT6ADDR, PRINTF, rpl_invert_header(), uip_ds6_if, uip_ds6_select_src(), uip_ext_len, UIP_FIRST_EXT_BUF, uip_icmp6chksum(), UIP_ICMP_BUF, UIP_ICMPH_LEN, UIP_IP_BUF, uip_ipaddr_copy, UIP_IPH_LEN, uip_is_addr_mcast, uip_len, UIP_PROTO_ICMP6, and UIP_STAT.
|
static |
Process the options in Destination and Hop By Hop extension headers.
References ICMP6_PARAM_PROB, ICMP6_PARAMPROB_OPTION, PRINTF, rpl_verify_header(), UIP_EXT_BUF, UIP_EXT_HDR_OPT_BUF, UIP_EXT_HDR_OPT_PAD1, UIP_EXT_HDR_OPT_PADN, UIP_EXT_HDR_OPT_PADN_BUF, UIP_EXT_HDR_OPT_RPL, uip_ext_len, uip_ext_opt_offset, uip_icmp6_error_output(), UIP_IP_BUF, UIP_IPH_LEN, and uip_is_addr_mcast.
Referenced by uip_process().
|
static |
References lladdr, nbr_table_get_from_lladdr(), uip_ds6_nbr_get_ll(), and uip_ds6_nbr_lookup().
Referenced by find_parent_dag(), rpl_find_parent(), and rpl_find_parent_any_dag().
|
static |
References rpl_parent::dag, find_parent_any_dag_any_instance(), NULL, and etimer::p.
Referenced by rpl_add_dag(), and rpl_process_dio().
|
static |
Referenced by dio_input().
|
static |
Referenced by dio_input().
|
static |
References rpl_dag::dag_id, rpl_instance::dag_table, i, NULL, rpl_get_instance(), RPL_MAX_DAG_PER_INSTANCE, uip_ipaddr_cmp, and rpl_dag::used.
Referenced by rpl_process_dio(), and rpl_set_root().
|
static |
References uip_ds6_netif::addr_list, ADDR_PREFERRED, ADDR_TENTATIVE, i, uip_ds6_addr::ipaddr, uip_ds6_addr::isused, uip_ds6_addr::state, state, UIP_DS6_ADDR_NB, uip_ds6_if, and uip_is_addr_link_local.
Referenced by dao_output().
uint8_t get_match_length | ( | uip_ipaddr_t * | src, |
uip_ipaddr_t * | dst | ||
) |
Get the number of matching bits of two addresses.
References j, len, and uip_ip6addr_t::u8.
Referenced by uip_ds6_select_src().
|
static |
References rpl_of::calculate_rank, rpl_instance::dtsn_out, INFINITE_RANK, rpl_dag::instance, rpl_dag::min_rank, NULL, rpl_instance::of, etimer::p, PRINTF, rpl_dag::rank, remove_parents(), rpl_of::reset, rpl_add_parent(), RPL_LOLLIPOP_INCREMENT, rpl_process_parent_event(), RPL_STAT, rpl_dag::version, and rpl_dio::version.
Referenced by rpl_process_dio().
|
static |
References ADDR_PREFERRED, CLOCK_SECOND, ctimer_set(), ctimer_stop(), rpl_instance::current_dag, rpl_instance::dao_lifetime_timer, dao_output(), dao_output_target(), rpl_instance::dao_timer, rpl_instance::default_lifetime, dio_send_ok, ctimer::etimer, etimer_expired(), uip_mcast6_route::group, i, uip_ds6_maddr::ipaddr, uip_ds6_maddr::isused, list_item_next(), uip_ds6_netif::maddr_list, rpl_instance::mop, NULL, rpl_dag::preferred_parent, PRINTF, RPL_MCAST_LIFETIME, RPL_MOP_STORING_MULTICAST, set_dao_lifetime_timer(), uip_ds6_get_link_local(), uip_ds6_if, uip_ds6_maddr_lookup(), UIP_DS6_MADDR_NB, uip_is_addr_mcast_global, and uip_mcast6_route_list_head().
Referenced by schedule_dao(), and set_dao_lifetime_timer().
|
static |
References ADDR_PREFERRED, CLOCK_SECOND, ctimer_set(), rpl_instance::dio_counter, rpl_instance::dio_intcurrent, rpl_instance::dio_intdoubl, rpl_instance::dio_intmin, rpl_instance::dio_next_delay, dio_output(), rpl_instance::dio_redundancy, rpl_instance::dio_send, dio_send_ok, rpl_instance::dio_timer, new_dio_interval(), NULL, PRINTF, and uip_ds6_get_link_local().
Referenced by new_dio_interval().
|
static |
References ctimer_reset(), dis_output(), next_dis, NULL, periodic_timer, RPL_DIS_INTERVAL, rpl_get_any_dag(), rpl_purge_routes(), and rpl_recalculate_ranks().
Referenced by rpl_reset_periodic_timer().
|
static |
References uip_icmp6_input_handler::icode, list_head(), list_item_next(), NULL, uip_icmp6_input_handler::type, and UIP_ICMP6_HANDLER_CODE_ANY.
Referenced by uip_icmp6_input().
LIST | ( | echo_reply_callback_list | ) |
LIST | ( | input_handler_list | ) |
|
static |
References RPL_LOLLIPOP_CIRCULAR_REGION, RPL_LOLLIPOP_MAX_VALUE, and RPL_LOLLIPOP_SEQUENCE_WINDOWS.
Referenced by rpl_process_dio(), and should_send_dao().
|
static |
References rpl_remove_parent().
Referenced by rpl_dag_init().
NBR_TABLE | ( | rpl_parent_t | , |
rpl_parents | |||
) |
NBR_TABLE_DECLARE | ( | ds6_neighbors | ) |
NBR_TABLE_GLOBAL | ( | uip_ds6_nbr_t | , |
ds6_neighbors | |||
) |
|
static |
References ETX_ALPHA, ETX_SCALE, rpl_parent::link_metric, MAC_TX_NOACK, MAC_TX_OK, MAX_LINK_METRIC, PRINTF, and RPL_DAG_MC_ETX_DIVISOR.
|
static |
References ANNOTATE, CLOCK_SECOND, ctimer_set(), rpl_instance::current_dag, DAG_RANK, rpl_instance::dio_counter, rpl_instance::dio_intcurrent, rpl_instance::dio_next_delay, rpl_instance::dio_send, rpl_instance::dio_timer, handle_dio_timer(), rpl_instance::min_hoprankinc, PRINTF, random_rand(), RANDOM_RAND_MAX, rpl_dag::rank, ROOT_RANK, ticks, and rpl_dag::version.
Referenced by handle_dio_timer(), and rpl_reset_dio_timer().
|
static |
References rpl_parent::dag, nbr_table_head(), nbr_table_next(), NULL, etimer::p, PRINTF, rpl_parent::rank, and rpl_nullify_parent().
Referenced by rpl_local_repair().
void remove_ext_hdr | ( | void | ) |
References PRINTF, uip_ext_len, UIP_IP_BUF, UIP_IPH_LEN, uip_len, and UIP_TCP_BUF.
Referenced by tcpip_ipv6_output(), and uip_process().
|
static |
References rpl_parent::dag, nbr_table_head(), nbr_table_next(), NULL, etimer::p, PRINTF, rpl_parent::rank, and rpl_remove_parent().
Referenced by global_repair(), and rpl_free_dag().
|
static |
References PRINTF.
Referenced by uip_process().
void rpl_add_dag | ( | uip_ipaddr_t * | from, |
rpl_dio_t * | dio | ||
) |
References ANNOTATE, rpl_of::calculate_rank, rpl_dag::dag_id, rpl_dio::dag_id, rpl_dio::dag_intdoubl, rpl_dio::dag_intmin, rpl_dio::dag_max_rankinc, rpl_dio::dag_min_hoprankinc, rpl_dio::dag_redund, rpl_instance::default_lifetime, rpl_dio::default_lifetime, rpl_instance::dio_intdoubl, rpl_instance::dio_intmin, rpl_instance::dio_redundancy, rpl_parent::dtsn, rpl_dio::dtsn, find_parent_dag(), rpl_dag::grounded, rpl_dio::grounded, rpl_dag::instance, rpl_dio::instance_id, rpl_instance::lifetime_unit, rpl_dio::lifetime_unit, rpl_instance::max_rankinc, rpl_instance::min_hoprankinc, rpl_dag::min_rank, rpl_instance::mop, rpl_dio::mop, NULL, rpl_dio::ocp, rpl_instance::of, etimer::p, rpl_dag::preference, rpl_dio::preference, rpl_dag::prefix_info, rpl_dio::prefix_info, PRINT6ADDR, PRINTF, rpl_dag::rank, rpl_add_parent(), rpl_alloc_dag(), rpl_find_of(), rpl_find_parent(), rpl_move_parent(), rpl_process_parent_event(), rpl_remove_parent(), rpl_set_preferred_parent(), uip_ip6addr_t::u8, rpl_dag::used, rpl_dag::version, and rpl_dio::version.
Referenced by rpl_process_dio().
rpl_parent_t* rpl_add_parent | ( | rpl_dag_t * | dag, |
rpl_dio_t * | dio, | ||
uip_ipaddr_t * | addr | ||
) |
References rpl_parent::dag, rpl_parent::dtsn, rpl_dio::dtsn, rpl_parent::link_metric, lladdr, rpl_dio::mc, nbr_table_add_lladdr(), NULL, etimer::p, PRINT6ADDR, PRINTF, rpl_parent::rank, rpl_dio::rank, RPL_DAG_MC_ETX_DIVISOR, RPL_INIT_LINK_METRIC, and uip_ds6_nbr_lladdr_from_ipaddr().
Referenced by global_repair(), rpl_add_dag(), rpl_join_instance(), and rpl_process_dio().
uip_ds6_route_t* rpl_add_route | ( | rpl_dag_t * | dag, |
uip_ipaddr_t * | prefix, | ||
int | prefix_len, | ||
uip_ipaddr_t * | next_hop | ||
) |
References rpl_instance::default_lifetime, rpl_dag::instance, NULL, printf, PRINTF, RPL_LIFETIME, RPL_ROUTE_FROM_INTERNAL, uip_ds6_route::state, uip_debug_ipaddr_print(), and uip_ds6_route_add().
Referenced by dao_input().
rpl_dag_t* rpl_alloc_dag | ( | uint8_t | instance_id, |
uip_ipaddr_t * | dag_id | ||
) |
References rpl_instance::dag_table, end, INFINITE_RANK, rpl_dag::instance, rpl_dag::min_rank, NULL, rpl_dag::rank, rpl_alloc_instance(), rpl_free_instance(), rpl_get_instance(), RPL_MAX_DAG_PER_INSTANCE, RPL_STAT, and rpl_dag::used.
Referenced by rpl_add_dag(), rpl_join_instance(), and rpl_set_root().
rpl_instance_t* rpl_alloc_instance | ( | uint8_t | instance_id | ) |
References rpl_instance::def_route, end, rpl_instance::instance_id, NULL, RPL_MAX_INSTANCES, and rpl_instance::used.
Referenced by rpl_alloc_dag().
void rpl_cancel_dao | ( | rpl_instance_t * | instance | ) |
References ctimer_stop(), rpl_instance::dao_lifetime_timer, and rpl_instance::dao_timer.
Referenced by rpl_set_mode().
void rpl_dag_init | ( | void | ) |
References nbr_callback(), and nbr_table_register().
Referenced by rpl_init().
References i, NULL, and objective_functions.
Referenced by rpl_add_dag(), and rpl_join_instance().
rpl_parent_t* rpl_find_parent | ( | rpl_dag_t * | dag, |
uip_ipaddr_t * | addr | ||
) |
References rpl_parent::dag, find_parent_any_dag_any_instance(), NULL, and etimer::p.
Referenced by dao_input(), rpl_add_dag(), rpl_process_dio(), and rpl_update_header_final().
rpl_parent_t* rpl_find_parent_any_dag | ( | rpl_instance_t * | instance, |
uip_ipaddr_t * | addr | ||
) |
References rpl_parent::dag, find_parent_any_dag_any_instance(), rpl_dag::instance, NULL, and etimer::p.
Referenced by rpl_ipv6_neighbor_callback(), and rpl_link_neighbor_callback().
void rpl_free_dag | ( | rpl_dag_t * | dag | ) |
References check_prefix(), rpl_dag::dag_id, rpl_prefix::flags, rpl_dag::joined, NULL, rpl_dag::prefix_info, PRINT6ADDR, PRINTF, remove_parents(), rpl_remove_routes(), UIP_ND6_RA_FLAG_AUTONOMOUS, and rpl_dag::used.
Referenced by rpl_free_instance(), and rpl_set_root().
void rpl_free_instance | ( | rpl_instance_t * | instance | ) |
rpl_dag_t* rpl_get_any_dag | ( | void | ) |
References rpl_instance::current_dag, i, NULL, and RPL_MAX_INSTANCES.
Referenced by create_dag_callback(), create_rpl_dag(), handle_periodic_timer(), make_routes_roomfor(), simple_rpl_init_dag_immediately(), simple_rpl_parent(), and simple_rpl_root().
rpl_instance_t* rpl_get_instance | ( | uint8_t | instance_id | ) |
References i, NULL, and RPL_MAX_INSTANCES.
Referenced by dao_input(), get_dag(), rpl_alloc_dag(), rpl_invert_header(), rpl_process_dio(), rpl_repair_root(), rpl_update_header_empty(), rpl_verify_header(), and simple_rpl_local_repair().
enum rpl_mode rpl_get_mode | ( | void | ) |
Get the RPL mode.
The | RPL mode |
References mode.
Referenced by dao_output_target(), schedule_dao(), and set_dao_lifetime_timer().
uip_ipaddr_t* rpl_get_parent_ipaddr | ( | rpl_parent_t * | p | ) |
References lladdr, nbr_table_get_lladdr(), and uip_ds6_nbr_ipaddr_from_lladdr().
Referenced by best_parent(), dao_input(), dao_output_target(), rpl_move_parent(), rpl_nullify_parent(), rpl_process_parent_event(), rpl_remove_parent(), rpl_select_dag(), rpl_set_preferred_parent(), and simple_rpl_parent().
uint16_t rpl_get_parent_link_metric | ( | const uip_lladdr_t * | addr | ) |
References rpl_parent::link_metric, nbr_table_get_from_lladdr(), NULL, and etimer::p.
Referenced by make_neighbor(), and make_route().
rpl_rank_t rpl_get_parent_rank | ( | uip_lladdr_t * | addr | ) |
References nbr_table_get_from_lladdr(), NULL, etimer::p, and rpl_parent::rank.
void rpl_icmp6_register_handlers | ( | void | ) |
References uip_icmp6_register_input_handler().
Referenced by rpl_init().
void rpl_init | ( | void | ) |
References default_instance, NULL, PRINTF, rpl_dag_init(), rpl_icmp6_register_handlers(), RPL_OF, rpl_reset_periodic_timer(), uip_create_linklocal_rplnodes_mcast, and uip_ds6_maddr_add().
Referenced by PROCESS_THREAD().
void rpl_insert_header | ( | void | ) |
References default_instance, NULL, rpl_update_header_empty(), UIP_EXT_HDR_OPT_BUF, UIP_EXT_HDR_OPT_RPL, and uip_ext_opt_offset.
Referenced by uip_process().
uint8_t rpl_invert_header | ( | void | ) |
References rpl_instance::current_dag, PRINTF, rpl_dag::rank, rpl_get_instance(), RPL_HDR_OPT_DOWN, RPL_HOP_BY_HOP_LEN, UIP_EXT_HDR_OPT_BUF, UIP_EXT_HDR_OPT_RPL, UIP_EXT_HDR_OPT_RPL_BUF, uip_ext_len, uip_ext_opt_offset, UIP_IP_BUF, and UIP_PROTO_HBHO.
Referenced by echo_reply_input(), echo_request_input(), and uip_icmp6_error_output().
void rpl_ipv6_neighbor_callback | ( | uip_ds6_nbr_t * | nbr | ) |
void rpl_join_instance | ( | uip_ipaddr_t * | from, |
rpl_dio_t * | dio | ||
) |
References ANNOTATE, rpl_of::calculate_rank, check_prefix(), rpl_instance::current_dag, rpl_dag::dag_id, rpl_dio::dag_id, rpl_dio::dag_intdoubl, rpl_dio::dag_intmin, rpl_dio::dag_max_rankinc, rpl_dio::dag_min_hoprankinc, rpl_dio::dag_redund, rpl_instance::default_lifetime, rpl_dio::default_lifetime, rpl_instance::dio_intcurrent, rpl_instance::dio_intdoubl, rpl_instance::dio_intmin, rpl_instance::dio_redundancy, rpl_parent::dtsn, rpl_dio::dtsn, rpl_instance::dtsn_out, rpl_prefix::flags, rpl_dag::grounded, rpl_dio::grounded, rpl_dag::instance, rpl_dio::instance_id, rpl_dag::joined, rpl_instance::lifetime_unit, rpl_dio::lifetime_unit, rpl_instance::max_rankinc, rpl_instance::min_hoprankinc, rpl_dag::min_rank, rpl_instance::mop, rpl_dio::mop, NULL, rpl_dio::ocp, rpl_instance::of, etimer::p, rpl_dag::preference, rpl_dio::preference, rpl_dag::prefix_info, rpl_dio::prefix_info, PRINT6ADDR, PRINTF, rpl_dag::rank, rpl_add_parent(), rpl_alloc_dag(), rpl_find_of(), RPL_LOLLIPOP_INIT, RPL_MOP_NO_DOWNWARD_ROUTES, rpl_remove_parent(), rpl_reset_dio_timer(), rpl_schedule_dao(), rpl_set_default_route(), rpl_set_preferred_parent(), uip_ip6addr_t::u8, UIP_ND6_RA_FLAG_AUTONOMOUS, rpl_of::update_metric_container, rpl_instance::used, rpl_dag::version, and rpl_dio::version.
Referenced by rpl_process_dio().
void rpl_link_neighbor_callback | ( | const linkaddr_t * | addr, |
int | status, | ||
int | numtx | ||
) |
void rpl_local_repair | ( | rpl_instance_t * | instance | ) |
References rpl_instance::dag_table, i, INFINITE_RANK, NULL, nullify_parents(), PRINTF, rpl_dag::rank, RPL_MAX_DAG_PER_INSTANCE, rpl_reset_dio_timer(), RPL_STAT, and rpl_dag::used.
Referenced by rpl_process_parent_event(), and simple_rpl_local_repair().
void rpl_lock_parent | ( | rpl_parent_t * | p | ) |
References nbr_table_lock().
Referenced by dao_input().
void rpl_move_parent | ( | rpl_dag_t * | dag_src, |
rpl_dag_t * | dag_dst, | ||
rpl_parent_t * | parent | ||
) |
References rpl_parent::dag, rpl_instance::def_route, INFINITE_RANK, rpl_dag::instance, rpl_dag::joined, NULL, rpl_dag::preferred_parent, PRINT6ADDR, PRINTF, rpl_dag::rank, rpl_get_parent_ipaddr(), rpl_remove_routes_by_nexthop(), rpl_set_preferred_parent(), and uip_ds6_defrt_rm().
Referenced by rpl_add_dag(), and rpl_process_dio().
void rpl_nullify_parent | ( | rpl_parent_t * | parent | ) |
References rpl_parent::dag, dao_output(), rpl_instance::def_route, INFINITE_RANK, rpl_dag::instance, rpl_dag::joined, NULL, rpl_dag::preferred_parent, PRINT6ADDR, PRINTF, rpl_dag::rank, rpl_get_parent_ipaddr(), rpl_set_preferred_parent(), RPL_ZERO_LIFETIME, and uip_ds6_defrt_rm().
Referenced by nullify_parents(), rpl_process_parent_event(), and rpl_remove_parent().
void rpl_process_dio | ( | uip_ipaddr_t * | from, |
rpl_dio_t * | dio | ||
) |
References rpl_instance::current_dag, rpl_dag::dag_id, rpl_dio::dag_id, rpl_instance::default_lifetime, rpl_instance::dio_counter, rpl_parent::dtsn, rpl_dio::dtsn, rpl_instance::dtsn_out, rpl_metric_container::metric_object::etx, find_parent_dag(), rpl_prefix::flags, get_dag(), global_repair(), INFINITE_RANK, rpl_dio::instance_id, rpl_dag::joined, rpl_prefix::length, rpl_parent::link_metric, lollipop_greater_than(), rpl_instance::mc, rpl_dio::mc, rpl_dag::min_rank, rpl_dio::mop, NULL, rpl_metric_container::obj, etimer::p, rpl_dag::preferred_parent, rpl_prefix::prefix, rpl_dio::prefix_info, PRINT6ADDR, PRINTF, rpl_parent::rank, rpl_dag::rank, rpl_dio::rank, ROOT_RANK, rpl_add_dag(), rpl_add_parent(), rpl_find_parent(), rpl_get_instance(), rpl_join_instance(), RPL_LIFETIME, RPL_LOLLIPOP_INCREMENT, RPL_MOP_DEFAULT, RPL_MOP_STORING_NO_MULTICAST, rpl_move_parent(), rpl_process_parent_event(), rpl_reset_dio_timer(), rpl_schedule_dao(), rpl_set_prefix(), should_send_dao(), uip_ds6_defrt_add(), UIP_ND6_RA_FLAG_AUTONOMOUS, rpl_dag::version, and rpl_dio::version.
Referenced by dio_input().
int rpl_process_parent_event | ( | rpl_instance_t * | instance, |
rpl_parent_t * | p | ||
) |
References acceptable_rank(), rpl_instance::current_dag, rpl_parent::dag, DAG_RANK, INFINITE_RANK, NULL, rpl_dag::preferred_parent, PRINT6ADDR, PRINTF, rpl_parent::rank, rpl_dag::rank, rpl_get_parent_ipaddr(), rpl_local_repair(), rpl_nullify_parent(), and rpl_select_dag().
Referenced by global_repair(), rpl_add_dag(), rpl_process_dio(), and rpl_recalculate_ranks().
void rpl_purge_routes | ( | void | ) |
References rpl_instance::current_dag, dao_output_target(), default_instance, uip_ds6_route::ipaddr, uip_mcast6_route::lifetime, list_item_next(), NULL, rpl_dag::preferred_parent, prefix, PRINT6ADDR, PRINTF, rpl_dag::rank, ROOT_RANK, RPL_ZERO_LIFETIME, uip_ds6_route::state, uip_ds6_route_head(), uip_ds6_route_next(), uip_ds6_route_rm(), uip_ipaddr_copy, uip_mcast6_route_list_head(), and uip_mcast6_route_rm().
Referenced by handle_periodic_timer().
void rpl_recalculate_ranks | ( | void | ) |
References rpl_parent::dag, rpl_dag::instance, nbr_table_head(), nbr_table_next(), NULL, etimer::p, PRINTF, rpl_process_parent_event(), and rpl_parent::updated.
Referenced by handle_periodic_timer().
void rpl_remove_header | ( | void | ) |
References PRINTF, UIP_EXT_BUF, uip_ext_len, UIP_HBHO_BUF, UIP_HBHO_NEXT_BUF, UIP_IP_BUF, UIP_IPH_LEN, uip_len, and UIP_PROTO_HBHO.
void rpl_remove_parent | ( | rpl_parent_t * | parent | ) |
References nbr_table_remove(), PRINT6ADDR, PRINTF, rpl_get_parent_ipaddr(), and rpl_nullify_parent().
Referenced by nbr_callback(), remove_parents(), rpl_add_dag(), and rpl_join_instance().
void rpl_remove_routes | ( | rpl_dag_t * | dag | ) |
References uip_mcast6_route::dag, list_item_next(), NULL, uip_ds6_route::state, uip_ds6_route_head(), uip_ds6_route_next(), uip_ds6_route_rm(), uip_mcast6_route_list_head(), and uip_mcast6_route_rm().
Referenced by rpl_free_dag(), rpl_select_dag(), rpl_set_root(), and simple_rpl_init_dag_immediately().
void rpl_remove_routes_by_nexthop | ( | uip_ipaddr_t * | nexthop, |
rpl_dag_t * | dag | ||
) |
References ANNOTATE, NULL, uip_ds6_route::state, uip_ip6addr_t::u8, uip_ds6_route_head(), uip_ds6_route_next(), uip_ds6_route_nexthop(), uip_ds6_route_rm(), and uip_ipaddr_cmp.
Referenced by rpl_move_parent().
int rpl_repair_root | ( | uint8_t | instance_id | ) |
References rpl_instance::current_dag, rpl_instance::dtsn_out, NULL, PRINTF, rpl_dag::rank, ROOT_RANK, rpl_get_instance(), RPL_LOLLIPOP_INCREMENT, rpl_reset_dio_timer(), and rpl_dag::version.
Referenced by rpl_verify_header(), simple_rpl_global_repair(), and tcpip_ipv6_output().
void rpl_reset_dio_timer | ( | rpl_instance_t * | instance | ) |
void rpl_reset_periodic_timer | ( | void | ) |
References CLOCK_SECOND, ctimer_set(), handle_periodic_timer(), next_dis, NULL, periodic_timer, random_rand(), RANDOM_RAND_MAX, RPL_DIS_INTERVAL, and RPL_DIS_START_DELAY.
Referenced by rpl_init().
void rpl_schedule_dao | ( | rpl_instance_t * | instance | ) |
References RPL_DAO_LATENCY, and schedule_dao().
Referenced by rpl_join_instance(), rpl_process_dio(), and rpl_select_dag().
void rpl_schedule_dao_immediately | ( | rpl_instance_t * | instance | ) |
References schedule_dao().
Referenced by rpl_set_mode().
rpl_dag_t* rpl_select_dag | ( | rpl_instance_t * | instance, |
rpl_parent_t * | p | ||
) |
References acceptable_rank(), best_dag(), rpl_of::best_dag, rpl_of::calculate_rank, check_prefix(), rpl_instance::current_dag, rpl_parent::dag, rpl_dag::dag_id, rpl_instance::dag_table, dao_output(), rpl_instance::dtsn_out, end, rpl_prefix::flags, INFINITE_RANK, rpl_dag::joined, rpl_dag::min_rank, rpl_instance::mop, NULL, rpl_instance::of, rpl_dag::preferred_parent, rpl_dag::prefix_info, PRINT6ADDR, PRINTF, rpl_parent::rank, rpl_dag::rank, ROOT_RANK, rpl_get_parent_ipaddr(), RPL_LOLLIPOP_INCREMENT, RPL_MAX_DAG_PER_INSTANCE, RPL_MOP_NO_DOWNWARD_ROUTES, rpl_remove_routes(), rpl_reset_dio_timer(), rpl_schedule_dao(), rpl_select_parent(), rpl_set_default_route(), rpl_set_preferred_parent(), RPL_STAT, RPL_ZERO_LIFETIME, UIP_ND6_RA_FLAG_AUTONOMOUS, rpl_of::update_metric_container, and rpl_dag::used.
Referenced by rpl_process_parent_event().
rpl_parent_t* rpl_select_parent | ( | rpl_dag_t * | dag | ) |
References best_parent(), NULL, and rpl_set_preferred_parent().
Referenced by rpl_select_dag().
void rpl_set_default_instance | ( | rpl_instance_t * | instance | ) |
int rpl_set_default_route | ( | rpl_instance_t * | instance, |
uip_ipaddr_t * | from | ||
) |
References rpl_instance::def_route, rpl_instance::default_lifetime, uip_ds6_defrt::ipaddr, NULL, PRINT6ADDR, PRINTF, RPL_LIFETIME, uip_ds6_defrt_add(), and uip_ds6_defrt_rm().
Referenced by rpl_free_instance(), rpl_join_instance(), and rpl_select_dag().
Set the RPL mode.
mode | The new RPL mode |
The | previous RPL mode |
References default_instance, mode, NULL, PRINTF, rpl_cancel_dao(), RPL_MODE_FEATHER, RPL_MODE_MESH, and rpl_schedule_dao_immediately().
|
static |
References nbr_table_lock(), nbr_table_unlock(), NULL, etimer::p, rpl_dag::preferred_parent, PRINT6ADDR, PRINTF, and rpl_get_parent_ipaddr().
Referenced by rpl_add_dag(), rpl_join_instance(), rpl_move_parent(), rpl_nullify_parent(), rpl_select_dag(), rpl_select_parent(), and rpl_set_root().
int rpl_set_prefix | ( | rpl_dag_t * | dag, |
uip_ipaddr_t * | prefix, | ||
unsigned | len | ||
) |
References check_prefix(), rpl_prefix::flags, len, rpl_prefix::length, NULL, rpl_prefix::prefix, rpl_dag::prefix_info, PRINTF, and UIP_ND6_RA_FLAG_AUTONOMOUS.
Referenced by create_rpl_dag(), rpl_process_dio(), and simple_rpl_init_dag_immediately().
rpl_dag_t* rpl_set_root | ( | uint8_t | instance_id, |
uip_ipaddr_t * | dag_id | ||
) |
References ANNOTATE, rpl_instance::current_dag, rpl_dag::dag_id, rpl_instance::default_lifetime, rpl_instance::dio_intcurrent, rpl_instance::dio_intdoubl, rpl_instance::dio_intmin, rpl_instance::dio_redundancy, rpl_instance::dtsn_out, get_dag(), rpl_dag::grounded, rpl_dag::instance, rpl_dag::joined, rpl_instance::lifetime_unit, rpl_instance::max_rankinc, rpl_instance::min_hoprankinc, rpl_instance::mop, NULL, rpl_instance::of, PRINT6ADDR, PRINTF, rpl_dag::rank, ROOT_RANK, rpl_alloc_dag(), RPL_DEFAULT_LIFETIME, RPL_DEFAULT_LIFETIME_UNIT, RPL_DIO_INTERVAL_DOUBLINGS, RPL_DIO_INTERVAL_MIN, RPL_DIO_REDUNDANCY, rpl_free_dag(), RPL_GROUNDED, RPL_LOLLIPOP_INCREMENT, RPL_LOLLIPOP_INIT, RPL_MAX_RANKINC, RPL_MIN_HOPRANKINC, RPL_MOP_DEFAULT, RPL_OF, rpl_remove_routes(), rpl_reset_dio_timer(), rpl_set_preferred_parent(), uip_ip6addr_t::u8, rpl_of::update_metric_container, and rpl_dag::version.
Referenced by create_rpl_dag(), and simple_rpl_init_dag_immediately().
void rpl_update_header_empty | ( | void | ) |
References rpl_instance::current_dag, rpl_dag::joined, NULL, PRINTF, rpl_dag::rank, rpl_get_instance(), RPL_HDR_OPT_DOWN, RPL_HDR_OPT_FWD_ERR, RPL_HOP_BY_HOP_LEN, set_rpl_opt(), UIP_BUFSIZE, uip_ds6_route_lookup(), UIP_EXT_HDR_OPT_BUF, UIP_EXT_HDR_OPT_RPL, UIP_EXT_HDR_OPT_RPL_BUF, uip_ext_len, uip_ext_opt_offset, UIP_HBHO_BUF, UIP_IP_BUF, uip_len, UIP_PROTO_HBHO, and rpl_instance::used.
Referenced by rpl_insert_header(), and uip_process().
int rpl_update_header_final | ( | uip_ipaddr_t * | addr | ) |
References rpl_instance::current_dag, rpl_parent::dag, default_instance, rpl_instance::instance_id, rpl_dag::joined, NULL, rpl_dag::preferred_parent, PRINTF, rpl_dag::rank, rpl_find_parent(), RPL_HDR_OPT_DOWN, RPL_HOP_BY_HOP_LEN, UIP_EXT_HDR_OPT_BUF, UIP_EXT_HDR_OPT_RPL, UIP_EXT_HDR_OPT_RPL_BUF, uip_ext_len, uip_ext_opt_offset, UIP_HBHO_BUF, UIP_IP_BUF, UIP_PROTO_HBHO, and rpl_instance::used.
Referenced by tcpip_ipv6_output().
int rpl_verify_header | ( | int | uip_ext_opt_offset | ) |
References rpl_instance::current_dag, rpl_instance::instance_id, rpl_dag::joined, NULL, PRINTF, rpl_dag::rank, rpl_get_instance(), RPL_HDR_OPT_DOWN, RPL_HDR_OPT_FWD_ERR, RPL_HDR_OPT_LEN, RPL_HDR_OPT_RANK_ERR, rpl_repair_root(), rpl_reset_dio_timer(), uip_ds6_route_lookup(), uip_ds6_route_rm(), UIP_EXT_HDR_OPT_RPL_BUF, and UIP_IP_BUF.
Referenced by ext_hdr_options_process().
|
static |
References ctimer_set(), rpl_instance::dao_timer, ctimer::etimer, etimer_expiration_time(), etimer_expired(), handle_dao_timer(), PRINTF, random_rand(), rpl_get_mode(), RPL_MODE_FEATHER, and set_dao_lifetime_timer().
Referenced by rpl_schedule_dao(), and rpl_schedule_dao_immediately().
|
static |
Referenced by dio_output().
|
static |
Referenced by dio_output().
|
static |
References CLOCK_SECOND, ctimer_set(), rpl_instance::dao_lifetime_timer, rpl_instance::default_lifetime, handle_dao_timer(), rpl_instance::lifetime_unit, PRINTF, rpl_get_mode(), and RPL_MODE_FEATHER.
Referenced by handle_dao_timer(), and schedule_dao().
|
static |
References rpl_prefix::length, rpl_prefix::prefix, uip_ds6_set_addr_iid(), and uip_lladdr.
Referenced by check_prefix().
|
static |
References RPL_HDR_OPT_LEN, RPL_HOP_BY_HOP_LEN, UIP_EXT_BUF, UIP_EXT_HDR_OPT_RPL, UIP_EXT_HDR_OPT_RPL_BUF, UIP_HBHO_BUF, UIP_HBHO_NEXT_BUF, UIP_IP_BUF, UIP_IPH_LEN, uip_len, and UIP_PROTO_HBHO.
Referenced by rpl_update_header_empty().
|
static |
References rpl_instance::current_dag, rpl_parent::dtsn, rpl_dio::dtsn, lollipop_greater_than(), rpl_instance::mop, rpl_dag::preferred_parent, and RPL_MOP_NO_DOWNWARD_ROUTES.
Referenced by rpl_process_dio().
void uip_appserver_addr_get | ( | uip_ipaddr_t * | ipaddr | ) |
uint16_t uip_chksum | ( | uint16_t * | buf, |
uint16_t | len | ||
) |
Calculate the Internet checksum over a buffer.
The Internet checksum is the one's complement of the one's complement sum of all 16-bit words in the buffer.
See RFC1071.
buf | A pointer to the buffer over which the checksum is to be computed. |
len | The length of the buffer over which the checksum is to be computed. |
References chksum(), and uip_htons().
Referenced by time_exceeded().
uip_ds6_aaddr_t* uip_ds6_aaddr_add | ( | uip_ipaddr_t * | ipaddr | ) |
uip_ds6_aaddr_t* uip_ds6_aaddr_lookup | ( | uip_ipaddr_t * | ipaddr | ) |
References uip_ds6_netif::aaddr_list, FOUND, locaaddr, NULL, UIP_DS6_AADDR_NB, and uip_ds6_list_loop().
void uip_ds6_aaddr_rm | ( | uip_ds6_aaddr_t * | aaddr | ) |
References uip_ds6_aaddr::isused, and NULL.
uip_ds6_addr_t* uip_ds6_addr_add | ( | uip_ipaddr_t * | ipaddr, |
unsigned long | vlifetime, | ||
uint8_t | type | ||
) |
References uip_ds6_netif::addr_list, ADDR_PREFERRED, ADDR_TENTATIVE, CLOCK_SECOND, FREESPACE, uip_ds6_addr::ipaddr, uip_ds6_addr::isinfinite, uip_ds6_addr::isused, locaddr, NULL, random_rand(), uip_ds6_addr::state, stimer_set(), timer_set(), uip_ds6_addr::type, uip_create_solicited_node, UIP_DS6_ADDR_NB, uip_ds6_list_loop(), uip_ds6_maddr_add(), uip_ipaddr_copy, UIP_ND6_MAX_RTR_SOLICITATION_DELAY, and uip_ds6_addr::vlifetime.
Referenced by check_prefix(), main(), ra_input(), set_global_address(), and uip_ds6_init().
uip_ds6_addr_t* uip_ds6_addr_lookup | ( | uip_ipaddr_t * | ipaddr | ) |
References uip_ds6_netif::addr_list, FOUND, locaddr, NULL, UIP_DS6_ADDR_NB, and uip_ds6_list_loop().
Referenced by check_prefix(), create_rpl_dag(), na_input(), ns_input(), ra_input(), and simple_rpl_init_dag_immediately().
void uip_ds6_addr_rm | ( | uip_ds6_addr_t * | addr | ) |
References uip_ds6_addr::ipaddr, uip_ds6_addr::isused, NULL, uip_create_solicited_node, uip_ds6_maddr_lookup(), and uip_ds6_maddr_rm().
Referenced by check_prefix(), and uip_ds6_periodic().
uint32_t uip_ds6_compute_reachable_time | ( | void | ) |
Compute the reachable time based on base reachable time, see RFC 4861.
References uip_ds6_netif::base_reachable_time, random_rand(), UIP_ND6_MAX_RANDOM_FACTOR, and UIP_ND6_MIN_RANDOM_FACTOR.
Referenced by ra_input(), and uip_ds6_init().
uip_ds6_addr_t* uip_ds6_get_global | ( | int8_t | state | ) |
References uip_ds6_netif::addr_list, uip_ds6_addr::ipaddr, uip_ds6_addr::isused, locaddr, NULL, uip_ds6_addr::state, UIP_DS6_ADDR_NB, and uip_is_addr_link_local.
Referenced by uip_ds6_select_src().
uip_ds6_nbr_t * uip_ds6_get_least_lifetime_neighbor | ( | void | ) |
This searches inside the neighbor table for the neighbor that is about to expire the next.
References nbr, nbr_table_head(), nbr_table_next(), NULL, uip_ds6_nbr::reachable, and stimer_remaining().
uip_ds6_addr_t* uip_ds6_get_link_local | ( | int8_t | state | ) |
References uip_ds6_netif::addr_list, uip_ds6_addr::ipaddr, uip_ds6_addr::isused, locaddr, NULL, uip_ds6_addr::state, UIP_DS6_ADDR_NB, and uip_is_addr_link_local.
Referenced by handle_dao_timer(), handle_dio_timer(), main(), PROCESS_THREAD(), and uip_ds6_select_src().
void uip_ds6_init | ( | void | ) |
Initialize data structures.
References ADDR_AUTOCONF, uip_ds6_netif::base_reachable_time, CLOCK_SECOND, uip_ds6_netif::cur_hop_limit, etimer_set(), uip_ds6_netif::link_mtu, uip_ds6_netif::maxdadns, NBR_TABLE_MAX_NEIGHBORS, PRINTF, random_rand(), uip_ds6_netif::reachable_time, uip_ds6_netif::retrans_timer, stimer_set(), uip_create_linklocal_allnodes_mcast, uip_create_linklocal_allrouters_mcast, uip_create_linklocal_prefix, UIP_DEFAULT_PREFIX_LEN, UIP_DS6_AADDR_NB, uip_ds6_addr_add(), UIP_DS6_ADDR_NB, uip_ds6_addr_size, uip_ds6_compute_reachable_time(), UIP_DS6_DEFRT_NB, uip_ds6_maddr_add(), UIP_DS6_MADDR_NB, uip_ds6_neighbors_init(), uip_ds6_netif_addr_list_offset, UIP_DS6_PERIOD, uip_ds6_prefix_add(), UIP_DS6_PREFIX_NB, uip_ds6_route_init(), UIP_DS6_ROUTE_NB, uip_ds6_set_addr_iid(), uip_ds6_timer_periodic, uip_ds6_timer_rs, UIP_LINK_MTU, uip_lladdr, UIP_ND6_DEF_MAXDADNS, UIP_ND6_MAX_RTR_SOLICITATION_DELAY, UIP_ND6_REACHABLE_TIME, UIP_ND6_RETRANS_TIMER, and UIP_TTL.
Referenced by uip_init().
uint8_t uip_ds6_is_addr_onlink | ( | uip_ipaddr_t * | ipaddr | ) |
References uip_ds6_prefix::ipaddr, uip_ds6_prefix::isused, uip_ds6_prefix::length, UIP_DS6_PREFIX_NB, and uip_ipaddr_prefixcmp.
Referenced by tcpip_ipv6_output(), and uip_process().
void uip_ds6_link_neighbor_callback | ( | int | status, |
int | numtx | ||
) |
References LINK_NEIGHBOR_CALLBACK, linkaddr_cmp(), linkaddr_null, MAC_TX_OK, nbr, NBR_DELAY, NBR_PROBE, NBR_REACHABLE, NBR_STALE, NULL, packetbuf_addr(), PACKETBUF_ADDR_RECEIVER, PRINTF, PRINTLLADDR, uip_ds6_nbr::reachable, uip_ds6_nbr::state, stimer_set(), uip_ds6_nbr_ll_lookup(), and UIP_ND6_REACHABLE_TIME.
Referenced by packet_sent().
uint8_t uip_ds6_list_loop | ( | uip_ds6_element_t * | list, |
uint8_t | size, | ||
uint16_t | elementsize, | ||
uip_ipaddr_t * | ipaddr, | ||
uint8_t | ipaddrlen, | ||
uip_ds6_element_t ** | out_element | ||
) |
Generic loop routine on an abstract data structure, which generalizes all data structures used in DS6.
References FOUND, FREESPACE, uip_ds6_element::ipaddr, uip_ds6_element::isused, NOSPACE, NULL, and uip_ipaddr_prefixcmp.
Referenced by uip_ds6_aaddr_add(), uip_ds6_aaddr_lookup(), uip_ds6_addr_add(), uip_ds6_addr_lookup(), uip_ds6_maddr_add(), uip_ds6_maddr_lookup(), uip_ds6_prefix_add(), and uip_ds6_prefix_lookup().
uip_ds6_maddr_t* uip_ds6_maddr_add | ( | const uip_ipaddr_t * | ipaddr | ) |
References FREESPACE, uip_ds6_maddr::ipaddr, uip_ds6_maddr::isused, locmaddr, uip_ds6_netif::maddr_list, NULL, uip_ds6_list_loop(), UIP_DS6_MADDR_NB, and uip_ipaddr_copy.
Referenced by rpl_init(), uip_ds6_addr_add(), and uip_ds6_init().
uip_ds6_maddr_t* uip_ds6_maddr_lookup | ( | const uip_ipaddr_t * | ipaddr | ) |
References FOUND, locmaddr, uip_ds6_netif::maddr_list, NULL, uip_ds6_list_loop(), and UIP_DS6_MADDR_NB.
Referenced by handle_dao_timer(), and uip_ds6_addr_rm().
void uip_ds6_maddr_rm | ( | uip_ds6_maddr_t * | maddr | ) |
References uip_ds6_maddr::isused, and NULL.
Referenced by uip_ds6_addr_rm().
uip_ds6_nbr_t * uip_ds6_nbr_add | ( | const uip_ipaddr_t * | ipaddr, |
const uip_lladdr_t * | lladdr, | ||
uint8_t | isrouter, | ||
uint8_t | state | ||
) |
Neighbor Cache basic routines.
References uip_ds6_nbr::ipaddr, uip_ds6_nbr::isrouter, nbr, nbr_table_add_lladdr(), NEIGHBOR_STATE_CHANGED, uip_ds6_nbr::nscount, NULL, PRINT6ADDR, PRINTF, PRINTLLADDR, uip_ds6_nbr::reachable, uip_ds6_nbr::sendns, uip_ds6_nbr::state, state, stimer_set(), uip_ipaddr_copy, and uip_packetqueue_new().
Referenced by dao_input(), dio_input(), ns_input(), ra_input(), and tcpip_ipv6_output().
const uip_ipaddr_t * uip_ds6_nbr_get_ipaddr | ( | const uip_ds6_nbr_t * | nbr | ) |
References uip_ds6_nbr::ipaddr, and NULL.
const uip_lladdr_t * uip_ds6_nbr_get_ll | ( | const uip_ds6_nbr_t * | nbr | ) |
References nbr_table_get_lladdr().
Referenced by find_parent_any_dag_any_instance(), make_neighbor(), na_input(), ns_input(), ra_input(), tcpip_ipv6_output(), and uip_ds6_nbr_lladdr_from_ipaddr().
uip_ipaddr_t * uip_ds6_nbr_ipaddr_from_lladdr | ( | const uip_lladdr_t * | lladdr | ) |
References uip_ds6_nbr::ipaddr, nbr, NULL, and uip_ds6_nbr_ll_lookup().
Referenced by rpl_get_parent_ipaddr(), and uip_ds6_route_nexthop().
uip_ds6_nbr_t * uip_ds6_nbr_ll_lookup | ( | const uip_lladdr_t * | lladdr | ) |
References nbr_table_get_from_lladdr().
Referenced by uip_ds6_link_neighbor_callback(), and uip_ds6_nbr_ipaddr_from_lladdr().
const uip_lladdr_t * uip_ds6_nbr_lladdr_from_ipaddr | ( | const uip_ipaddr_t * | ipaddr | ) |
References nbr, NULL, uip_ds6_nbr_get_ll(), and uip_ds6_nbr_lookup().
Referenced by make_route(), rpl_add_parent(), uip_ds6_route_add(), and uip_ds6_route_rm_by_nexthop().
uip_ds6_nbr_t * uip_ds6_nbr_lookup | ( | const uip_ipaddr_t * | ipaddr | ) |
References uip_ds6_nbr::ipaddr, nbr, nbr_table_head(), nbr_table_next(), NULL, and uip_ipaddr_cmp.
Referenced by dao_input(), dio_input(), find_parent_any_dag_any_instance(), na_input(), ns_input(), ra_input(), tcpip_ipv6_output(), uip_ds6_defrt_choose(), and uip_ds6_nbr_lladdr_from_ipaddr().
int uip_ds6_nbr_num | ( | void | ) |
References nbr, nbr_table_head(), nbr_table_next(), and NULL.
void uip_ds6_nbr_rm | ( | uip_ds6_nbr_t * | nbr | ) |
References nbr_table_remove(), NEIGHBOR_STATE_CHANGED, NULL, and uip_packetqueue_free().
Referenced by uip_ds6_neighbor_periodic(), and uip_ds6_neighbors_init().
void uip_ds6_neighbor_periodic | ( | void | ) |
References uip_ds6_nbr::ipaddr, uip_ds6_defrt::isinfinite, nbr, NBR_DELAY, NBR_INCOMPLETE, NBR_PROBE, NBR_REACHABLE, NBR_STALE, nbr_table_head(), nbr_table_next(), uip_ds6_nbr::nscount, NULL, PRINT6ADDR, PRINTF, uip_ds6_nbr::reachable, uip_ds6_netif::retrans_timer, uip_ds6_nbr::sendns, uip_ds6_nbr::state, stimer_expired(), stimer_set(), uip_ds6_defrt_lookup(), uip_ds6_defrt_rm(), uip_ds6_if, uip_ds6_nbr_rm(), uip_len, UIP_ND6_MAX_MULTICAST_SOLICIT, UIP_ND6_MAX_UNICAST_SOLICIT, and uip_nd6_ns_output().
Referenced by uip_ds6_periodic().
void uip_ds6_neighbors_init | ( | void | ) |
References nbr_table_register(), and uip_ds6_nbr_rm().
Referenced by uip_ds6_init().
void uip_ds6_periodic | ( | void | ) |
Periodic processing of data structures.
References uip_ds6_netif::addr_list, ADDR_TENTATIVE, etimer_reset(), uip_ds6_prefix::isinfinite, uip_ds6_addr::isinfinite, uip_ds6_prefix::isused, uip_ds6_addr::isused, uip_ds6_netif::maxdadns, uip_ds6_addr::state, stimer_expired(), timer_expired(), UIP_DS6_ADDR_NB, uip_ds6_addr_rm(), uip_ds6_defrt_periodic(), uip_ds6_neighbor_periodic(), UIP_DS6_PREFIX_NB, uip_ds6_prefix_rm(), uip_ds6_timer_periodic, uip_len, uip_ds6_prefix::vlifetime, and uip_ds6_addr::vlifetime.
Referenced by eventhandler().
uip_ds6_prefix_t* uip_ds6_prefix_add | ( | uip_ipaddr_t * | ipaddr, |
uint8_t | ipaddrlen, | ||
unsigned long | interval | ||
) |
References FREESPACE, uip_ds6_prefix::ipaddr, uip_ds6_prefix::isinfinite, uip_ds6_prefix::isused, uip_ds6_prefix::length, NULL, PRINT6ADDR, PRINTF, stimer_set(), uip_ds6_list_loop(), UIP_DS6_PREFIX_NB, uip_ipaddr_copy, and uip_ds6_prefix::vlifetime.
Referenced by ra_input(), and uip_ds6_init().
uip_ds6_prefix_t* uip_ds6_prefix_lookup | ( | uip_ipaddr_t * | ipaddr, |
uint8_t | ipaddrlen | ||
) |
References FOUND, locprefix, NULL, uip_ds6_list_loop(), and UIP_DS6_PREFIX_NB.
Referenced by ra_input().
void uip_ds6_prefix_rm | ( | uip_ds6_prefix_t * | prefix | ) |
References uip_ds6_prefix::isused, and NULL.
Referenced by ra_input(), and uip_ds6_periodic().
void uip_ds6_select_src | ( | uip_ipaddr_t * | src, |
uip_ipaddr_t * | dst | ||
) |
Source address selection, see RFC 3484.
References uip_ds6_netif::addr_list, ADDR_PREFERRED, get_match_length(), uip_ds6_addr::ipaddr, uip_ds6_addr::isused, locaddr, n, NULL, uip_ds6_addr::state, uip_create_unspecified, UIP_DS6_ADDR_NB, uip_ds6_get_global(), uip_ds6_get_link_local(), uip_ipaddr_copy, uip_is_addr_link_local, uip_is_addr_mcast, and uip_is_addr_mcast_routable.
Referenced by echo_request_input(), ns_input(), uip_icmp6_error_output(), uip_icmp6_send(), uip_nd6_ns_output(), uip_nd6_rs_output(), and uip_process().
void uip_ds6_send_rs | ( | void | ) |
Send periodic RS to find router.
References CLOCK_SECOND, etimer_set(), etimer_stop(), NULL, PRINTF, rscount, uip_ds6_defrt_choose(), uip_ds6_timer_rs, UIP_ND6_MAX_RTR_SOLICITATIONS, uip_nd6_rs_output(), and UIP_ND6_RTR_SOLICITATION_INTERVAL.
Referenced by eventhandler().
void uip_ds6_set_addr_iid | ( | uip_ipaddr_t * | ipaddr, |
uip_lladdr_t * | lladdr | ||
) |
set the last 64 bits of an IP address based on the MAC address
References uip_ip6addr_t::u8, and UIP_LLADDR_LEN.
Referenced by main(), ra_input(), rpl_link_neighbor_callback(), set_global_address(), set_ip_from_prefix(), uip_ds6_init(), uncompress_addr(), and uncompress_hdr_hc1().
uint32_t uip_htonl | ( | uint32_t | val | ) |
References UIP_HTONL.
Referenced by handle_incoming_rerr(), handle_incoming_rrep(), handle_incoming_rreq(), last_known_seqno(), send_rreq(), uaodv_bad_dest(), and uip_icmp6_error_output().
uint16_t uip_htons | ( | uint16_t | val | ) |
Convert a 16-bit quantity from host byte order to network byte order.
This function is primarily used for converting variables from host byte order to network byte order. For converting constants to network byte order, use the UIP_HTONS() macro instead.
References UIP_HTONS.
Referenced by appcall(), ip64_4to6(), ip64_6to4(), ip64_addrmap_lookup(), ipv4_checksum(), ipv4_transport_checksum(), ipv6_transport_checksum(), make_tcp_stats(), PROCESS_THREAD(), receiver(), send_msg(), tcp_socket_connect(), tcp_socket_listen(), tcp_socket_unlisten(), uip_chksum(), uip_ipchksum(), upper_layer_chksum(), and websocket_http_client_get().
void uip_icmp6_echo_reply_callback_add | ( | struct uip_icmp6_echo_reply_notification * | n, |
uip_icmp6_echo_reply_callback_t | c | ||
) |
Add a callback function for ping replies.
n | A struct uip_icmp6_echo_reply_notification that must have been allocated by the caller |
c | A pointer to the callback function to be called This function adds a callback function to the list of callback functions that are called when an ICMP echo reply (ping reply) is received. This is used when implementing a ping protocol: attach a callback function to the ping reply, then send out a ping packet with uip_icmp6_send(). The caller must have statically allocated a struct uip_icmp6_echo_reply_notification to hold the internal state of the callback function. When a ping reply packet is received, all registered callback functions are called. The callback functions must not modify the contents of the uIP buffer. |
References c, uip_icmp6_echo_reply_notification::callback, list_add(), and NULL.
Referenced by PROCESS_THREAD().
void uip_icmp6_echo_reply_callback_rm | ( | struct uip_icmp6_echo_reply_notification * | n | ) |
Remove a callback function for ping replies.
n | A struct uip_icmp6_echo_reply_notification that must have been previously added with uip_icmp6_echo_reply_callback_add() This function removes a callback function from the list of callback functions that are called when an ICMP echo reply (ping reply) is received. |
References list_remove().
void uip_icmp6_error_output | ( | uint8_t | type, |
uint8_t | code, | ||
uint32_t | param | ||
) |
Send an icmpv6 error message.
type | type of the error message |
code | of the error message |
type | 32 bit parameter of the error message, semantic depends on error |
References uip_ds6_netif::cur_hop_limit, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_OPTION, PRINT6ADDR, PRINTF, rpl_invert_header(), uip_ds6_if, uip_ds6_select_src(), UIP_EXT_BUF, uip_ext_len, UIP_FIRST_EXT_BUF, uip_htonl(), UIP_ICMP6_ERROR_BUF, UIP_ICMP6_ERROR_LEN, uip_icmp6chksum(), UIP_ICMP_BUF, UIP_IP_BUF, uip_ipaddr_copy, UIP_IPH_LEN, UIP_IPICMPH_LEN, uip_is_addr_mcast, uip_is_addr_unspecified, uip_len, UIP_LINK_MTU, UIP_PROTO_ICMP6, and UIP_STAT.
Referenced by ext_hdr_options_process(), and uip_process().
UIP_ICMP6_HANDLER | ( | dis_handler | , |
ICMP6_RPL | , | ||
RPL_CODE_DIS | , | ||
dis_input | |||
) |
UIP_ICMP6_HANDLER | ( | dio_handler | , |
ICMP6_RPL | , | ||
RPL_CODE_DIO | , | ||
dio_input | |||
) |
UIP_ICMP6_HANDLER | ( | dao_handler | , |
ICMP6_RPL | , | ||
RPL_CODE_DAO | , | ||
dao_input | |||
) |
UIP_ICMP6_HANDLER | ( | dao_ack_handler | , |
ICMP6_RPL | , | ||
RPL_CODE_DAO_ACK | , | ||
dao_ack_input | |||
) |
UIP_ICMP6_HANDLER | ( | echo_request_handler | , |
ICMP6_ECHO_REQUEST | , | ||
UIP_ICMP6_HANDLER_CODE_ANY | , | ||
echo_request_input | |||
) |
UIP_ICMP6_HANDLER | ( | echo_reply_handler | , |
ICMP6_ECHO_REPLY | , | ||
UIP_ICMP6_HANDLER_CODE_ANY | , | ||
echo_reply_input | |||
) |
void uip_icmp6_init | ( | ) |
Initialise the uIP ICMPv6 core.
References uip_icmp6_register_input_handler().
Referenced by uip_init().
uint8_t uip_icmp6_input | ( | uint8_t | type, |
uint8_t | icode | ||
) |
Handle an incoming ICMPv6 message.
type | The ICMPv6 message type |
icode | The ICMPv6 message code |
Generic handler for unknown ICMPv6 types. It will lookup for a registered function capable of handing this message type. The function must have first been registered with uip_icmp6_register_input_handler. The function is in charge of setting uip_len to 0, otherwise the uIPv6 core will attempt to send whatever remains in the UIP_IP_BUF.
A return value of UIP_ICMP6_INPUT_ERROR means that a handler could not be invoked. This is most likely because the ICMPv6 type does not have a valid handler associated with it.
UIP_ICMP6_INPUT_SUCCESS signifies that a handler was found for this ICMPv6 type and that it was invoked. It does NOT provide any indication whatsoever regarding whether the handler itself succeeded.
References uip_icmp6_input_handler::handler, input_handler_lookup(), NULL, UIP_ICMP6_INPUT_ERROR, and UIP_ICMP6_INPUT_SUCCESS.
Referenced by uip_process().
void uip_icmp6_register_input_handler | ( | uip_icmp6_input_handler_t * | handler | ) |
Register a handler which can handle a specific ICMPv6 message type.
handler | A pointer to the handler |
References list_add().
Referenced by rpl_icmp6_register_handlers(), uip_icmp6_init(), and uip_nd6_init().
void uip_icmp6_send | ( | const uip_ipaddr_t * | dest, |
int | type, | ||
int | code, | ||
int | payload_len | ||
) |
Send an icmpv6 message.
dest | destination address of the message |
type | type of the message |
code | of the message |
payload_len | length of the payload |
References uip_ds6_netif::cur_hop_limit, tcpip_ipv6_output(), uip_ds6_if, uip_ds6_select_src(), uip_icmp6chksum(), UIP_ICMP_BUF, UIP_ICMPH_LEN, UIP_IP_BUF, UIP_IPH_LEN, uip_len, and UIP_PROTO_ICMP6.
Referenced by dao_ack_output(), dao_input(), dao_output_target(), dio_output(), dis_output(), and PROCESS_THREAD().
uint16_t uip_icmp6chksum | ( | void | ) |
Calculate the ICMP checksum of the packet in uip_buf.
References UIP_PROTO_ICMP6, and upper_layer_chksum().
Referenced by echo_request_input(), ns_input(), uip_icmp6_error_output(), uip_icmp6_send(), uip_nd6_ns_output(), uip_nd6_rs_output(), and uip_process().
void uip_init | ( | void | ) |
uIP initialization function.
This function should be called at boot up to initialize the uIP TCP/IP stack.
References c, uip_mcast6_driver::init, uip_udp_conn::lport, UIP_CLOSED, UIP_CONNS, uip_ds6_init(), uip_icmp6_init(), UIP_LISTENPORTS, UIP_MCAST6, uip_nd6_init(), UIP_UDP_CONNS, and uip_udp_conns.
Referenced by PROCESS_THREAD().
uint16_t uip_ipchksum | ( | void | ) |
Calculate the IP header checksum of the packet header in uip_buf.
The IP header checksum is the Internet checksum of the 20 bytes of the IP header.
References chksum(), PRINTF, uip_buf, uip_htons(), UIP_IPH_LEN, and UIP_LLH_LEN.
Referenced by PROCESS_THREAD(), time_exceeded(), and uip_split_output().
void uip_nd6_init | ( | void | ) |
Initialise the uIP ND core.
References uip_icmp6_register_input_handler().
Referenced by uip_init().
void uip_nd6_ns_input | ( | void | ) |
Process a neighbor solicitation.
The NS can be received in 3 cases (procedures):
We do:
If we need to send a NA in response (i.e. the NS was done for NUD, or address resolution, or DAD and there is a conflict), we do it in this function: set src, dst, tgt address in the three cases, then for all cases set the rest, including SLLAO
void uip_nd6_ns_output | ( | uip_ipaddr_t * | src, |
uip_ipaddr_t * | dest, | ||
uip_ipaddr_t * | tgt | ||
) |
Send a neighbor solicitation, send a Neighbor Advertisement.
src | pointer to the src of the NS if known |
dest | pointer to ip address to send the NS, for DAD or ADDR Resol, MUST be NULL, for NUD, must be correct unicast dest |
tgt | pointer to ip address to fill the target address field, must not be NULL |
References create_llao(), ICMP6_NS, NULL, PRINT6ADDR, PRINTF, uip_buf, uip_create_solicited_node, uip_create_unspecified, uip_ds6_is_my_addr, uip_ds6_select_src(), uip_ext_len, uip_icmp6chksum(), UIP_ICMP_BUF, UIP_ICMPH_LEN, UIP_IP_BUF, uip_ipaddr_copy, UIP_IPH_LEN, uip_is_addr_unspecified, uip_l2_l3_icmp_hdr_len, uip_len, UIP_ND6_HOP_LIMIT, UIP_ND6_NS_BUF, UIP_ND6_NS_LEN, UIP_ND6_OPT_LLAO_LEN, UIP_ND6_OPT_SLLAO, UIP_PROTO_ICMP6, and UIP_STAT.
Referenced by tcpip_ipv6_output(), and uip_ds6_neighbor_periodic().
void uip_nd6_rs_output | ( | void | ) |
Send a Router Solicitation.
src is chosen through the uip_netif_select_src function. If src is unspecified (i.e. we do not have a preferred address yet), then we do not put a SLLAO option (MUST NOT in RFC 4861). Otherwise we do.
RS message format, possible option is SLLAO, MUST NOT be included if source = unspecified SHOULD be included otherwise
References create_llao(), ICMP6_RS, PRINT6ADDR, PRINTF, uip_buf, uip_create_linklocal_allrouters_mcast, uip_ds6_select_src(), uip_icmp6chksum(), UIP_ICMP_BUF, UIP_ICMPH_LEN, UIP_IP_BUF, uip_is_addr_unspecified, uip_l2_l3_icmp_hdr_len, uip_l3_icmp_hdr_len, uip_len, UIP_ND6_HOP_LIMIT, UIP_ND6_OPT_LLAO_LEN, UIP_ND6_OPT_SLLAO, UIP_ND6_RS_LEN, UIP_PROTO_ICMP6, and UIP_STAT.
Referenced by uip_ds6_send_rs().
void uip_process | ( | uint8_t | flag | ) |
process the options within a hop by hop or destination option header
0,: | nothing to send, |
1,: | drop pkt |
2,: | ICMP error message to send |
References c, uip_ds6_netif::cur_hop_limit, ext_hdr_options_process(), ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, ICMP6_DST_UNREACH_NOTNEIGHBOR, ICMP6_PACKET_TOO_BIG, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, ICMP6_PARAMPROB_NEXTHEADER, ICMP6_TIME_EXCEED_TRANSIT, ICMP6_TIME_EXCEEDED, uip_mcast6_driver::in, uip_conn::initialmss, uip_conn::len, uip_conn::lport, uip_udp_conn::lport, uip_conn::mss, uip_conn::nrtx, NULL, PRINT6ADDR, PRINTF, uip_conn::rcv_nxt, remove_ext_hdr(), reset(), uip_conn::ripaddr, uip_udp_conn::ripaddr, rpl_insert_header(), rpl_update_header_empty(), uip_conn::rport, uip_udp_conn::rport, uip_conn::rto, uip_conn::sa, send(), uip_conn::snd_nxt, uip_conn::sv, TCP_ACK, TCP_CTL, TCP_FIN, TCP_OPT_END, TCP_OPT_MSS, TCP_OPT_MSS_LEN, TCP_OPT_NOOP, TCP_PSH, TCP_RST, TCP_SYN, TCP_URG, uip_conn::tcpstateflags, uip_conn::timer, uip_udp_conn::ttl, UIP_ABORT, UIP_ACKDATA, uip_add32(), UIP_APPCALL, uip_appdata, uip_buf, UIP_CLOSE, UIP_CLOSED, UIP_CLOSING, uip_conn, UIP_CONNECTED, UIP_CONNS, uip_ds6_if, uip_ds6_is_addr_onlink(), uip_ds6_is_my_addr, uip_ds6_is_my_maddr, uip_ds6_select_src(), UIP_ESTABLISHED, uip_ext_bitmap, UIP_EXT_BUF, UIP_EXT_HDR_BITMAP_DESTO1, UIP_EXT_HDR_BITMAP_DESTO2, UIP_EXT_HDR_BITMAP_HBHO, UIP_EXT_HDR_BITMAP_ROUTING, uip_ext_len, UIP_FIN_WAIT_1, UIP_FIN_WAIT_2, uip_flags, UIP_HTONS, UIP_ICMP6_APPCALL, uip_icmp6_error_output(), uip_icmp6_input(), UIP_ICMP6_INPUT_ERROR, uip_icmp6chksum(), UIP_ICMP_BUF, UIP_IP_BUF, uip_ipaddr_cmp, uip_ipaddr_copy, UIP_IPH_LEN, UIP_IPTCPH_LEN, UIP_IPUDPH_LEN, uip_is_addr_link_local, uip_is_addr_loopback, uip_is_addr_mcast, uip_is_addr_mcast_routable, uip_is_addr_unspecified, UIP_LAST_ACK, uip_len, UIP_LINK_MTU, UIP_LISTENPORTS, UIP_LLH_LEN, UIP_LOG, UIP_MAXRTX, UIP_MAXSYNRTX, UIP_MCAST6, UIP_MCAST6_ACCEPT, UIP_NEWDATA, uip_next_hdr, uip_outstanding, UIP_POLL, UIP_POLL_REQUEST, UIP_PROTO_DESTO, UIP_PROTO_FRAG, UIP_PROTO_HBHO, UIP_PROTO_ICMP6, UIP_PROTO_NONE, UIP_PROTO_ROUTING, UIP_PROTO_TCP, UIP_PROTO_UDP, UIP_RECEIVE_WINDOW, UIP_REXMIT, UIP_ROUTING_BUF, UIP_RTO, uip_sappdata, uip_slen, UIP_STAT, UIP_STOPPED, UIP_SYN_RCVD, UIP_SYN_SENT, UIP_TCP_BUF, UIP_TCP_MSS, uip_tcpchksum(), UIP_TCPH_LEN, UIP_TCPIP_HLEN, UIP_TIME_WAIT, UIP_TIME_WAIT_TIMEOUT, UIP_TIMEDOUT, UIP_TIMER, UIP_TS_MASK, UIP_UDP_APPCALL, UIP_UDP_BUF, uip_udp_conn, UIP_UDP_CONNS, uip_udp_conns, UIP_UDP_SEND_CONN, uip_udpchksum(), and UIP_UDPH_LEN.
Referenced by uip_udp_packet_send().
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. |
References MIN, NULL, uip_buf, UIP_BUFSIZE, UIP_LLH_LEN, uip_sappdata, uip_slen, and UIP_TCPIP_HLEN.
Referenced by data_is_sent_and_acked(), PT_THREAD(), send_discover(), send_request(), and senddata().
|
static |
References rpl_instance::mc, RPL_DAG_MC_NONE, and rpl_metric_container::type.
|
static |
References chksum(), PRINTF, uip_buf, uip_ext_len, uip_htons(), UIP_IP_BUF, UIP_IPH_LEN, and UIP_LLH_LEN.
Referenced by uip_icmp6chksum().
|
static |
Referenced by dao_output_target().
rpl_instance_t* default_instance |
Referenced by rpl_init(), rpl_insert_header(), rpl_purge_routes(), rpl_set_mode(), and rpl_update_header_final().
|
static |
Referenced by handle_dao_timer(), and handle_dio_timer().
rpl_instance_t instance_table[RPL_MAX_INSTANCES] |
Referenced by dis_input(), rpl_ipv6_neighbor_callback(), and rpl_link_neighbor_callback().
uip_ipaddr_t uip_ds6_nbr::ipaddr |
uint8_t uip_ds6_nbr::isrouter |
Referenced by na_input(), ra_input(), and uip_ds6_nbr_add().
|
static |
|
static |
Referenced by uip_ds6_aaddr_add(), and uip_ds6_aaddr_lookup().
|
static |
Referenced by uip_ds6_addr_add(), uip_ds6_addr_lookup(), uip_ds6_get_global(), uip_ds6_get_link_local(), and uip_ds6_select_src().
|
static |
Referenced by uip_ds6_maddr_add(), and uip_ds6_maddr_lookup().
|
static |
Referenced by uip_ds6_prefix_lookup().
|
static |
|
static |
Referenced by handle_periodic_timer(), and rpl_reset_periodic_timer().
uint8_t uip_ds6_nbr::nscount |
Referenced by na_input(), tcpip_ipv6_output(), uip_ds6_nbr_add(), and uip_ds6_neighbor_periodic().
Referenced by rpl_find_of().
|
static |
Referenced by handle_periodic_timer(), and rpl_reset_periodic_timer().
struct stimer uip_ds6_nbr::reachable |
rpl_of_t rpl_mrhof |
rpl_of_t RPL_OF |
rpl_of_t RPL_OF |
rpl_of_t rpl_of0 |
|
static |
RS timer, to schedule RS sending.
Referenced by uip_ds6_send_rs().
struct stimer uip_ds6_nbr::sendns |
Referenced by tcpip_ipv6_output(), uip_ds6_nbr_add(), and uip_ds6_neighbor_periodic().
uint8_t uip_ds6_nbr::state |
|
static |
temporary IP address
uip_buf_t uip_aligned_buf |
Packet buffer for incoming and outgoing packets.
void* uip_appdata |
Pointer to the application data in the packet buffer.
This pointer points to the application data when the application is called. If the application wishes to send data, the application may use this space to write the data into before calling uip_send().
Referenced by generate(), generate_file_stats(), handle_incoming_packet(), handle_incoming_rerr(), handle_incoming_rrep(), handle_incoming_rreq(), ip64_arp_create_arp_request(), make_addresses(), make_addrmap(), make_led_toggle(), make_neighbor(), make_neighbor_roomfor(), make_processes(), make_route(), make_routes_roomfor(), make_tcp_stats(), msg_for_me(), newdata(), parse_headers(), parse_msg(), parse_statusline(), PROCESS_THREAD(), PT_THREAD(), send_discover(), send_request(), send_rerr(), send_rrep(), send_rreq(), senddata(), slip_send(), slipdev_send(), uip_arp_out(), uip_fw_forward(), uip_process(), uip_split_output(), websocket_http_client_appcall(), and write_mss_error().
Pointer to the current TCP connection.
The uip_conn pointer can be used to access the current TCP connection.
Referenced by uip_process().
uint8_t uip_ds6_addr_size |
Prefix list.
Referenced by uip_ds6_init().
uip_ds6_netif_t uip_ds6_if |
Referenced by echo_request_input(), get_global_addr(), handle_dao_timer(), ip64_init(), na_input(), ra_input(), set_global_address(), simple_rpl_global_address(), simple_rpl_init_dag_immediately(), tcpip_ipv6_output(), uip_ds6_neighbor_periodic(), uip_icmp6_error_output(), uip_icmp6_send(), and uip_process().
uip_ds6_netif_t uip_ds6_if |
uint8_t uip_ds6_netif_addr_list_offset |
Referenced by uip_ds6_init().
uip_ds6_prefix_t uip_ds6_prefix_list[UIP_DS6_PREFIX_NB] |
The single interface.
struct etimer uip_ds6_timer_periodic |
Referenced by eventhandler(), uip_ds6_init(), and uip_ds6_periodic().
struct etimer uip_ds6_timer_periodic |
Referenced by eventhandler(), uip_ds6_init(), and uip_ds6_periodic().
struct etimer uip_ds6_timer_rs |
Timer for maintenance of data structures.
Referenced by eventhandler(), uip_ds6_init(), and uip_ds6_send_rs().
struct etimer uip_ds6_timer_rs |
Timer for maintenance of data structures.
Referenced by eventhandler(), uip_ds6_init(), and uip_ds6_send_rs().
uint8_t uip_ext_bitmap = 0 |
bitmap we use to record which IPv6 headers we have already seen
Referenced by uip_process().
uint8_t uip_ext_len = 0 |
length of the extension headers read.
The length of the extension headers.
updated each time we process a header
Referenced by echo_reply_input(), echo_request_input(), ext_hdr_options_process(), ns_input(), remove_ext_hdr(), rpl_invert_header(), rpl_remove_header(), rpl_update_header_empty(), rpl_update_header_final(), tcpip_input(), tcpip_ipv6_output(), uip_icmp6_error_output(), uip_nd6_ns_output(), uip_process(), and upper_layer_chksum().
uint8_t uip_ext_opt_offset = 0 |
length of the header options read
Referenced by ext_hdr_options_process(), rpl_insert_header(), rpl_invert_header(), rpl_update_header_empty(), and rpl_update_header_final().
uint8_t uip_flags |
Referenced by uip_process().
uint16_t uip_len |
The length of the packet in the uip_buf buffer.
The global variable uip_len holds the length of the packet in the uip_buf buffer.
When the network device driver calls the uIP input function, uip_len should be set to the length of the packet in the uip_buf buffer.
When sending packets, the device driver should use the contents of the uip_len variable to determine the length of the outgoing packet.
Referenced by dao_ack_input(), dao_input(), dio_input(), dis_input(), echo_reply_input(), echo_request_input(), eventhandler(), handle_incoming_rreq(), input(), input_callback(), interface_output(), ip64_eth_interface_input(), na_input(), ns_input(), output(), packet_input(), PROCESS_THREAD(), ra_input(), recv_data(), remove_ext_hdr(), rpl_remove_header(), rpl_update_header_empty(), set_rpl_opt(), slip_send(), slipdev_send(), tcpip_input(), tcpip_ipv6_output(), time_exceeded(), uip_arp_arpin(), uip_arp_out(), uip_ds6_neighbor_periodic(), uip_ds6_periodic(), uip_fw_forward(), uip_fw_output(), uip_icmp6_error_output(), uip_icmp6_send(), uip_nd6_ns_output(), uip_nd6_rs_output(), uip_over_mesh_send(), uip_process(), uip_split_output(), and uip_udp_packet_send().
uip_lladdr_t uip_lladdr = {{0x00,0x06,0x98,0x00,0x02,0x32}} |
Host L2 address.
Referenced by compress_hdr_hc06(), compress_hdr_hc1(), create_llao(), input_callback(), main(), ra_input(), send_packet(), set_global_address(), set_ip_from_prefix(), uip_arp_arpin(), uip_arp_out(), and uip_ds6_init().
uint8_t* uip_next_hdr |
Type of the next header in IPv6 header or extension headers.
Can be the next header field in the IPv6 header or in an extension header. When doing fragment reassembly, we must change the value of the next header field in the header before the fragmentation header, hence we need a pointer to this field.
Referenced by uip_process().
void* uip_sappdata |
Referenced by uip_process(), and uip_send().
uint16_t uip_slen |
Referenced by uip_process(), uip_send(), and uip_udp_packet_send().