/* update only when the environment has changed */
if (env_changed_id != env_id) {
- NetCopyIP(&NetOurIP, &bd->bi_ip_addr);
+ NetOurIP = getenv_IPaddr("ipaddr");
+ NetCopyIP(&bd->bi_ip_addr, &NetOurIP);
NetOurGatewayIP = getenv_IPaddr("gatewayip");
NetOurSubnetMask = getenv_IPaddr("netmask");
NetServerIP = getenv_IPaddr("serverip");
#endif
if (eth_init(bd) < 0) {
eth_halt();
- return(-1);
+ return -1;
}
restart:
case 1:
/* network not configured */
eth_halt();
- return (-1);
+ return -1;
#ifdef CONFIG_NET_MULTI
case 2:
/* always use ARP to get server ethernet address */
TftpStart();
break;
-
+#ifdef CONFIG_CMD_TFTPSRV
+ case TFTPSRV:
+ TftpStartServer();
+ break;
+#endif
#if defined(CONFIG_CMD_DHCP)
case DHCP:
BootpTry = 0;
if (ctrlc()) {
eth_halt();
puts("\nAbort\n");
- return (-1);
+ return -1;
}
ArpTimeoutCheck();
return NetBootFileXferSize;
case NETLOOP_FAIL:
- return (-1);
+ return -1;
}
}
}
*/
void
-NetSetHandler(rxhand_f * f)
+NetSetHandler(rxhand_f *f)
{
packetHandler = f;
}
void
-NetSetTimeout(ulong iv, thand_f * f)
+NetSetTimeout(ulong iv, thand_f *f)
{
if (iv == 0) {
timeHandler = (thand_f *)0;
void
-NetSendPacket(volatile uchar * pkt, int len)
+NetSendPacket(volatile uchar *pkt, int len)
{
(void) eth_send(pkt, len);
}
ip->ip_p = 0x01; /* ICMP */
ip->ip_sum = 0;
/* already in network byte order */
- NetCopyIP((void*)&ip->ip_src, &NetOurIP);
+ NetCopyIP((void *)&ip->ip_src, &NetOurIP);
/* - "" - */
- NetCopyIP((void*)&ip->ip_dst, &NetPingIP);
+ NetCopyIP((void *)&ip->ip_dst, &NetPingIP);
ip->ip_sum = ~NetCksum((uchar *)ip, IP_HDR_SIZE_NO_UDP / 2);
s = &ip->udp_src; /* XXX ICMP starts here */
}
static void
-CDPHandler(const uchar * pkt, unsigned len)
+CDPHandler(const uchar *pkt, unsigned len)
{
const uchar *t;
const ushort *ss;
tlen -= 4;
switch (type) {
- case CDP_DEVICE_ID_TLV:
- break;
- case CDP_ADDRESS_TLV:
- break;
- case CDP_PORT_ID_TLV:
- break;
- case CDP_CAPABILITIES_TLV:
- break;
- case CDP_VERSION_TLV:
- break;
- case CDP_PLATFORM_TLV:
- break;
- case CDP_NATIVE_VLAN_TLV:
- nvlan = *ss;
- break;
- case CDP_APPLIANCE_VLAN_TLV:
- t = (const uchar *)ss;
- while (tlen > 0) {
- if (tlen < 3)
- goto pkt_short;
+ case CDP_DEVICE_ID_TLV:
+ break;
+ case CDP_ADDRESS_TLV:
+ break;
+ case CDP_PORT_ID_TLV:
+ break;
+ case CDP_CAPABILITIES_TLV:
+ break;
+ case CDP_VERSION_TLV:
+ break;
+ case CDP_PLATFORM_TLV:
+ break;
+ case CDP_NATIVE_VLAN_TLV:
+ nvlan = *ss;
+ break;
+ case CDP_APPLIANCE_VLAN_TLV:
+ t = (const uchar *)ss;
+ while (tlen > 0) {
+ if (tlen < 3)
+ goto pkt_short;
- applid = t[0];
- ss = (const ushort *)(t + 1);
+ applid = t[0];
+ ss = (const ushort *)(t + 1);
#ifdef CONFIG_CDP_APPLIANCE_VLAN_TYPE
- if (applid ==
- CONFIG_CDP_APPLIANCE_VLAN_TYPE)
- vlan = *ss;
+ if (applid == CONFIG_CDP_APPLIANCE_VLAN_TYPE)
+ vlan = *ss;
#else
- /* XXX will this work; dunno */
- vlan = ntohs(*ss);
+ /* XXX will this work; dunno */
+ vlan = ntohs(*ss);
#endif
- t += 3; tlen -= 3;
- }
- break;
- case CDP_TRIGGER_TLV:
- break;
- case CDP_POWER_CONSUMPTION_TLV:
- break;
- case CDP_SYSNAME_TLV:
- break;
- case CDP_SYSOBJECT_TLV:
- break;
- case CDP_MANAGEMENT_ADDRESS_TLV:
- break;
+ t += 3; tlen -= 3;
+ }
+ break;
+ case CDP_TRIGGER_TLV:
+ break;
+ case CDP_POWER_CONSUMPTION_TLV:
+ break;
+ case CDP_SYSNAME_TLV:
+ break;
+ case CDP_SYSOBJECT_TLV:
+ break;
+ case CDP_MANAGEMENT_ADDRESS_TLV:
+ break;
}
}
#endif
void
-NetReceive(volatile uchar * inpkt, int len)
+NetReceive(volatile uchar *inpkt, int len)
{
Ethernet_t *et;
IP_t *ip;
#ifdef CONFIG_MCAST_TFTP
if (Mcast_addr != tmp)
#endif
- return;
+ return;
}
/* Read source IP address for later use */
src_ip = NetReadIP(&ip->ip_src);
* a fragment, and either the complete packet or NULL if
* it is a fragment (if !CONFIG_IP_DEFRAG, it returns NULL)
*/
- if (!(ip = NetDefragment(ip, &len)))
+ ip = NetDefragment(ip, &len);
+ if (!ip)
return;
/*
* watch for ICMP host redirects
ip->ip_sum = 0;
ip->ip_off = 0;
- NetCopyIP((void*)&ip->ip_dst, &ip->ip_src);
- NetCopyIP((void*)&ip->ip_src, &NetOurIP);
+ NetCopyIP((void *)&ip->ip_dst, &ip->ip_src);
+ NetCopyIP((void *)&ip->ip_src, &NetOurIP);
ip->ip_sum = ~NetCksum((uchar *)ip,
IP_HDR_SIZE_NO_UDP >> 1);
case PING:
if (NetPingIP == 0) {
puts("*** ERROR: ping address not given\n");
- return (1);
+ return 1;
}
goto common;
#endif
case SNTP:
if (NetNtpServerIP == 0) {
puts("*** ERROR: NTP server address not given\n");
- return (1);
+ return 1;
}
goto common;
#endif
case TFTP:
if (NetServerIP == 0) {
puts("*** ERROR: `serverip' not set\n");
- return (1);
+ return 1;
}
#if defined(CONFIG_CMD_PING) || defined(CONFIG_CMD_SNTP) || \
defined(CONFIG_CMD_DNS)
/* Fall through */
case NETCONS:
+ case TFTPSRV:
if (NetOurIP == 0) {
puts("*** ERROR: `ipaddr' not set\n");
- return (1);
+ return 1;
}
/* Fall through */
switch (num) {
case -1:
puts("*** ERROR: No ethernet found.\n");
- return (1);
+ return 1;
case 0:
puts("*** ERROR: `ethaddr' not set\n");
break;
}
NetStartAgain();
- return (2);
+ return 2;
#else
puts("*** ERROR: `ethaddr' not set\n");
- return (1);
+ return 1;
#endif
}
/* Fall through */
default:
- return (0);
+ return 0;
}
- return (0); /* OK */
+ return 0; /* OK */
}
/**********************************************************************/
int
-NetCksumOk(uchar * ptr, int len)
+NetCksumOk(uchar *ptr, int len)
{
return !((NetCksum(ptr, len) + 1) & 0xfffe);
}
unsigned
-NetCksum(uchar * ptr, int len)
+NetCksum(uchar *ptr, int len)
{
ulong xsum;
ushort *p = (ushort *)ptr;
xsum += *p++;
xsum = (xsum & 0xffff) + (xsum >> 16);
xsum = (xsum & 0xffff) + (xsum >> 16);
- return (xsum & 0xffff);
+ return xsum & 0xffff;
}
int
}
int
-NetSetEther(volatile uchar * xet, uchar * addr, uint prot)
+NetSetEther(volatile uchar *xet, uchar * addr, uint prot)
{
Ethernet_t *et = (Ethernet_t *)xet;
ushort myvlanid;
memcpy(et->et_dest, addr, 6);
memcpy(et->et_src, NetOurEther, 6);
if ((myvlanid & VLAN_IDMASK) == VLAN_NONE) {
- et->et_protlen = htons(prot);
+ et->et_protlen = htons(prot);
return ETHER_HDR_SIZE;
} else {
VLAN_Ethernet_t *vet = (VLAN_Ethernet_t *)xet;
}
void
-NetSetIP(volatile uchar * xip, IPaddr_t dest, int dport, int sport, int len)
+NetSetIP(volatile uchar *xip, IPaddr_t dest, int dport, int sport, int len)
{
IP_t *ip = (IP_t *)xip;
ip->ip_p = 17; /* UDP */
ip->ip_sum = 0;
/* already in network byte order */
- NetCopyIP((void*)&ip->ip_src, &NetOurIP);
+ NetCopyIP((void *)&ip->ip_src, &NetOurIP);
/* - "" - */
- NetCopyIP((void*)&ip->ip_dst, &dest);
+ NetCopyIP((void *)&ip->ip_dst, &dest);
ip->udp_src = htons(sport);
ip->udp_dst = htons(dport);
ip->udp_len = htons(8 + len);
ushort getenv_VLAN(char *var)
{
- return (string_to_VLAN(getenv(var)));
+ return string_to_VLAN(getenv(var));
}