OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [bootloaders/] [orpmon/] [services/] [arp.c] - Diff between revs 2 and 140

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 140
Line 25... Line 25...
#include "support.h"
#include "support.h"
#include "net.h"
#include "net.h"
#include "bootp.h"
#include "bootp.h"
#include "tftp.h"
#include "tftp.h"
#include "arp.h"
#include "arp.h"
 
#include "string.h"
 
 
#define TIMEOUT         5               /* Seconds before trying ARP again */
#define TIMEOUT         5               /* Seconds before trying ARP again */
#define TIMEOUT_COUNT   1               /* # of timeouts before giving up  */
#define TIMEOUT_COUNT   1               /* # of timeouts before giving up  */
 
#define DEBUG // jb
static void ArpHandler(unsigned char *pkt, unsigned dest, unsigned src, unsigned len);
static void ArpHandler(unsigned char *pkt, unsigned dest, unsigned src, unsigned len);
static void ArpTimeout(void);
static void ArpTimeout(void);
 
 
int     ArpTry = 0;
int     ArpTry = 0;
 
 
Line 88... Line 89...
        arp->ar_pro = PROT_IP;
        arp->ar_pro = PROT_IP;
        arp->ar_hln = 6;
        arp->ar_hln = 6;
        arp->ar_pln = 4;
        arp->ar_pln = 4;
        arp->ar_op  = ARPOP_REQUEST;
        arp->ar_op  = ARPOP_REQUEST;
        NetCopyEther(&arp->ar_data[0], NetOurEther);     /* source ET addr       */
        NetCopyEther(&arp->ar_data[0], NetOurEther);     /* source ET addr       */
        *(IPaddr_t *)(&arp->ar_data[6]) = NetOurIP;     /* source IP addr       */
        //*(IPaddr_t *)(&arp->ar_data[6]) = NetOurIP;   /* source IP addr */
 
        memcpy(&arp->ar_data[6], (unsigned char*) &NetOurIP, 4);
 
 
        for (i=10; i<16; ++i) {
        for (i=10; i<16; ++i) {
                arp->ar_data[i] = 0;                     /* dest ET addr = 0     */
                arp->ar_data[i] = 0;                     /* dest ET addr = 0     */
        }
        }
 
 
        if((NetServerIP & NetOurSubnetMask) != (NetOurIP & NetOurSubnetMask)) {
        if((NetServerIP & NetOurSubnetMask) != (NetOurIP & NetOurSubnetMask)) {
            *(IPaddr_t *)(&arp->ar_data[16]) = NetOurGatewayIP;
          //*(IPaddr_t *)(&arp->ar_data[16]) = NetOurGatewayIP;
 
          memcpy(&arp->ar_data[16], (unsigned char*) &NetOurGatewayIP,
 
                 sizeof(IPaddr_t));
        } else {
        } else {
            *((IPaddr_t *)(&(arp->ar_data[16]))) = NetServerIP;
          //*((IPaddr_t *)(&(arp->ar_data[16]))) = NetServerIP;
 
          memcpy(&arp->ar_data[16], (unsigned char*) &NetServerIP,
 
                 sizeof(IPaddr_t));
        }
        }
 
 
        NetSendPacket(NetTxPacket, ETHER_HDR_SIZE + ARP_HDR_SIZE);
        NetSendPacket(NetTxPacket, ETHER_HDR_SIZE + ARP_HDR_SIZE);
 
 
        NetSetTimeout(TIMEOUT * TICKS_PER_SEC, ArpTimeout);
        NetSetTimeout(TIMEOUT * TICKS_PER_SEC, ArpTimeout);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.