lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #28877] Duplicate ARP gratuitous packet with LWIP_NETI


From: Martin Persich
Subject: [lwip-devel] [bug #28877] Duplicate ARP gratuitous packet with LWIP_NETIF_LINK_CALLBACK set ON
Date: Fri, 12 Feb 2010 16:22:24 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2

URL:
  <http://savannah.nongnu.org/bugs/?28877>

                 Summary: Duplicate ARP gratuitous packet with
LWIP_NETIF_LINK_CALLBACK set ON
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: persich
            Submitted on: Fri 12 Feb 2010 04:22:24 PM GMT
                Category: ARP
                Severity: 3 - Normal
              Item Group: Change Request
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: 
            lwIP version: CVS Head

    _______________________________________________________

Details:

I made upgrade of Atmel's ethernet driver (AVR32 UC3A) to allow restart of
autonegotation process if cable is disconnected and then connected to switch
with other speed or characteristics (HDX/FDX, ...). I suppose that for this is
prepared functions "netif_set_link_up" and "netif_set_link_down" in LwIP. I
call function "netif_set_up" in the moment, when the NETIF is initialized for
the first time and then I immediately call function "netif_set_link_up". On
every moment when the cable is disconnected or connected back (information
from the PHY interface) - I call functions "netif_set_link_down" or
"netif_set_link_up". But with this scenario is ARP gratuitous packet sending
twice in the beginning. I made small change in "netif_set_up" function which
solve this problem, I think. Do you have better solution for this ? I don't
use DHCP and I don't revolve problem with probably required restart of DHCP
process in this situation ...

void netif_set_up(struct netif *netif)
{
  ...

#if LWIP_ARP && ! LWIP_NETIF_LINK_CALLBACK
    /* For Ethernet network interfaces, we would like to send a "gratuitous
ARP" */ 
    if (netif->flags & NETIF_FLAG_ETHARP) {
      etharp_gratuitous(netif);
    }
#endif /* LWIP_ARP */

  ...
}

Martin Persich






    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?28877>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]