diff -Naur orig/contrib/ports/unix/proj/minimal/main.c patched/contrib/ports/unix/proj/minimal/main.c --- orig/contrib/ports/unix/proj/minimal/main.c 2008-01-02 14:57:21.000000000 +0100 +++ patched/contrib/ports/unix/proj/minimal/main.c 2009-04-17 23:56:20.000000000 +0200 @@ -179,7 +179,7 @@ printf("TCP/IP initialized.\n"); - netif_add(&netif, &ipaddr, &netmask, &gw, NULL, mintapif_init, ip_input); + netif_add(&netif, &ipaddr, &netmask, &gw, NULL, mintapif_init, ethernet_input); netif_set_default(&netif); netif_set_up(&netif); diff -Naur orig/contrib/ports/unix/proj/minimal/mintapif.c patched/contrib/ports/unix/proj/minimal/mintapif.c --- orig/contrib/ports/unix/proj/minimal/mintapif.c 2007-12-19 21:26:53.000000000 +0100 +++ patched/contrib/ports/unix/proj/minimal/mintapif.c 2009-04-17 23:58:30.000000000 +0200 @@ -242,41 +242,16 @@ static void mintapif_input(struct netif *netif) { - struct mintapif *mintapif; - struct eth_hdr *ethhdr; struct pbuf *p; - - mintapif = netif->state; - p = low_level_input(netif); - if (p != NULL) { #if LINK_STATS lwip_stats.link.recv++; #endif /* LINK_STATS */ - ethhdr = p->payload; - - switch (htons(ethhdr->type)) { - case ETHTYPE_IP: -#if 0 -/* CSi disabled ARP table update on ingress IP packets. - This seems to work but needs thorough testing. */ - etharp_ip_input(netif, p); -#endif - pbuf_header(p, -14); - netif->input(p, netif); - break; - case ETHTYPE_ARP: - etharp_arp_input(netif, mintapif->ethaddr, p); - break; - default: - LWIP_ASSERT("p != NULL", p != NULL); - pbuf_free(p); - break; - } + netif->input(p, netif); } } /*-----------------------------------------------------------------------------------*/