Я пытаюсь реализовать свою диссертацию, используя Cooja Simulator на ОС Contiki. Я использовал стек протоколов uip для отправки данных между exp5438. Я пробовал протокол маршрутизации Aodv, который реализован в https://github.com/contiki-os/contiki/tree/master/core/net/ipv4
в кодах, связанных с Aodv, я не могу отправить rrep-сообщения из функции sendto, которая реализована, как показано ниже {строка 128 в ссылке выше, в файле uaodv.c}:
static void sendto(const uip_ipaddr_t *dest, const void *buf, int len)
{
/* XXX: this is a HACK! We're updating the uIP UDP connection
"unicastconn" so that the destination address is the next-hop,
and we're patching the "uip_udp_conn" variable so that it points
the this connection instead. THIS IS NOT A NICE WAY TO DO THIS,
but it is currently nicer than the alternative (requesting a new
poll, and remembering the state, etc.). */
uip_ipaddr_copy(&unicastconn->ripaddr, dest);
uip_udp_conn = unicastconn;
uip_udp_packet_send(unicastconn, buf, len);
}
Хотя я мог транслировать rrep-пакеты, мне нужно одноадресное соединение, чтобы заставить Aodv работать.
одноадресное соединение определено как показано ниже:
unicastconn = udp_broadcast_new(UIP_HTONS(UAODV_UDPPORT), NULL);
Буду очень признателен, если вы поможете мне решить эту проблему.