Hi,

Any update on my query...

Regards,
PraveenKumar.

On Thu, 13 Feb 2020, 09:54 praveenkumar raavi, <raavipraveenku...@gmail.com>
wrote:

> Hi Everyone,
>
>
>
> we are using LWIP 2.0.3 for one of our project to establish the TCP
> connection from ECU and Atmel micro.
> We got the LWIP from Atmel itself and I have modified little to support
> VLAN data receive and transmit.
>
>
>
> But now we are seeing some issue during data transmission.
> When the ECU goes to sleep, it cut down the Ethernet link and when it
> wakes up it will establish the Ethernet connection.
> But here when the ECU wakes up the communication is not going well from
> our LWIP stack. We are seeing multiple re transmissions which are causing
> issues in data transmission.
>
> So we planned to reinitialize the LWIP stack after ECU goes to sleep.
> But when I do shut down the connection, the connection is not closing as
> there is no FIN request response from ECU and its getting stuck in tcp_slow
> timer.
> Also I have seen new behavior like when i received new frame on TCP, I am
> trying to ACK back using ACK now function(pcb->prio = TCP_PRIO_MAX;
> tcp_send_empty_ack(pcb);  tcp_output(pcb);), but I am seeing the ACK
> packet transmitted after my data packet is been transferred.
> This I didn't understand like why the ACK packet is transferred after data
> packet? this is also one of the reason for us to see communication failure.
>
> I am attaching the images for our communication issues.
> Here LWIP_IP: 192.168.6.182
>      ECU IP : 192.168.6.144
> If you see LWIP_TCP_DataSentoutFirst.JPG, the data is send first and ACK
> is sent after that even though the ACK transmission is initiated first with
> priority level set to MAX.
>
> Please let us know how to solve this issue.
>
>
>
> I am adding following steps during lwip init.
>
> TCPIP_STACK_INTERFACE_0_init(st_ETH_ConfigStruct.u8_SourceMacAddress,
> Src_IP, gw);
>
> netif_set_up(&TCPIP_STACK_INTERFACE_0_desc);
>
> netif_set_default(&TCPIP_STACK_INTERFACE_0_desc);
>
> mac_async_enable(&MACIF);
>
> etharp_add_static_entry(&Dest_IP, (struct eth_addr
> *)&st_ETH_ConfigStruct.u8_DestMacAddress[0]);
>
> pcb_tcp = tcp_new();
>
> error = tcp_bind(pcb_tcp, &address, st_ETH_ConfigStruct.u16_SourcePortNum);
>
> pcb_tcp = tcp_listen(pcb_tcp);
>
> tcp_accept(pcb_tcp, Etherdo_connected);
>
>
>
> After link established, below functions are used to do data transfer.
>
>
>
> tcp_write(pcb_tcp,u8_DataBuff,u16_DataLen,TCP_WRITE_FLAG_MORE);
>
> tcp_output(pcb_tcp));
>
>
>
> This is how I initialized LWIP stack and transmitting data over ethernet.
> Here I have used static MAC address as we should connect to particular MAC
> address.
>
>
> Regards,
>
> PraveenKumar.
>
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to