[U-Boot-Users] recieving network packets ?

Maximus john.maximus at gmail.com
Wed Jan 25 15:03:25 CET 2006


Hi,
   I uboot - i want to recieve network packets.  I wrote a small
program using  the code available in uboot.
   However its not working ?.    Can anyone point me where i am going wrong ?.


   I am trying to write a server kind of a cmd - which recieves some
requests from host and
   carries out some actions.



   I just want UdpProtoHandler to be called whenever the ethernet
controller recieves a packet.

    As a start, i am sending raw ethernet packets on the network.


    But, NetReceive Function is not getting called.


    Why ?. Am i doing something wrong ?.




    Regards,

     John



My Code,

static void UdpProtoHandler (uchar * pkt, unsigned dest, unsigned src,
unsigned len) ;
static void udptimeout (void)
{
    NetSetTimeout (100 * CFG_HZ, udptimeout) ;
    NetState = NETLOOP_CONTINUE;
}

int send_udp (void)
{
    DECLARE_GLOBAL_DATA_PTR;

    eth_halt();

    if (eth_init(bd) < 0)
        return(-1);

    NetState = NETLOOP_CONTINUE;
    NetSetTimeout (10 * CFG_HZ, udptimeout);
    NetSetHandler (UdpProtoHandler) ;

    return 1 ;
}

static void UdpProtoHandler (uchar * pkt, unsigned dest, unsigned src,
unsigned len)
{

    puts ("handler:-------------------\n") ;
    printf ("dest : %u src:%u and length : %u\n", dest, src, len) ;

    while (len > 0) {
        printf ("%c", *pkt) ;
        pkt++ ; len-- ;
    }

    puts ("\ndone\n") ;
    NetState = NETLOOP_SUCCESS;
}




More information about the U-Boot mailing list