|
|
@ -327,7 +327,7 @@ typedef struct icmphdr { |
|
|
|
|
|
|
|
|
|
|
|
/* net.c */ |
|
|
|
/* net.c */ |
|
|
|
/** BOOTP EXTENTIONS **/ |
|
|
|
/** BOOTP EXTENTIONS **/ |
|
|
|
extern IPaddr_t NetOurGatewayIP; /* Our gateway IP addresse */ |
|
|
|
extern IPaddr_t NetOurGatewayIP; /* Our gateway IP address */ |
|
|
|
extern IPaddr_t NetOurSubnetMask; /* Our subnet mask (0 = unknown) */ |
|
|
|
extern IPaddr_t NetOurSubnetMask; /* Our subnet mask (0 = unknown) */ |
|
|
|
extern IPaddr_t NetOurDNSIP; /* Our Domain Name Server (0 = unknown) */ |
|
|
|
extern IPaddr_t NetOurDNSIP; /* Our Domain Name Server (0 = unknown) */ |
|
|
|
#if defined(CONFIG_BOOTP_DNS2) |
|
|
|
#if defined(CONFIG_BOOTP_DNS2) |
|
|
@ -427,7 +427,8 @@ extern void NetSetTimeout(ulong, thand_f *);/* Set timeout handler */ |
|
|
|
extern void NetSendPacket(uchar *, int); |
|
|
|
extern void NetSendPacket(uchar *, int); |
|
|
|
|
|
|
|
|
|
|
|
/* Transmit UDP packet, performing ARP request if needed */ |
|
|
|
/* Transmit UDP packet, performing ARP request if needed */ |
|
|
|
extern int NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, int len); |
|
|
|
extern int NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, |
|
|
|
|
|
|
|
int sport, int len); |
|
|
|
|
|
|
|
|
|
|
|
/* Processes a received packet */ |
|
|
|
/* Processes a received packet */ |
|
|
|
extern void NetReceive(uchar *, int); |
|
|
|
extern void NetReceive(uchar *, int); |
|
|
@ -449,6 +450,7 @@ void net_auto_load(void); |
|
|
|
static inline IPaddr_t NetReadIP(void *from) |
|
|
|
static inline IPaddr_t NetReadIP(void *from) |
|
|
|
{ |
|
|
|
{ |
|
|
|
IPaddr_t ip; |
|
|
|
IPaddr_t ip; |
|
|
|
|
|
|
|
|
|
|
|
memcpy((void *)&ip, (void *)from, sizeof(ip)); |
|
|
|
memcpy((void *)&ip, (void *)from, sizeof(ip)); |
|
|
|
return ip; |
|
|
|
return ip; |
|
|
|
} |
|
|
|
} |
|
|
@ -457,6 +459,7 @@ static inline IPaddr_t NetReadIP(void *from) |
|
|
|
static inline ulong NetReadLong(ulong *from) |
|
|
|
static inline ulong NetReadLong(ulong *from) |
|
|
|
{ |
|
|
|
{ |
|
|
|
ulong l; |
|
|
|
ulong l; |
|
|
|
|
|
|
|
|
|
|
|
memcpy((void *)&l, (void *)from, sizeof(l)); |
|
|
|
memcpy((void *)&l, (void *)from, sizeof(l)); |
|
|
|
return l; |
|
|
|
return l; |
|
|
|
} |
|
|
|
} |
|
|
@ -499,7 +502,7 @@ static inline int is_zero_ether_addr(const u8 *addr) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
static inline int is_multicast_ether_addr(const u8 *addr) |
|
|
|
static inline int is_multicast_ether_addr(const u8 *addr) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return (0x01 & addr[0]); |
|
|
|
return 0x01 & addr[0]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
@ -510,7 +513,8 @@ static inline int is_multicast_ether_addr(const u8 *addr) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
static inline int is_broadcast_ether_addr(const u8 *addr) |
|
|
|
static inline int is_broadcast_ether_addr(const u8 *addr) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 0xff; |
|
|
|
return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == |
|
|
|
|
|
|
|
0xff; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|