您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uip_ds6_list_loop函数代码示例

51自学网 2021-06-03 09:08:05
  C++
这篇教程C++ uip_ds6_list_loop函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uip_ds6_list_loop函数的典型用法代码示例。如果您正苦于以下问题:C++ uip_ds6_list_loop函数的具体用法?C++ uip_ds6_list_loop怎么用?C++ uip_ds6_list_loop使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了uip_ds6_list_loop函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: uip_ds6_route_add

/*---------------------------------------------------------------------------*/uip_ds6_route_t *uip_ds6_route_add(uip_ipaddr_t * ipaddr, u8_t length, uip_ipaddr_t * nexthop,                  u8_t metric){  if(uip_ds6_list_loop     ((uip_ds6_element_t *) uip_ds6_routing_table, UIP_DS6_ROUTE_NB,      sizeof(uip_ds6_route_t), ipaddr, length,      (uip_ds6_element_t **) & locroute) == FREESPACE) {    locroute->isused = 1;    uip_ipaddr_copy(&(locroute->ipaddr), ipaddr);    locroute->length = length;    uip_ipaddr_copy(&(locroute->nexthop), nexthop);    locroute->metric = metric;    PRINTF("DS6: adding route:");    PRINT6ADDR(ipaddr);    PRINTF(" via ");    PRINT6ADDR(nexthop);    PRINTF("/n");  }  return locroute;}
开发者ID:EmuxEvans,项目名称:deContiki,代码行数:26,


示例2: uip_ds6_defrt_add

/*---------------------------------------------------------------------------*/uip_ds6_defrt_t *uip_ds6_defrt_add(uip_ipaddr_t *ipaddr, unsigned long interval){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_defrt_list, UIP_DS6_DEFRT_NB,      sizeof(uip_ds6_defrt_t), ipaddr, 128,      (uip_ds6_element_t **)&locdefrt) == FREESPACE) {    locdefrt->isused = 1;    uip_ipaddr_copy(&locdefrt->ipaddr, ipaddr);    if(interval != 0) {      stimer_set(&locdefrt->lifetime, interval);      locdefrt->isinfinite = 0;    } else {      locdefrt->isinfinite = 1;    }    PRINTF("Adding defrouter with ip addr ");    PRINT6ADDR(&locdefrt->ipaddr);    PRINTF("/n");    ANNOTATE("#L %u 1/n", ipaddr->u8[sizeof(uip_ipaddr_t) - 1]);    return locdefrt;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:27,


示例3: uip_ds6_addr_add

/*---------------------------------------------------------------------------*/uip_ds6_addr_t *uip_ds6_addr_add(uip_ipaddr_t * ipaddr, unsigned long vlifetime, u8_t type){  if(uip_ds6_list_loop     ((uip_ds6_element_t *) uip_ds6_if.addr_list, UIP_DS6_ADDR_NB,      sizeof(uip_ds6_addr_t), ipaddr, 128,      (uip_ds6_element_t **) & locaddr) == FREESPACE) {    locaddr->isused = 1;    uip_ipaddr_copy(&locaddr->ipaddr, ipaddr);	if (uip_is_addr_link_local(ipaddr)) {		locaddr->state = ADDR_PREFERRED;	} else {		locaddr->state = ADDR_TENTATIVE;		}    locaddr->type = type;    if(vlifetime == 0) {      locaddr->isinfinite = 1;    } else {      locaddr->isinfinite = 0;      stimer_set(&locaddr->vlifetime, vlifetime);    }#if UIP_CONF_ROUTER	/* 	 * If 6LoWPAN-ND optimizations are implemented, hosts do not join the 	 * Solicited-node multicast address.	 */	uip_create_solicited_node(ipaddr, &loc_fipaddr);  uip_ds6_maddr_add(&loc_fipaddr);#endif /* UIP_CONF_ROUTER */    return locaddr;  }  return NULL;}
开发者ID:EmuxEvans,项目名称:deContiki,代码行数:35,


示例4: uip_ds6_prefix_add

/*---------------------------------------------------------------------------*/uip_ds6_prefix_t *uip_ds6_prefix_add(uip_ipaddr_t *ipaddr, uint8_t ipaddrlen,                   uint8_t advertise, uint8_t flags, unsigned long vtime,                   unsigned long ptime){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_prefix_list, UIP_DS6_PREFIX_NB,      sizeof(uip_ds6_prefix_t), ipaddr, ipaddrlen,      (uip_ds6_element_t **)&locprefix) == FREESPACE) {    locprefix->isused = 1;    uip_ipaddr_copy(&locprefix->ipaddr, ipaddr);    locprefix->length = ipaddrlen;    locprefix->advertise = advertise;    locprefix->l_a_reserved = flags;    locprefix->vlifetime = vtime;    locprefix->plifetime = ptime;    PRINTF("Adding prefix ");    PRINT6ADDR(&locprefix->ipaddr);    PRINTF("length %u, flags %x, Valid lifetime %lx, Preffered lifetime %lx/n",       ipaddrlen, flags, vtime, ptime);    return locprefix;  } else {    PRINTF("No more space in Prefix list/n");  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:27,


示例5: uip_ds6_addr_add

/*---------------------------------------------------------------------------*/uip_ds6_addr_t *uip_ds6_addr_add(uip_ipaddr_t *ipaddr, unsigned long vlifetime, uint8_t type){  loc_loop_state = uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.addr_list, UIP_DS6_ADDR_NB,      sizeof(uip_ds6_addr_t), ipaddr, 128,      (uip_ds6_element_t **)&locaddr);  if(loc_loop_state == NOSPACE) {    uip_ds6_addr_clean();   }  if(loc_loop_state == FREESPACE) {    locaddr->isused = 1;    uip_ipaddr_copy(&locaddr->ipaddr, ipaddr);    locaddr->type = type;    if(vlifetime == 0) {      locaddr->isinfinite = 1;    } else {      locaddr->isinfinite = 0;      stimestamp_set(&(locaddr->vlifetime), vlifetime);    }    locaddr->state = ADDR_PREFERRED;    uip_create_solicited_node(ipaddr, &loc_fipaddr);    uip_ds6_maddr_add(&loc_fipaddr);    return locaddr;  }  return NULL;}
开发者ID:Feandil,项目名称:RPL_Gateway,代码行数:30,


示例6: uip_ds6_addr_add

/*---------------------------------------------------------------------------*/uip_ds6_addr_t *uip_ds6_addr_add(uip_ipaddr_t *ipaddr, unsigned long vlifetime, uint8_t type){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.addr_list, UIP_DS6_ADDR_NB,      sizeof(uip_ds6_addr_t), ipaddr, 128,      (uip_ds6_element_t **)&locaddr) == FREESPACE) {    locaddr->isused = 1;    uip_ipaddr_copy(&locaddr->ipaddr, ipaddr);    locaddr->type = type;    if(vlifetime == 0) {      locaddr->isinfinite = 1;    } else {      locaddr->isinfinite = 0;      stimer_set(&(locaddr->vlifetime), vlifetime);    }#if UIP_ND6_DEF_MAXDADNS > 0    locaddr->state = ADDR_TENTATIVE;    timer_set(&locaddr->dadtimer,              random_rand() % (UIP_ND6_MAX_RTR_SOLICITATION_DELAY *                               CLOCK_SECOND));    locaddr->dadnscount = 0;#else /* UIP_ND6_DEF_MAXDADNS > 0 */    locaddr->state = ADDR_PREFERRED;#endif /* UIP_ND6_DEF_MAXDADNS > 0 */    uip_create_solicited_node(ipaddr, &loc_fipaddr);    uip_ds6_maddr_add(&loc_fipaddr);    return locaddr;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:32,


示例7: uip_ds6_route_add

/*---------------------------------------------------------------------------*/uip_ds6_route_t *uip_ds6_route_add(uip_ipaddr_t *ipaddr, uint8_t length, uip_ipaddr_t *nexthop,                  uint8_t metric){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_routing_table, UIP_DS6_ROUTE_NB,      sizeof(uip_ds6_route_t), ipaddr, length,      (uip_ds6_element_t **)&locroute) == FREESPACE) {    locroute->isused = 1;    uip_ipaddr_copy(&(locroute->ipaddr), ipaddr);    locroute->length = length;    uip_ipaddr_copy(&(locroute->nexthop), nexthop);    locroute->metric = metric;#ifdef UIP_DS6_ROUTE_STATE_TYPE    memset(&locroute->state, 0, sizeof(UIP_DS6_ROUTE_STATE_TYPE));#endif    PRINTF("DS6: adding route: ");    PRINT6ADDR(ipaddr);    PRINTF(" via ");    PRINT6ADDR(nexthop);    PRINTF("/n");    ANNOTATE("#L %u 1;blue/n", nexthop->u8[sizeof(uip_ipaddr_t) - 1]);  }  return locroute;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:29,


示例8: uip_ds6_defrt_lookup

/*---------------------------------------------------------------------------*/uip_ds6_defrt_t *uip_ds6_defrt_lookup(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop((uip_ds6_element_t *)uip_ds6_defrt_list,		       UIP_DS6_DEFRT_NB, sizeof(uip_ds6_defrt_t), ipaddr, 128,		       (uip_ds6_element_t **)&locdefrt) == FOUND) {    return locdefrt;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:11,


示例9: uip_ds6_aaddr_lookup

/*---------------------------------------------------------------------------*/uip_ds6_aaddr_t *uip_ds6_aaddr_lookup(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop((uip_ds6_element_t *)uip_ds6_if.aaddr_list,		       UIP_DS6_AADDR_NB, sizeof(uip_ds6_aaddr_t), ipaddr, 128,		       (uip_ds6_element_t **)&locaaddr) == FOUND) {    return locaaddr;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:11,


示例10: uip_ds6_maddr_lookup

/*---------------------------------------------------------------------------*/uip_ds6_maddr_t *uip_ds6_maddr_lookup(const uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.maddr_list, UIP_DS6_MADDR_NB,      sizeof(uip_ds6_maddr_t), (void*)ipaddr, 128,      (uip_ds6_element_t **)&locmaddr) == FOUND) {    return locmaddr;  }  return NULL;}
开发者ID:chanderbgoel,项目名称:contiki,代码行数:12,


示例11: uip_ds6_route_info_lookup

uip_ds6_route_info_t *uip_ds6_route_info_lookup(uip_ipaddr_t * ipaddr, uint8_t ipaddrlen){    if(uip_ds6_list_loop((uip_ds6_element_t *) uip_ds6_route_info_list,                         UIP_DS6_ROUTE_INFO_NB, sizeof(uip_ds6_route_info_t),                         ipaddr, ipaddrlen,                         (uip_ds6_element_t **) & locrtinfo) == FOUND) {        return locrtinfo;    }    return NULL;}
开发者ID:ioannisg,项目名称:Contiki_ATSAM4EXPRO,代码行数:11,


示例12: uip_ds6_prefix_lookup

/*---------------------------------------------------------------------------*/uip_ds6_prefix_t *uip_ds6_prefix_lookup(uip_ipaddr_t *ipaddr, uint8_t ipaddrlen){  if(uip_ds6_list_loop((uip_ds6_element_t *)uip_ds6_prefix_list,		       UIP_DS6_PREFIX_NB, sizeof(uip_ds6_prefix_t),		       ipaddr, ipaddrlen,		       (uip_ds6_element_t **)&locprefix) == FOUND) {    return locprefix;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:12,


示例13: uip_ds6_dup_addr_lookup

/*---------------------------------------------------------------------------*/uip_ds6_dup_addr_t *uip_ds6_dup_addr_lookup(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop       ((uip_ds6_element_t *)uip_ds6_dup_addr_list, UIP_DS6_DUPADDR_NB,       sizeof(uip_ds6_dup_addr_t), ipaddr, 128,       (uip_ds6_element_t **)&locdad) == FOUND) {    return locdad;  }  return NULL;}
开发者ID:sdefauw,项目名称:contiki,代码行数:12,


示例14: uip_ds6_nbr_lookup

/*---------------------------------------------------------------------------*/uip_ds6_nbr_t *uip_ds6_nbr_lookup(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *) uip_ds6_nbr_cache, UIP_DS6_NBR_NB,      sizeof(uip_ds6_nbr_t), ipaddr, 128,      (uip_ds6_element_t **) & locnbr) == FOUND) {    return locnbr;  }  return NULL;}
开发者ID:EmuxEvans,项目名称:deContiki,代码行数:12,


示例15: node_info_lookup

node_info_t *node_info_lookup(uip_ipaddr_t * ipaddr){  node_info_t *node;  if(uip_ds6_list_loop((uip_ds6_element_t *) node_info_table,                       UIP_DS6_ROUTE_NB, sizeof(node_info_t), ipaddr, 128,                       (uip_ds6_element_t **) & node) == FOUND) {    return node;  }  return NULL;}
开发者ID:Ayesha-N,项目名称:6lbr,代码行数:12,


示例16: pgw_nbr_add

/*---------------------------------------------------------------------------*/pgw_nbr_t*pgw_nbr_add(uip_ipaddr_t * ipaddr, uip_lladdr_t * lladdr,                u8_t isrouter, u8_t state){  int r;  r = uip_ds6_list_loop((uip_ds6_element_t *)pgw_6ln_cache, UIP_DS6_NBR_NB,      									sizeof(pgw_nbr_t), ipaddr, 128, (uip_ds6_element_t **)&locnbr);  if(r == FREESPACE) {    locnbr->isused = 1;    uip_ipaddr_copy(&(locnbr->ipaddr), ipaddr);    if(lladdr != NULL) {      memcpy(&(locnbr->lladdr), lladdr, UIP_LLADDR_LEN);    } else {      memset(&(locnbr->lladdr), 0, UIP_LLADDR_LEN);    }    locnbr->isrouter = isrouter;    locnbr->state = state;		if(locnbr->state == PGW_GARBAGE_COLLECTIBLE) {			stimer_set(&(locnbr->reachable), GARBAGE_COLLECTIBLE_NCE_LIFETIME);		} else if (locnbr->state == PGW_TENTATIVE){			stimer_set(&(locnbr->reachable), TENTATIVE_NCE_LIFETIME);		}		locnbr->aro_pending = 0;		locnbr->ra_pending = 0;    locnbr->last_lookup = clock_time();    return locnbr;  } else if(r == NOSPACE) {    /* We did not find any empty slot on the neighbor list, so we need       to remove one old entry to make room. */    pgw_nbr_t *n, *oldest;    clock_time_t oldest_time;    oldest = NULL;    oldest_time = clock_time();    for(n = pgw_6ln_cache; n < &pgw_6ln_cache[UIP_DS6_NBR_NB]; n++) {      if(n->isused) {        if((n->last_lookup < oldest_time) && (n->state == PGW_GARBAGE_COLLECTIBLE)) {        	/* We do not want to remove any registered or tentative entry */          oldest = n;          oldest_time = n->last_lookup;        }      }    }    if(oldest != NULL) {      pgw_nbr_rm(oldest);      return pgw_nbr_add(ipaddr, lladdr, isrouter, state);    }  }  return NULL;}
开发者ID:EmuxEvans,项目名称:6lp-gw,代码行数:54,


示例17: uip_ds6_maddr_add

/*---------------------------------------------------------------------------*/uip_ds6_maddr_t *uip_ds6_maddr_add(const uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.maddr_list, UIP_DS6_MADDR_NB,      sizeof(uip_ds6_maddr_t), (void*)ipaddr, 128,      (uip_ds6_element_t **)&locmaddr) == FREESPACE) {    locmaddr->isused = 1;    uip_ipaddr_copy(&locmaddr->ipaddr, ipaddr);    return locmaddr;  }  return NULL;}
开发者ID:chanderbgoel,项目名称:contiki,代码行数:14,


示例18: uip_ds6_aaddr_add

/*---------------------------------------------------------------------------*/uip_ds6_aaddr_t *uip_ds6_aaddr_add(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.aaddr_list, UIP_DS6_AADDR_NB,      sizeof(uip_ds6_aaddr_t), ipaddr, 128,      (uip_ds6_element_t **)&locaaddr) == FREESPACE) {    locaaddr->isused = 1;    uip_ipaddr_copy(&locaaddr->ipaddr, ipaddr);    return locaaddr;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:14,


示例19: uip_ds6_maddr_add

/*---------------------------------------------------------------------------*/uip_ds6_maddr_t *uip_ds6_maddr_add(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.maddr_list, UIP_DS6_MADDR_NB,      sizeof(uip_ds6_maddr_t), ipaddr, 128,      (uip_ds6_element_t **)&locmaddr) == FREESPACE) {    locmaddr->isused = 1;    locmaddr->isreported = 0;    uip_ipaddr_copy(&locmaddr->ipaddr, ipaddr);    mld_report_now();    return locmaddr;  }  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:16,


示例20: uip_ds6_addr_lookup

/*---------------------------------------------------------------------------*/uip_ds6_addr_t *uip_ds6_addr_lookup(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.addr_list, UIP_DS6_ADDR_NB,      sizeof(uip_ds6_addr_t), ipaddr, 128,      (uip_ds6_element_t **)&locaddr) == FOUND) {    if((!locaddr->isinfinite) && (stimestamp_expired(&locaddr->vlifetime))) {      uip_ds6_addr_rm(locaddr);      return NULL;    }    return locaddr;  }  return NULL;}
开发者ID:Feandil,项目名称:RPL_Gateway,代码行数:16,


示例21: uip_ds6_maddr_lookup

/*---------------------------------------------------------------------------*/uip_ds6_maddr_t *uip_ds6_maddr_lookup(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.maddr_list, UIP_DS6_MADDR_NB,      sizeof(uip_ds6_maddr_t), ipaddr, 128,      (uip_ds6_element_t **)&locmaddr) == FOUND) {    if (uip_is_addr_solicited_node(&locmaddr->ipaddr)) {      return uip_ds6_maddr_solicited_node_verify(locmaddr);    } else {      return locmaddr;    }  }  return NULL;}
开发者ID:Feandil,项目名称:RPL_Gateway,代码行数:16,


示例22: uip_ds6_route_add

/*---------------------------------------------------------------------------*/uip_ds6_route_t *uip_ds6_route_add(uip_ipaddr_t *ipaddr, uint8_t length, uip_ipaddr_t *nexthop,                  uint8_t metric){  loc_loop_state = uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_routing_table, UIP_DS6_ROUTE_NB,      sizeof(uip_ds6_route_t), ipaddr, length,      (uip_ds6_element_t **)&locroute);#ifdef UIP_DS6_ROUTE_STATE_CLEAN  if (loc_loop_state == NOSPACE) {    for(locroute = uip_ds6_routing_table;        locroute < uip_ds6_routing_table + UIP_DS6_ROUTE_NB;        ++locroute) {      if(locroute->isused          && (UIP_DS6_ROUTE_STATE_CLEAN(&locroute->state))) {        uip_ds6_route_rm(locroute);        loc_loop_state = FREESPACE;        break;      }    }  }  if (loc_loop_state == NOSPACE) {    locroute = NULL;  }#endif /* UIP_DS6_ROUTE_STATE_TYPE */  if (loc_loop_state == FREESPACE) {    locroute->isused = 1;    uip_ipaddr_copy(&(locroute->ipaddr), ipaddr);    locroute->length = length;    uip_ipaddr_copy(&(locroute->nexthop), nexthop);    locroute->metric = metric;#ifdef UIP_DS6_ROUTE_STATE_TYPE    memset (&(locroute->state),0,sizeof(UIP_DS6_ROUTE_STATE_TYPE));#endif    PRINTF("DS6: adding route: ");    PRINT6ADDR(ipaddr);    PRINTF(" via ");    PRINT6ADDR(nexthop);    PRINTF("/n");    ANNOTATE("#L %u 1;blue/n", nexthop->u8[sizeof(uip_ipaddr_t) - 1]);  }  return locroute;}
开发者ID:Feandil,项目名称:RPL_Gateway,代码行数:49,


示例23: uip_ds6_maddr_add

/*---------------------------------------------------------------------------*/uip_ds6_maddr_t *uip_ds6_maddr_add(uip_ipaddr_t *ipaddr){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_if.maddr_list, UIP_DS6_MADDR_NB,      sizeof(uip_ds6_maddr_t), ipaddr, 128,      (uip_ds6_element_t **)&locmaddr) == FREESPACE) {    locmaddr->isused = 1;    uip_ipaddr_copy(&locmaddr->ipaddr, ipaddr);#if UIP_CONF_MLD    uip_icmp6_mldv1_schedule_report(locmaddr);#endif    return locmaddr;  }  return NULL;}
开发者ID:dv1990,项目名称:hexabus,代码行数:17,


示例24: uip_ds6_dup_addr_add

/*---------------------------------------------------------------------------*/uip_ds6_dup_addr_t *uip_ds6_dup_addr_add(uip_ipaddr_t *ipaddr, uint16_t lifetime,                     uip_lladdr_t *eui64){  if(uip_ds6_list_loop       ((uip_ds6_element_t *)uip_ds6_dup_addr_list, UIP_DS6_DUPADDR_NB,       sizeof(uip_ds6_dup_addr_t), ipaddr, 128,       (uip_ds6_element_t **)&locdad) == FREESPACE) {    locdad->isused = 1;    uip_ipaddr_copy(&locdad->ipaddr, ipaddr);    if(lifetime != 0) {      stimer_set(&locdad->lifetime, lifetime * 60);    }    memcpy(&locdad->eui64, eui64, UIP_LLADDR_LEN);    return locdad;  }  return NULL;}
开发者ID:sdefauw,项目名称:contiki,代码行数:19,


示例25: ule6loGI_removeMulticastAddr

/** * Remove a multicast address from the list. */ule6lo_status_t ule6loGI_removeMulticastAddr(ule6lo_ip6addr_t* ipaddress) {  ule6lo_status_t status = STATUS_NO_DEVICE;#if UIP_CONF_MLD  uip_ds6_maddr_t *locmaddr;  if(uip_ds6_list_loop      ((uip_ds6_element_t *)uip_ds6_if.maddr_list, UIP_DS6_MADDR_NB,       sizeof(uip_ds6_maddr_t), (void*)ipaddress, 128,       (uip_ds6_element_t **)&locmaddr) == FOUND) {    locmaddr->isused = 0;    locmaddr->report_count = 0;    stimer_set(&(locmaddr->report_timeout), 0);    uip_ds6_maddr_rm(locmaddr);    memset(&locmaddr->ipaddr, 0x00, sizeof(uip_ipaddr_t));    status = STATUS_SUCCESS;  }#endif  return status;}
开发者ID:ULE-Alliance,项目名称:ULE_6LowPan,代码行数:21,


示例26: node_info_add

node_info_t *node_info_add(uip_ipaddr_t * ipaddr){  node_info_t *node = NULL;  if(uip_ds6_list_loop     ((uip_ds6_element_t *) node_info_table, UIP_DS6_ROUTE_NB,      sizeof(node_info_t), ipaddr, 128,      (uip_ds6_element_t **) & node) == FREESPACE) {    memset(node, 0, sizeof(node_info_t));    node->isused = 1;    uip_ipaddr_copy(&(node->ipaddr), ipaddr);    node->stats_start = clock_time();    LOG6LBR_6ADDR(DEBUG, ipaddr, "New node created ");  } else {    LOG6LBR_6ADDR(ERROR, ipaddr, "Not enough memory to create node ");  }  return node;}
开发者ID:Ayesha-N,项目名称:6lbr,代码行数:19,


示例27: uip_ds6_prefix_add

/*---------------------------------------------------------------------------*/uip_ds6_prefix_t *uip_ds6_prefix_add(uip_ipaddr_t *ipaddr, uint8_t ipaddrlen,                   uint8_t advertise, uint8_t flags, unsigned long vtime,                   unsigned long ptime){  if(uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_prefix_list, UIP_DS6_PREFIX_NB,      sizeof(uip_ds6_prefix_t), ipaddr, ipaddrlen,      (uip_ds6_element_t **)&locprefix) == FREESPACE) {    locprefix->isused = 1;    uip_ipaddr_copy(&locprefix->ipaddr, ipaddr);    locprefix->length = ipaddrlen;    locprefix->advertise = advertise;    locprefix->l_a_reserved = flags;    locprefix->vlifetime_val = vtime;    locprefix->plifetime = ptime;#if UIP_CONF_6LR    if(vtime != 0) {      stimer_set(&(locprefix->vlifetime), vtime);      locprefix->isinfinite = 0;    } else {      locprefix->isinfinite = 1;    }#endif /* UIP_CONF_6LR */#if UIP_CONF_6LBR    /* Increase version in border router */    locbr = uip_ds6_br_lookup(NULL);    if(locbr != NULL) {      locbr->state = BR_ST_NEW_VERSION;    }#endif /* UIP_CONF_6LBR */    PRINTF("Adding prefix ");    PRINT6ADDR(&locprefix->ipaddr);    PRINTF("length %u, flags %x, Valid lifetime %lx, Preffered lifetime %lx/n",       ipaddrlen, flags, vtime, ptime);    return locprefix;  } else {    PRINTF("No more space in Prefix list/n");  }  return NULL;}
开发者ID:sdefauw,项目名称:contiki,代码行数:42,


示例28: uip_ds6_route_info_add

uip_ds6_route_info_t *uip_ds6_route_info_add(uip_ipaddr_t * ipaddr, uint8_t ipaddrlen,                       uint8_t flags, unsigned long rlifetime){    if(uip_ds6_list_loop            ((uip_ds6_element_t *) uip_ds6_route_info_list, UIP_DS6_ROUTE_INFO_NB,             sizeof(uip_ds6_route_info_t), ipaddr, ipaddrlen,             (uip_ds6_element_t **) & locrtinfo) == FREESPACE) {        locrtinfo->isused = 1;        uip_ipaddr_copy(&locrtinfo->ipaddr, ipaddr);        locrtinfo->length = ipaddrlen;        locrtinfo->flags = flags;        locrtinfo->lifetime = rlifetime;        PRINTF("Adding route information: length=%u, flags=%x, route lifetime=%lu, dest=",               ipaddrlen, flags, rlifetime);        return locrtinfo;    } else {        PRINTF("No more space in route information list/n");    }    return NULL;}
开发者ID:ioannisg,项目名称:Contiki_ATSAM4EXPRO,代码行数:21,


示例29: uip_ds6_nbr_add

/*---------------------------------------------------------------------------*/uip_ds6_nbr_t *uip_ds6_nbr_add(uip_ipaddr_t *ipaddr, uip_lladdr_t *lladdr,                uint8_t isrouter, uint8_t state){  int r;  r = uip_ds6_list_loop     ((uip_ds6_element_t *)uip_ds6_nbr_cache, UIP_DS6_NBR_NB,      sizeof(uip_ds6_nbr_t), ipaddr, 128,      (uip_ds6_element_t **)&locnbr);  if(r == FREESPACE) {    locnbr->isused = 1;    uip_ipaddr_copy(&locnbr->ipaddr, ipaddr);    if(lladdr != NULL) {      memcpy(&locnbr->lladdr, lladdr, UIP_LLADDR_LEN);    } else {      memset(&locnbr->lladdr, 0, UIP_LLADDR_LEN);    }    locnbr->isrouter = isrouter;    locnbr->state = state;#if UIP_CONF_IPV6_QUEUE_PKT    uip_packetqueue_new(&locnbr->packethandle);#endif /* UIP_CONF_IPV6_QUEUE_PKT */    /* timers are set separately, for now we put them in expired state */    stimer_set(&locnbr->reachable, 0);    stimer_set(&locnbr->sendns, 0);    locnbr->nscount = 0;    PRINTF("Adding neighbor with ip addr ");    PRINT6ADDR(ipaddr);    PRINTF("link addr ");    PRINTLLADDR((&(locnbr->lladdr)));    PRINTF("state %u/n", state);    NEIGHBOR_STATE_CHANGED(locnbr);    locnbr->last_lookup = clock_time();    return locnbr;  } else if(r == NOSPACE) {    /* We did not find any empty slot on the neighbor list, so we need       to remove one old entry to make room. */    uip_ds6_nbr_t *n, *oldest;    clock_time_t oldest_time;    oldest = NULL;    oldest_time = clock_time();    for(n = uip_ds6_nbr_cache;        n < &uip_ds6_nbr_cache[UIP_DS6_NBR_NB];        n++) {      if(n->isused) {        if(n->last_lookup < oldest_time) {          oldest = n;          oldest_time = n->last_lookup;        }      }    }    if(oldest != NULL) {      uip_ds6_nbr_rm(oldest);      return uip_ds6_nbr_add(ipaddr, lladdr, isrouter, state);    }  }  PRINTF("uip_ds6_nbr_add drop/n");  return NULL;}
开发者ID:ChristianKniep,项目名称:hexabus,代码行数:65,



注:本文中的uip_ds6_list_loop函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ uip_ds6_set_addr_iid函数代码示例
C++ uip_ds6_get_link_local函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。