mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-08-24 07:05:56 +00:00
doxygen updates - include IPv6 in documentation. Exclude include/netif/ppp/polarssl.
Convert TODO -> @todo
This commit is contained in:
parent
cfe5182380
commit
8dc77ef558
|
@ -842,7 +842,7 @@ RECURSIVE = YES
|
||||||
# Note that relative paths are relative to the directory from which doxygen is
|
# Note that relative paths are relative to the directory from which doxygen is
|
||||||
# run.
|
# run.
|
||||||
|
|
||||||
EXCLUDE =
|
EXCLUDE = ../../src/include/netif/ppp/polarssl
|
||||||
|
|
||||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||||
|
@ -2058,7 +2058,7 @@ INCLUDE_PATH = ../../src/include
|
||||||
# used.
|
# used.
|
||||||
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
|
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
|
||||||
|
|
||||||
INCLUDE_FILE_PATTERNS =
|
INCLUDE_FILE_PATTERNS = *.c *.h
|
||||||
|
|
||||||
# The PREDEFINED tag can be used to specify one or more macro names that are
|
# The PREDEFINED tag can be used to specify one or more macro names that are
|
||||||
# defined before the preprocessor is started (similar to the -D option of e.g.
|
# defined before the preprocessor is started (similar to the -D option of e.g.
|
||||||
|
@ -2070,6 +2070,8 @@ INCLUDE_FILE_PATTERNS =
|
||||||
|
|
||||||
PREDEFINED = NO_SYS=0 \
|
PREDEFINED = NO_SYS=0 \
|
||||||
SYS_LIGHTWEIGHT_PROT=1 \
|
SYS_LIGHTWEIGHT_PROT=1 \
|
||||||
|
LWIP_IPV4=1 \
|
||||||
|
LWIP_IPV6=1 \
|
||||||
LWIP_ICMP=1 \
|
LWIP_ICMP=1 \
|
||||||
LWIP_RAW=1 \
|
LWIP_RAW=1 \
|
||||||
LWIP_DHCP=1 \
|
LWIP_DHCP=1 \
|
||||||
|
|
|
@ -286,7 +286,7 @@ netconn_connect(struct netconn *conn, const ip_addr_t *addr, u16_t port)
|
||||||
* Disconnect a netconn from its current peer (only valid for UDP netconns).
|
* Disconnect a netconn from its current peer (only valid for UDP netconns).
|
||||||
*
|
*
|
||||||
* @param conn the netconn to disconnect
|
* @param conn the netconn to disconnect
|
||||||
* @return TODO: return value is not set here...
|
* @return @todo: return value is not set here...
|
||||||
*/
|
*/
|
||||||
err_t
|
err_t
|
||||||
netconn_disconnect(struct netconn *conn)
|
netconn_disconnect(struct netconn *conn)
|
||||||
|
@ -502,7 +502,7 @@ netconn_recv_data(struct netconn *conn, void **new_buf)
|
||||||
#endif /* (LWIP_UDP || LWIP_RAW) */
|
#endif /* (LWIP_UDP || LWIP_RAW) */
|
||||||
{
|
{
|
||||||
/* Let the stack know that we have taken the data. */
|
/* Let the stack know that we have taken the data. */
|
||||||
/* TODO: Speedup: Don't block and wait for the answer here
|
/* @todo: Speedup: Don't block and wait for the answer here
|
||||||
(to prevent multiple thread-switches). */
|
(to prevent multiple thread-switches). */
|
||||||
API_MSG_VAR_REF(msg).conn = conn;
|
API_MSG_VAR_REF(msg).conn = conn;
|
||||||
if (buf != NULL) {
|
if (buf != NULL) {
|
||||||
|
@ -855,6 +855,7 @@ netconn_join_leave_group(struct netconn *conn,
|
||||||
*
|
*
|
||||||
* @param name a string representation of the DNS host name to query
|
* @param name a string representation of the DNS host name to query
|
||||||
* @param addr a preallocated ip_addr_t where to store the resolved IP address
|
* @param addr a preallocated ip_addr_t where to store the resolved IP address
|
||||||
|
* @param dns_addrtype IP address type (IPv4 / IPv6)
|
||||||
* @return ERR_OK: resolving succeeded
|
* @return ERR_OK: resolving succeeded
|
||||||
* ERR_MEM: memory error, try again later
|
* ERR_MEM: memory error, try again later
|
||||||
* ERR_ARG: dns client not initialized or invalid hostname
|
* ERR_ARG: dns client not initialized or invalid hostname
|
||||||
|
|
|
@ -727,7 +727,7 @@ int process_file(FILE *data_file, FILE *struct_file, const char *filename)
|
||||||
u8_t* file_data;
|
u8_t* file_data;
|
||||||
int is_compressed = 0;
|
int is_compressed = 0;
|
||||||
|
|
||||||
/* create qualified name (TODO: prepend slash or not?) */
|
/* create qualified name (@todo: prepend slash or not?) */
|
||||||
sprintf(qualifiedName,"%s/%s", curSubdir, filename);
|
sprintf(qualifiedName,"%s/%s", curSubdir, filename);
|
||||||
/* create C variable name */
|
/* create C variable name */
|
||||||
strcpy(varname, qualifiedName);
|
strcpy(varname, qualifiedName);
|
||||||
|
|
|
@ -373,7 +373,7 @@ lwiperf_tx_start(lwiperf_state_tcp_t* conn)
|
||||||
client_conn->base.server = 0;
|
client_conn->base.server = 0;
|
||||||
client_conn->server_pcb = NULL;
|
client_conn->server_pcb = NULL;
|
||||||
client_conn->conn_pcb = newpcb;
|
client_conn->conn_pcb = newpcb;
|
||||||
client_conn->time_started = sys_now(); /* TODO: set this again on 'connected' */
|
client_conn->time_started = sys_now(); /* @todo: set this again on 'connected' */
|
||||||
client_conn->poll_count = 0;
|
client_conn->poll_count = 0;
|
||||||
client_conn->next_num = 4; /* initial nr is '4' since the header has 24 byte */
|
client_conn->next_num = 4; /* initial nr is '4' since the header has 24 byte */
|
||||||
client_conn->bytes_transferred = 0;
|
client_conn->bytes_transferred = 0;
|
||||||
|
@ -639,7 +639,7 @@ lwiperf_abort(void* lwiperf_session)
|
||||||
if (last != NULL) {
|
if (last != NULL) {
|
||||||
last->next = i;
|
last->next = i;
|
||||||
}
|
}
|
||||||
LWIPERF_FREE(lwiperf_state_tcp_t, dealloc); /* TODO: type? */
|
LWIPERF_FREE(lwiperf_state_tcp_t, dealloc); /* @todo: type? */
|
||||||
} else {
|
} else {
|
||||||
last = i;
|
last = i;
|
||||||
i = i->next;
|
i = i->next;
|
||||||
|
|
|
@ -636,7 +636,7 @@ snmp_parse_inbound_frame(struct snmp_request *request)
|
||||||
u16_t u16_value;
|
u16_t u16_value;
|
||||||
|
|
||||||
/* SNMPv3 doesn't use communities */
|
/* SNMPv3 doesn't use communities */
|
||||||
/* TODO: Differentiate read/write access */
|
/* @todo: Differentiate read/write access */
|
||||||
strcpy((char*)request->community, snmp_community);
|
strcpy((char*)request->community, snmp_community);
|
||||||
request->community_strlen = strlen(snmp_community);
|
request->community_strlen = strlen(snmp_community);
|
||||||
|
|
||||||
|
@ -723,7 +723,7 @@ snmp_parse_inbound_frame(struct snmp_request *request)
|
||||||
parent_tlv_value_len -= SNMP_ASN1_TLV_LENGTH(tlv);
|
parent_tlv_value_len -= SNMP_ASN1_TLV_LENGTH(tlv);
|
||||||
IF_PARSE_ASSERT(parent_tlv_value_len > 0);
|
IF_PARSE_ASSERT(parent_tlv_value_len > 0);
|
||||||
IF_PARSE_EXEC(snmp_asn1_dec_s32t(&pbuf_stream, tlv.value_len, &request->msg_authoritative_engine_time));
|
IF_PARSE_EXEC(snmp_asn1_dec_s32t(&pbuf_stream, tlv.value_len, &request->msg_authoritative_engine_time));
|
||||||
/* TODO: Implement time window checking */
|
/* @todo: Implement time window checking */
|
||||||
|
|
||||||
/* msgUserName */
|
/* msgUserName */
|
||||||
IF_PARSE_EXEC(snmp_asn1_dec_tlv(&pbuf_stream, &tlv));
|
IF_PARSE_EXEC(snmp_asn1_dec_tlv(&pbuf_stream, &tlv));
|
||||||
|
@ -734,7 +734,7 @@ snmp_parse_inbound_frame(struct snmp_request *request)
|
||||||
IF_PARSE_EXEC(snmp_asn1_dec_raw(&pbuf_stream, tlv.value_len, request->msg_user_name,
|
IF_PARSE_EXEC(snmp_asn1_dec_raw(&pbuf_stream, tlv.value_len, request->msg_user_name,
|
||||||
&u16_value, SNMP_V3_MAX_USER_LENGTH));
|
&u16_value, SNMP_V3_MAX_USER_LENGTH));
|
||||||
request->msg_user_name_len = u16_value;
|
request->msg_user_name_len = u16_value;
|
||||||
/* TODO: Implement unknown user error response */
|
/* @todo: Implement unknown user error response */
|
||||||
IF_PARSE_EXEC(snmpv3_get_user((char*)request->msg_user_name, NULL, NULL, NULL, NULL));
|
IF_PARSE_EXEC(snmpv3_get_user((char*)request->msg_user_name, NULL, NULL, NULL, NULL));
|
||||||
|
|
||||||
/* msgAuthenticationParameters */
|
/* msgAuthenticationParameters */
|
||||||
|
@ -769,12 +769,12 @@ snmp_parse_inbound_frame(struct snmp_request *request)
|
||||||
|
|
||||||
IF_PARSE_EXEC(snmpv3_get_user((char*)request->msg_user_name, &algo, key, NULL, NULL));
|
IF_PARSE_EXEC(snmpv3_get_user((char*)request->msg_user_name, &algo, key, NULL, NULL));
|
||||||
IF_PARSE_EXEC(snmpv3_auth(&auth_stream, request->inbound_pbuf->tot_len, key, algo, hmac));
|
IF_PARSE_EXEC(snmpv3_auth(&auth_stream, request->inbound_pbuf->tot_len, key, algo, hmac));
|
||||||
/* TODO: Implement error response */
|
/* @todo: Implement error response */
|
||||||
IF_PARSE_EXEC(memcmp(request->msg_authentication_parameters, hmac, SNMP_V3_MAX_AUTH_PARAM_LENGTH));
|
IF_PARSE_EXEC(memcmp(request->msg_authentication_parameters, hmac, SNMP_V3_MAX_AUTH_PARAM_LENGTH));
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* Ungraceful exit if we encounter cryptography and don't support it.
|
/* Ungraceful exit if we encounter cryptography and don't support it.
|
||||||
* TODO: Implement error response
|
* @todo: Implement error response
|
||||||
*/
|
*/
|
||||||
IF_PARSE_ASSERT(!(request->msg_flags & (SNMP_V3_AUTH_FLAG | SNMP_V3_PRIV_FLAG)));
|
IF_PARSE_ASSERT(!(request->msg_flags & (SNMP_V3_AUTH_FLAG | SNMP_V3_PRIV_FLAG)));
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -98,7 +98,7 @@ snmpv3_get_engine_time_internal(void)
|
||||||
*
|
*
|
||||||
* Implementing RFC3826 priv param algorithm if LWIP_RAND is available.
|
* Implementing RFC3826 priv param algorithm if LWIP_RAND is available.
|
||||||
*
|
*
|
||||||
* TODO: This is a potential thread safety issue.
|
* @todo: This is a potential thread safety issue.
|
||||||
*/
|
*/
|
||||||
err_t
|
err_t
|
||||||
snmpv3_build_priv_param(u8_t* priv_param)
|
snmpv3_build_priv_param(u8_t* priv_param)
|
||||||
|
|
|
@ -336,10 +336,10 @@ inet_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len,
|
||||||
* IPv6 addresses are expected to be in network byte order.
|
* IPv6 addresses are expected to be in network byte order.
|
||||||
*
|
*
|
||||||
* @param p chain of pbufs over that a checksum should be calculated (ip data part)
|
* @param p chain of pbufs over that a checksum should be calculated (ip data part)
|
||||||
* @param src source ipv6 address (used for checksum of pseudo header)
|
|
||||||
* @param dst destination ipv6 address (used for checksum of pseudo header)
|
|
||||||
* @param proto ipv6 protocol/next header (used for checksum of pseudo header)
|
* @param proto ipv6 protocol/next header (used for checksum of pseudo header)
|
||||||
* @param proto_len length of the ipv6 payload (used for checksum of pseudo header)
|
* @param proto_len length of the ipv6 payload (used for checksum of pseudo header)
|
||||||
|
* @param src source ipv6 address (used for checksum of pseudo header)
|
||||||
|
* @param dest destination ipv6 address (used for checksum of pseudo header)
|
||||||
* @return checksum (as u16_t) to be saved directly in the protocol header
|
* @return checksum (as u16_t) to be saved directly in the protocol header
|
||||||
*/
|
*/
|
||||||
u16_t
|
u16_t
|
||||||
|
@ -483,11 +483,11 @@ inet_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len,
|
||||||
* portion of the payload.
|
* portion of the payload.
|
||||||
*
|
*
|
||||||
* @param p chain of pbufs over that a checksum should be calculated (ip data part)
|
* @param p chain of pbufs over that a checksum should be calculated (ip data part)
|
||||||
* @param src source ipv6 address (used for checksum of pseudo header)
|
|
||||||
* @param dst destination ipv6 address (used for checksum of pseudo header)
|
|
||||||
* @param proto ipv6 protocol/next header (used for checksum of pseudo header)
|
* @param proto ipv6 protocol/next header (used for checksum of pseudo header)
|
||||||
* @param proto_len length of the ipv6 payload (used for checksum of pseudo header)
|
* @param proto_len length of the ipv6 payload (used for checksum of pseudo header)
|
||||||
* @param chksum_len number of payload bytes used to compute chksum
|
* @param chksum_len number of payload bytes used to compute chksum
|
||||||
|
* @param src source ipv6 address (used for checksum of pseudo header)
|
||||||
|
* @param dest destination ipv6 address (used for checksum of pseudo header)
|
||||||
* @return checksum (as u16_t) to be saved directly in the protocol header
|
* @return checksum (as u16_t) to be saved directly in the protocol header
|
||||||
*/
|
*/
|
||||||
u16_t
|
u16_t
|
||||||
|
|
|
@ -170,7 +170,7 @@ autoip_handle_arp_conflict(struct netif *netif)
|
||||||
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
|
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
|
||||||
("autoip_handle_arp_conflict(): we are defending, but in DEFEND_INTERVAL, retreating\n"));
|
("autoip_handle_arp_conflict(): we are defending, but in DEFEND_INTERVAL, retreating\n"));
|
||||||
|
|
||||||
/* TODO: close all TCP sessions */
|
/* @todo: close all TCP sessions */
|
||||||
autoip_restart(netif);
|
autoip_restart(netif);
|
||||||
} else {
|
} else {
|
||||||
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
|
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
|
||||||
|
@ -181,7 +181,7 @@ autoip_handle_arp_conflict(struct netif *netif)
|
||||||
} else {
|
} else {
|
||||||
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
|
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
|
||||||
("autoip_handle_arp_conflict(): we do not defend, retreating\n"));
|
("autoip_handle_arp_conflict(): we do not defend, retreating\n"));
|
||||||
/* TODO: close all TCP sessions */
|
/* @todo: close all TCP sessions */
|
||||||
autoip_restart(netif);
|
autoip_restart(netif);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
* This is a DHCP client for the lwIP TCP/IP stack. It aims to conform
|
* This is a DHCP client for the lwIP TCP/IP stack. It aims to conform
|
||||||
* with RFC 2131 and RFC 2132.
|
* with RFC 2131 and RFC 2132.
|
||||||
*
|
*
|
||||||
* TODO:
|
* @todo:
|
||||||
* - Support for interfaces other than Ethernet (SLIP, PPP, ...)
|
* - Support for interfaces other than Ethernet (SLIP, PPP, ...)
|
||||||
*
|
*
|
||||||
* Please coordinate changes and requests with Leon Woestenberg
|
* Please coordinate changes and requests with Leon Woestenberg
|
||||||
|
@ -1803,7 +1803,7 @@ dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type)
|
||||||
dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload;
|
dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload;
|
||||||
|
|
||||||
dhcp->msg_out->op = DHCP_BOOTREQUEST;
|
dhcp->msg_out->op = DHCP_BOOTREQUEST;
|
||||||
/* TODO: make link layer independent */
|
/* @todo: make link layer independent */
|
||||||
dhcp->msg_out->htype = DHCP_HTYPE_ETH;
|
dhcp->msg_out->htype = DHCP_HTYPE_ETH;
|
||||||
dhcp->msg_out->hlen = netif->hwaddr_len;
|
dhcp->msg_out->hlen = netif->hwaddr_len;
|
||||||
dhcp->msg_out->hops = 0;
|
dhcp->msg_out->hops = 0;
|
||||||
|
|
|
@ -88,7 +88,7 @@ ethip6_send(struct netif *netif, struct pbuf *p, struct eth_addr *src, struct et
|
||||||
*
|
*
|
||||||
* For unicast addresses, ...
|
* For unicast addresses, ...
|
||||||
*
|
*
|
||||||
* @TODO anycast addresses
|
* @todo anycast addresses
|
||||||
*
|
*
|
||||||
* @param netif The lwIP network interface which the IP packet will be sent on.
|
* @param netif The lwIP network interface which the IP packet will be sent on.
|
||||||
* @param q The pbuf(s) containing the IP packet to be sent.
|
* @param q The pbuf(s) containing the IP packet to be sent.
|
||||||
|
@ -127,7 +127,7 @@ ethip6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We have a unicast destination IP address */
|
/* We have a unicast destination IP address */
|
||||||
/* TODO anycast? */
|
/* @todo anycast? */
|
||||||
/* Get next hop record. */
|
/* Get next hop record. */
|
||||||
i = nd6_get_next_hop_entry(ip6addr, netif);
|
i = nd6_get_next_hop_entry(ip6addr, netif);
|
||||||
if (i < 0) {
|
if (i < 0) {
|
||||||
|
@ -141,7 +141,7 @@ ethip6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
|
||||||
neighbor_cache[i].state = ND6_DELAY;
|
neighbor_cache[i].state = ND6_DELAY;
|
||||||
neighbor_cache[i].counter.delay_time = LWIP_ND6_DELAY_FIRST_PROBE_TIME;
|
neighbor_cache[i].counter.delay_time = LWIP_ND6_DELAY_FIRST_PROBE_TIME;
|
||||||
}
|
}
|
||||||
/* TODO should we send or queue if PROBE? send for now, to let unicast NS pass. */
|
/* @todo should we send or queue if PROBE? send for now, to let unicast NS pass. */
|
||||||
if ((neighbor_cache[i].state == ND6_REACHABLE) ||
|
if ((neighbor_cache[i].state == ND6_REACHABLE) ||
|
||||||
(neighbor_cache[i].state == ND6_DELAY) ||
|
(neighbor_cache[i].state == ND6_DELAY) ||
|
||||||
(neighbor_cache[i].state == ND6_PROBE)) {
|
(neighbor_cache[i].state == ND6_PROBE)) {
|
||||||
|
|
|
@ -120,7 +120,7 @@ icmp6_input(struct pbuf *p, struct netif *inp)
|
||||||
break;
|
break;
|
||||||
case ICMP6_TYPE_RS:
|
case ICMP6_TYPE_RS:
|
||||||
#if LWIP_IPV6_FORWARD
|
#if LWIP_IPV6_FORWARD
|
||||||
/* TODO implement router functionality */
|
/* @todo implement router functionality */
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
#if LWIP_IPV6_MLD
|
#if LWIP_IPV6_MLD
|
||||||
|
|
|
@ -249,7 +249,7 @@ ip6_select_source_address(struct netif *netif, const ip6_addr_t * dest)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Replace src only if we find a prefix match. */
|
/* Replace src only if we find a prefix match. */
|
||||||
/* TODO find longest matching prefix. */
|
/* @todo find longest matching prefix. */
|
||||||
if ((!(ip6_addr_netcmp(ip_2_ip6(src), dest))) &&
|
if ((!(ip6_addr_netcmp(ip_2_ip6(src), dest))) &&
|
||||||
ip6_addr_netcmp(netif_ip6_addr(netif, i), dest)) {
|
ip6_addr_netcmp(netif_ip6_addr(netif, i), dest)) {
|
||||||
src = netif_ip_addr6(netif, i);
|
src = netif_ip_addr6(netif, i);
|
||||||
|
|
|
@ -252,7 +252,6 @@ ip6_reass_remove_oldest_datagram(struct ip6_reassdata *ipr, int pbufs_needed)
|
||||||
* Reassembles incoming IPv6 fragments into an IPv6 datagram.
|
* Reassembles incoming IPv6 fragments into an IPv6 datagram.
|
||||||
*
|
*
|
||||||
* @param p points to the IPv6 Fragment Header
|
* @param p points to the IPv6 Fragment Header
|
||||||
* @param len the length of the payload (after Fragment Header)
|
|
||||||
* @return NULL if reassembly is incomplete, pbuf pointing to
|
* @return NULL if reassembly is incomplete, pbuf pointing to
|
||||||
* IPv6 Header if reassembly is complete
|
* IPv6 Header if reassembly is complete
|
||||||
*/
|
*/
|
||||||
|
@ -675,7 +674,7 @@ ip6_frag(struct pbuf *p, struct netif *netif, const ip6_addr_t *dest)
|
||||||
|
|
||||||
mtu = nd6_get_destination_mtu(dest, netif);
|
mtu = nd6_get_destination_mtu(dest, netif);
|
||||||
|
|
||||||
/* TODO we assume there are no options in the unfragmentable part (IPv6 header). */
|
/* @todo we assume there are no options in the unfragmentable part (IPv6 header). */
|
||||||
left = p->tot_len - IP6_HLEN;
|
left = p->tot_len - IP6_HLEN;
|
||||||
|
|
||||||
nfb = (mtu - (IP6_HLEN + IP6_FRAG_HLEN)) & IP6_FRAG_OFFSET_MASK;
|
nfb = (mtu - (IP6_HLEN + IP6_FRAG_HLEN)) & IP6_FRAG_OFFSET_MASK;
|
||||||
|
|
|
@ -245,7 +245,7 @@ mld6_input(struct pbuf *p, struct netif *inp)
|
||||||
|
|
||||||
/* Check that mld header fits in packet. */
|
/* Check that mld header fits in packet. */
|
||||||
if (p->len < sizeof(struct mld_header)) {
|
if (p->len < sizeof(struct mld_header)) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
MLD6_STATS_INC(mld6.lenerr);
|
MLD6_STATS_INC(mld6.lenerr);
|
||||||
MLD6_STATS_INC(mld6.drop);
|
MLD6_STATS_INC(mld6.drop);
|
||||||
|
|
|
@ -69,7 +69,7 @@ struct nd6_router_list_entry default_router_list[LWIP_ND6_NUM_ROUTERS];
|
||||||
|
|
||||||
/* Default values, can be updated by a RA message. */
|
/* Default values, can be updated by a RA message. */
|
||||||
u32_t reachable_time = LWIP_ND6_REACHABLE_TIME;
|
u32_t reachable_time = LWIP_ND6_REACHABLE_TIME;
|
||||||
u32_t retrans_timer = LWIP_ND6_RETRANS_TIMER; /* TODO implement this value in timer */
|
u32_t retrans_timer = LWIP_ND6_RETRANS_TIMER; /* @todo implement this value in timer */
|
||||||
|
|
||||||
/* Index for cache entries. */
|
/* Index for cache entries. */
|
||||||
static u8_t nd6_cached_neighbor_index;
|
static u8_t nd6_cached_neighbor_index;
|
||||||
|
@ -132,7 +132,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
|
|
||||||
/* Check that na header fits in packet. */
|
/* Check that na header fits in packet. */
|
||||||
if (p->len < (sizeof(struct na_header))) {
|
if (p->len < (sizeof(struct na_header))) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -149,7 +149,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
|
|
||||||
/* Check that link-layer address option also fits in packet. */
|
/* Check that link-layer address option also fits in packet. */
|
||||||
if (p->len < (sizeof(struct na_header) + 2)) {
|
if (p->len < (sizeof(struct na_header) + 2)) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -159,7 +159,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
lladdr_opt = (struct lladdr_option *)((u8_t*)p->payload + sizeof(struct na_header));
|
lladdr_opt = (struct lladdr_option *)((u8_t*)p->payload + sizeof(struct na_header));
|
||||||
|
|
||||||
if (p->len < (sizeof(struct na_header) + (lladdr_opt->length << 3))) {
|
if (p->len < (sizeof(struct na_header) + (lladdr_opt->length << 3))) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -231,7 +231,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
(neighbor_cache[i].state == ND6_INCOMPLETE)) {
|
(neighbor_cache[i].state == ND6_INCOMPLETE)) {
|
||||||
/* Check that link-layer address option also fits in packet. */
|
/* Check that link-layer address option also fits in packet. */
|
||||||
if (p->len < (sizeof(struct na_header) + 2)) {
|
if (p->len < (sizeof(struct na_header) + 2)) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -241,7 +241,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
lladdr_opt = (struct lladdr_option *)((u8_t*)p->payload + sizeof(struct na_header));
|
lladdr_opt = (struct lladdr_option *)((u8_t*)p->payload + sizeof(struct na_header));
|
||||||
|
|
||||||
if (p->len < (sizeof(struct na_header) + (lladdr_opt->length << 3))) {
|
if (p->len < (sizeof(struct na_header) + (lladdr_opt->length << 3))) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -268,7 +268,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
|
|
||||||
/* Check that ns header fits in packet. */
|
/* Check that ns header fits in packet. */
|
||||||
if (p->len < sizeof(struct ns_header)) {
|
if (p->len < sizeof(struct ns_header)) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -380,7 +380,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
|
|
||||||
/* Check that RA header fits in packet. */
|
/* Check that RA header fits in packet. */
|
||||||
if (p->len < sizeof(struct ra_header)) {
|
if (p->len < sizeof(struct ra_header)) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -425,7 +425,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
}
|
}
|
||||||
#endif /* LWIP_ND6_ALLOW_RA_UPDATES */
|
#endif /* LWIP_ND6_ALLOW_RA_UPDATES */
|
||||||
|
|
||||||
/* TODO set default hop limit... */
|
/* @todo set default hop limit... */
|
||||||
/* ra_hdr->current_hop_limit;*/
|
/* ra_hdr->current_hop_limit;*/
|
||||||
|
|
||||||
/* Update flags in local entry (incl. preference). */
|
/* Update flags in local entry (incl. preference). */
|
||||||
|
@ -508,7 +508,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ND6_OPTION_TYPE_ROUTE_INFO:
|
case ND6_OPTION_TYPE_ROUTE_INFO:
|
||||||
/* TODO implement preferred routes.
|
/* @todo implement preferred routes.
|
||||||
struct route_option * route_opt;
|
struct route_option * route_opt;
|
||||||
route_opt = (struct route_option *)buffer;*/
|
route_opt = (struct route_option *)buffer;*/
|
||||||
|
|
||||||
|
@ -531,7 +531,7 @@ nd6_input(struct pbuf *p, struct netif *inp)
|
||||||
|
|
||||||
/* Check that Redir header fits in packet. */
|
/* Check that Redir header fits in packet. */
|
||||||
if (p->len < sizeof(struct redirect_header)) {
|
if (p->len < sizeof(struct redirect_header)) {
|
||||||
/* TODO debug message */
|
/* @todo debug message */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
ND6_STATS_INC(nd6.lenerr);
|
ND6_STATS_INC(nd6.lenerr);
|
||||||
ND6_STATS_INC(nd6.drop);
|
ND6_STATS_INC(nd6.drop);
|
||||||
|
@ -806,7 +806,7 @@ nd6_tmr(void)
|
||||||
if ((netif->ip6_addr_state[i] & 0x07) >= LWIP_IPV6_DUP_DETECT_ATTEMPTS) {
|
if ((netif->ip6_addr_state[i] & 0x07) >= LWIP_IPV6_DUP_DETECT_ATTEMPTS) {
|
||||||
/* No NA received in response. Mark address as valid. */
|
/* No NA received in response. Mark address as valid. */
|
||||||
netif->ip6_addr_state[i] = IP6_ADDR_PREFERRED;
|
netif->ip6_addr_state[i] = IP6_ADDR_PREFERRED;
|
||||||
/* TODO implement preferred and valid lifetimes. */
|
/* @todo implement preferred and valid lifetimes. */
|
||||||
} else if (netif->flags & NETIF_FLAG_UP) {
|
} else if (netif->flags & NETIF_FLAG_UP) {
|
||||||
#if LWIP_IPV6_MLD
|
#if LWIP_IPV6_MLD
|
||||||
if ((netif->ip6_addr_state[i] & 0x07) == 0) {
|
if ((netif->ip6_addr_state[i] & 0x07) == 0) {
|
||||||
|
@ -818,7 +818,7 @@ nd6_tmr(void)
|
||||||
/* Send a NS for this address. */
|
/* Send a NS for this address. */
|
||||||
nd6_send_ns(netif, netif_ip6_addr(netif, i), ND6_SEND_FLAG_MULTICAST_DEST);
|
nd6_send_ns(netif, netif_ip6_addr(netif, i), ND6_SEND_FLAG_MULTICAST_DEST);
|
||||||
netif->ip6_addr_state[i]++;
|
netif->ip6_addr_state[i]++;
|
||||||
/* TODO send max 1 NS per tmr call? enable return*/
|
/* @todo send max 1 NS per tmr call? enable return*/
|
||||||
/*return;*/
|
/*return;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1303,9 +1303,9 @@ nd6_select_router(const ip6_addr_t * ip6addr, struct netif * netif)
|
||||||
* in RFC). This is more robust in case one router is not reachable,
|
* in RFC). This is more robust in case one router is not reachable,
|
||||||
* we are not stuck trying to resolve it. */
|
* we are not stuck trying to resolve it. */
|
||||||
static s8_t last_router;
|
static s8_t last_router;
|
||||||
(void)ip6addr; /* TODO match preferred routes!! (must implement ND6_OPTION_TYPE_ROUTE_INFO) */
|
(void)ip6addr; /* @todo match preferred routes!! (must implement ND6_OPTION_TYPE_ROUTE_INFO) */
|
||||||
|
|
||||||
/* TODO: implement default router preference */
|
/* @todo: implement default router preference */
|
||||||
|
|
||||||
/* Look for reachable routers. */
|
/* Look for reachable routers. */
|
||||||
for (i = 0; i < LWIP_ND6_NUM_ROUTERS; i++) {
|
for (i = 0; i < LWIP_ND6_NUM_ROUTERS; i++) {
|
||||||
|
|
|
@ -859,7 +859,7 @@ udp_sendto_if_src_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *d
|
||||||
err = ip_output_if_src(q, src_ip, dst_ip, ttl, pcb->tos, ip_proto, netif);
|
err = ip_output_if_src(q, src_ip, dst_ip, ttl, pcb->tos, ip_proto, netif);
|
||||||
NETIF_SET_HWADDRHINT(netif, NULL);
|
NETIF_SET_HWADDRHINT(netif, NULL);
|
||||||
|
|
||||||
/* TODO: must this be increased even if error occurred? */
|
/* @todo: must this be increased even if error occurred? */
|
||||||
MIB2_STATS_INC(mib2.udpoutdatagrams);
|
MIB2_STATS_INC(mib2.udpoutdatagrams);
|
||||||
|
|
||||||
/* did we chain a separate header pbuf earlier? */
|
/* did we chain a separate header pbuf earlier? */
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
struct dhcp6
|
struct dhcp6
|
||||||
{
|
{
|
||||||
/*TODO: implement DHCP6*/
|
/*@todo: implement DHCP6*/
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* LWIP_IPV6_DHCP6 */
|
#endif /* LWIP_IPV6_DHCP6 */
|
||||||
|
|
|
@ -52,14 +52,14 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* This is the aligned version of ip6_addr_t,
|
/** This is the aligned version of ip6_addr_t,
|
||||||
used as local variable, on the stack, etc. */
|
used as local variable, on the stack, etc. */
|
||||||
struct ip6_addr {
|
struct ip6_addr {
|
||||||
u32_t addr[4];
|
u32_t addr[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This is the packed version of ip6_addr_t,
|
/** This is the packed version of ip6_addr_t,
|
||||||
used in network headers that are itself packed */
|
used in network headers that are itself packed */
|
||||||
#ifdef PACK_STRUCT_USE_INCLUDES
|
#ifdef PACK_STRUCT_USE_INCLUDES
|
||||||
# include "arch/bpstruct.h"
|
# include "arch/bpstruct.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -72,6 +72,7 @@ PACK_STRUCT_END
|
||||||
# include "arch/epstruct.h"
|
# include "arch/epstruct.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** IPv6 address */
|
||||||
typedef struct ip6_addr ip6_addr_t;
|
typedef struct ip6_addr ip6_addr_t;
|
||||||
typedef struct ip6_addr_packed ip6_addr_p_t;
|
typedef struct ip6_addr_packed ip6_addr_p_t;
|
||||||
|
|
||||||
|
@ -103,12 +104,19 @@ Little-endian version, stored in network order (no htonl). */
|
||||||
|
|
||||||
/** Access address in 16-bit block */
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK1(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0]) >> 16) & 0xffff)
|
#define IP6_ADDR_BLOCK1(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0]) >> 16) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK2(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0])) & 0xffff)
|
#define IP6_ADDR_BLOCK2(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0])) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK3(ip6addr) ((u16_t)(htonl((ip6addr)->addr[1]) >> 16) & 0xffff)
|
#define IP6_ADDR_BLOCK3(ip6addr) ((u16_t)(htonl((ip6addr)->addr[1]) >> 16) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK4(ip6addr) ((u16_t)(htonl((ip6addr)->addr[1])) & 0xffff)
|
#define IP6_ADDR_BLOCK4(ip6addr) ((u16_t)(htonl((ip6addr)->addr[1])) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK5(ip6addr) ((u16_t)(htonl((ip6addr)->addr[2]) >> 16) & 0xffff)
|
#define IP6_ADDR_BLOCK5(ip6addr) ((u16_t)(htonl((ip6addr)->addr[2]) >> 16) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK6(ip6addr) ((u16_t)(htonl((ip6addr)->addr[2])) & 0xffff)
|
#define IP6_ADDR_BLOCK6(ip6addr) ((u16_t)(htonl((ip6addr)->addr[2])) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK7(ip6addr) ((u16_t)(htonl((ip6addr)->addr[3]) >> 16) & 0xffff)
|
#define IP6_ADDR_BLOCK7(ip6addr) ((u16_t)(htonl((ip6addr)->addr[3]) >> 16) & 0xffff)
|
||||||
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK8(ip6addr) ((u16_t)(htonl((ip6addr)->addr[3])) & 0xffff)
|
#define IP6_ADDR_BLOCK8(ip6addr) ((u16_t)(htonl((ip6addr)->addr[3])) & 0xffff)
|
||||||
|
|
||||||
/** Copy IPv6 address - faster than ip6_addr_set: no NULL check */
|
/** Copy IPv6 address - faster than ip6_addr_set: no NULL check */
|
||||||
|
@ -203,7 +211,7 @@ Little-endian version, stored in network order (no htonl). */
|
||||||
#define ip6_addr_ismulticast_orglocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff080000UL))
|
#define ip6_addr_ismulticast_orglocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff080000UL))
|
||||||
#define ip6_addr_ismulticast_global(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff0e0000UL))
|
#define ip6_addr_ismulticast_global(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff0e0000UL))
|
||||||
|
|
||||||
/* TODO define get/set for well-know multicast addresses, e.g. ff02::1 */
|
/* @todo define get/set for well-know multicast addresses, e.g. ff02::1 */
|
||||||
#define ip6_addr_isallnodes_iflocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff010000UL)) && \
|
#define ip6_addr_isallnodes_iflocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff010000UL)) && \
|
||||||
((ip6addr)->addr[1] == 0UL) && \
|
((ip6addr)->addr[1] == 0UL) && \
|
||||||
((ip6addr)->addr[2] == 0UL) && \
|
((ip6addr)->addr[2] == 0UL) && \
|
||||||
|
|
|
@ -332,7 +332,7 @@ PACK_STRUCT_END
|
||||||
#define ND6_TMR_INTERVAL 1000
|
#define ND6_TMR_INTERVAL 1000
|
||||||
|
|
||||||
/* Router tables. */
|
/* Router tables. */
|
||||||
/* TODO make these static? and entries accessible through API? */
|
/* @todo make these static? and entries accessible through API? */
|
||||||
extern struct nd6_neighbor_cache_entry neighbor_cache[];
|
extern struct nd6_neighbor_cache_entry neighbor_cache[];
|
||||||
extern struct nd6_destination_cache_entry destination_cache[];
|
extern struct nd6_destination_cache_entry destination_cache[];
|
||||||
extern struct nd6_prefix_list_entry prefix_list[];
|
extern struct nd6_prefix_list_entry prefix_list[];
|
||||||
|
|
|
@ -122,7 +122,7 @@ typedef void (*tcp_err_fn)(void *arg, err_t err);
|
||||||
*
|
*
|
||||||
* @param arg Additional argument to pass to the callback function (@see tcp_arg())
|
* @param arg Additional argument to pass to the callback function (@see tcp_arg())
|
||||||
* @param tpcb The connection pcb which is connected
|
* @param tpcb The connection pcb which is connected
|
||||||
* @param err An unused error code, always ERR_OK currently ;-) TODO!
|
* @param err An unused error code, always ERR_OK currently ;-) @todo!
|
||||||
* Only return ERR_ABRT if you have called tcp_abort from within the
|
* Only return ERR_ABRT if you have called tcp_abort from within the
|
||||||
* callback function!
|
* callback function!
|
||||||
*
|
*
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
#define EUI64_H
|
#define EUI64_H
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* @todo:
|
||||||
*
|
*
|
||||||
* Maybe this should be done by processing struct in6_addr directly...
|
* Maybe this should be done by processing struct in6_addr directly...
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -320,7 +320,7 @@ lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compress NH?
|
/* Compress NH?
|
||||||
* Only if UDP for now. TODO support other NH compression. */
|
* Only if UDP for now. @todo support other NH compression. */
|
||||||
if (IP6H_NEXTH(ip6hdr) == IP6_NEXTH_UDP) {
|
if (IP6H_NEXTH(ip6hdr) == IP6_NEXTH_UDP) {
|
||||||
buffer[ieee_header_len] |= 0x04;
|
buffer[ieee_header_len] |= 0x04;
|
||||||
} else {
|
} else {
|
||||||
|
@ -364,7 +364,7 @@ lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
|
||||||
|
|
||||||
/* Compress destination address */
|
/* Compress destination address */
|
||||||
if (ip6_addr_ismulticast(ip_2_ip6(&ip_data.current_iphdr_dest))) {
|
if (ip6_addr_ismulticast(ip_2_ip6(&ip_data.current_iphdr_dest))) {
|
||||||
/* TODO support stateful multicast address compression */
|
/* @todo support stateful multicast address compression */
|
||||||
|
|
||||||
buffer[ieee_header_len + 1] |= 0x08;
|
buffer[ieee_header_len + 1] |= 0x08;
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
|
||||||
|
|
||||||
/* Compress UDP header? */
|
/* Compress UDP header? */
|
||||||
if (IP6H_NEXTH(ip6hdr) == IP6_NEXTH_UDP) {
|
if (IP6H_NEXTH(ip6hdr) == IP6_NEXTH_UDP) {
|
||||||
/* TODO support optional checksum compression */
|
/* @todo support optional checksum compression */
|
||||||
|
|
||||||
buffer[ieee_header_len + lowpan6_header_len] = 0xf0;
|
buffer[ieee_header_len + lowpan6_header_len] = 0xf0;
|
||||||
|
|
||||||
|
@ -489,7 +489,7 @@ lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
|
||||||
#if LWIP_6LOWPAN_HW_CRC
|
#if LWIP_6LOWPAN_HW_CRC
|
||||||
/* Leave blank, will be filled by HW. */
|
/* Leave blank, will be filled by HW. */
|
||||||
#else /* LWIP_6LOWPAN_HW_CRC */
|
#else /* LWIP_6LOWPAN_HW_CRC */
|
||||||
/* TODO calculate CRC */
|
/* @todo calculate CRC */
|
||||||
#endif /* LWIP_6LOWPAN_HW_CRC */
|
#endif /* LWIP_6LOWPAN_HW_CRC */
|
||||||
|
|
||||||
/* Calculate frame length */
|
/* Calculate frame length */
|
||||||
|
@ -521,7 +521,7 @@ lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
|
||||||
#if LWIP_6LOWPAN_HW_CRC
|
#if LWIP_6LOWPAN_HW_CRC
|
||||||
/* Leave blank, will be filled by HW. */
|
/* Leave blank, will be filled by HW. */
|
||||||
#else /* LWIP_6LOWPAN_HW_CRC */
|
#else /* LWIP_6LOWPAN_HW_CRC */
|
||||||
/* TODO calculate CRC */
|
/* @todo calculate CRC */
|
||||||
#endif /* LWIP_6LOWPAN_HW_CRC */
|
#endif /* LWIP_6LOWPAN_HW_CRC */
|
||||||
|
|
||||||
/* Calculate frame length */
|
/* Calculate frame length */
|
||||||
|
@ -544,7 +544,7 @@ lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
|
||||||
#if LWIP_6LOWPAN_HW_CRC
|
#if LWIP_6LOWPAN_HW_CRC
|
||||||
/* Leave blank, will be filled by HW. */
|
/* Leave blank, will be filled by HW. */
|
||||||
#else /* LWIP_6LOWPAN_HW_CRC */
|
#else /* LWIP_6LOWPAN_HW_CRC */
|
||||||
/* TODO calculate CRC */
|
/* @todo calculate CRC */
|
||||||
#endif /* LWIP_6LOWPAN_HW_CRC */
|
#endif /* LWIP_6LOWPAN_HW_CRC */
|
||||||
|
|
||||||
/* Calculate frame length */
|
/* Calculate frame length */
|
||||||
|
@ -640,7 +640,7 @@ lowpan6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We have a unicast destination IP address */
|
/* We have a unicast destination IP address */
|
||||||
/* TODO anycast? */
|
/* @todo anycast? */
|
||||||
|
|
||||||
#if LWIP_6LOWPAN_INFER_SHORT_ADDRESS
|
#if LWIP_6LOWPAN_INFER_SHORT_ADDRESS
|
||||||
if (src.addr_len == 2) {
|
if (src.addr_len == 2) {
|
||||||
|
@ -672,7 +672,7 @@ lowpan6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
|
||||||
neighbor_cache[i].state = ND6_DELAY;
|
neighbor_cache[i].state = ND6_DELAY;
|
||||||
neighbor_cache[i].counter.delay_time = LWIP_ND6_DELAY_FIRST_PROBE_TIME;
|
neighbor_cache[i].counter.delay_time = LWIP_ND6_DELAY_FIRST_PROBE_TIME;
|
||||||
}
|
}
|
||||||
/* TODO should we send or queue if PROBE? send for now, to let unicast NS pass. */
|
/* @todo should we send or queue if PROBE? send for now, to let unicast NS pass. */
|
||||||
if ((neighbor_cache[i].state == ND6_REACHABLE) ||
|
if ((neighbor_cache[i].state == ND6_REACHABLE) ||
|
||||||
(neighbor_cache[i].state == ND6_DELAY) ||
|
(neighbor_cache[i].state == ND6_DELAY) ||
|
||||||
(neighbor_cache[i].state == ND6_PROBE)) {
|
(neighbor_cache[i].state == ND6_PROBE)) {
|
||||||
|
@ -826,7 +826,7 @@ lowpan6_decompress(struct pbuf * p, struct ieee_802154_addr * src, struct ieee_8
|
||||||
if (lowpan6_buffer[1] & 0x08) {
|
if (lowpan6_buffer[1] & 0x08) {
|
||||||
/* Multicast destination */
|
/* Multicast destination */
|
||||||
if (lowpan6_buffer[1] & 0x04) {
|
if (lowpan6_buffer[1] & 0x04) {
|
||||||
/* TODO support stateful multicast addressing */
|
/* @todo support stateful multicast addressing */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
pbuf_free(q);
|
pbuf_free(q);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -912,7 +912,7 @@ lowpan6_decompress(struct pbuf * p, struct ieee_802154_addr * src, struct ieee_8
|
||||||
udphdr = (struct udp_hdr *)((u8_t *)q->payload + ip6_offset);
|
udphdr = (struct udp_hdr *)((u8_t *)q->payload + ip6_offset);
|
||||||
|
|
||||||
if (lowpan6_buffer[lowpan6_offset] & 0x04) {
|
if (lowpan6_buffer[lowpan6_offset] & 0x04) {
|
||||||
/* TODO support checksum decompress */
|
/* @todo support checksum decompress */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
pbuf_free(q);
|
pbuf_free(q);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -944,7 +944,7 @@ lowpan6_decompress(struct pbuf * p, struct ieee_802154_addr * src, struct ieee_8
|
||||||
|
|
||||||
ip6_offset += UDP_HLEN;
|
ip6_offset += UDP_HLEN;
|
||||||
} else {
|
} else {
|
||||||
/* TODO support NHC other than UDP */
|
/* @todo support NHC other than UDP */
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
pbuf_free(q);
|
pbuf_free(q);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -980,7 +980,7 @@ lowpan6_input(struct pbuf * p, struct netif *netif)
|
||||||
|
|
||||||
MIB2_STATS_NETIF_ADD(netif, ifinoctets, p->tot_len);
|
MIB2_STATS_NETIF_ADD(netif, ifinoctets, p->tot_len);
|
||||||
|
|
||||||
/* Analyze header. TODO validate. */
|
/* Analyze header. @todo validate. */
|
||||||
puc = (u8_t*)p->payload;
|
puc = (u8_t*)p->payload;
|
||||||
datagram_offset = 5;
|
datagram_offset = 5;
|
||||||
if ((puc[1] & 0x0c) == 0x0c) {
|
if ((puc[1] & 0x0c) == 0x0c) {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* @todo:
|
||||||
* Randomize fsm id on link/init.
|
* Randomize fsm id on link/init.
|
||||||
* Deal with variable outgoing MTU.
|
* Deal with variable outgoing MTU.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
#if PPP_SUPPORT && PPP_IPV4_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
#if PPP_SUPPORT && PPP_IPV4_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* @todo:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0 /* UNUSED */
|
#if 0 /* UNUSED */
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* @todo:
|
||||||
*
|
*
|
||||||
* Proxy Neighbour Discovery.
|
* Proxy Neighbour Discovery.
|
||||||
*
|
*
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* @todo:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0 /* UNUSED */
|
#if 0 /* UNUSED */
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
#if PPP_SUPPORT && PAP_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
#if PPP_SUPPORT && PAP_SUPPORT /* don't build if not configured for use in lwipopts.h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* @todo:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0 /* UNUSED */
|
#if 0 /* UNUSED */
|
||||||
|
|
|
@ -280,7 +280,7 @@ START_TEST(test_tcp_fast_retx_recover)
|
||||||
/*EXPECT_RET(txcounters.num_tx_calls == 1);*/
|
/*EXPECT_RET(txcounters.num_tx_calls == 1);*/
|
||||||
EXPECT_RET(pcb->dupacks == 3);
|
EXPECT_RET(pcb->dupacks == 3);
|
||||||
memset(&txcounters, 0, sizeof(txcounters));
|
memset(&txcounters, 0, sizeof(txcounters));
|
||||||
/* TODO: check expected data?*/
|
/* @todo: check expected data?*/
|
||||||
|
|
||||||
/* send data5, not output yet */
|
/* send data5, not output yet */
|
||||||
err = tcp_write(pcb, data5, sizeof(data5), TCP_WRITE_FLAG_COPY);
|
err = tcp_write(pcb, data5, sizeof(data5), TCP_WRITE_FLAG_COPY);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user