Всем доброго дня. Есть задача слать одинаковые UDP-пакеты с разными IP адресами источника на через разные выходы свича. Использую STM32f107. В качестве свича пяти портовый micrel ksz8895. Если со свичем более менее понятно(использую механизм жесткого коммутирования соответствующих портов, хотя наверняка есть более элегантное решение), то с заменой ничего умнее ручной замены содержимого посылки не приходит. Используемый сейчас механизм отправки для одного IP:
CODE
upcb = udp_new();
upcb->local_port = LOCAL_AIS_PORT;
upcb->remote_port = REMOTE_AIS_PORT;
//assign destination IP address
IP4_ADDR( &DestIPaddr, GW_AIS_ADDR0, GW_AIS_ADDR1, GW_AIS_ADDR2, GW_AIS_ADDR3 );
//configure destination IP address and port
udp_connect(upcb, &DestIPaddr, REMOTE_AIS_PORT );
// allocate pbuf from pool
p = pbuf_alloc(PBUF_TRANSPORT,strlen((char*)data), PBUF_POOL);
// copy data to pbuf
pbuf_take(p, (char*)data, strlen((char*)data));
// send udp data
udp_send(upcb, p);
udp_disconnect(upcb);
pbuf_free(p);
Кто нибудь может предложить конкретный способ, пример, или хотя бы механизм, с помощь которого этого можно добиться?