diff options
-rw-r--r-- | arch/powerpc/cpu/mpc8260/ether_fcc.c | 17 | ||||
-rw-r--r-- | include/net.h | 18 | ||||
-rw-r--r-- | net/arp.c | 4 | ||||
-rw-r--r-- | net/arp.h | 2 | ||||
-rw-r--r-- | net/bootp.c | 2 | ||||
-rw-r--r-- | net/cdp.c | 4 | ||||
-rw-r--r-- | net/net.c | 11 | ||||
-rw-r--r-- | net/ping.c | 2 | ||||
-rw-r--r-- | net/ping.h | 2 |
9 files changed, 36 insertions, 26 deletions
diff --git a/arch/powerpc/cpu/mpc8260/ether_fcc.c b/arch/powerpc/cpu/mpc8260/ether_fcc.c index eed0a4b..1853451 100644 --- a/arch/powerpc/cpu/mpc8260/ether_fcc.c +++ b/arch/powerpc/cpu/mpc8260/ether_fcc.c @@ -1049,11 +1049,11 @@ eth_loopback_test (void) } else { ushort datlen = bdp->cbd_datlen; - Ethernet_t *ehp; + struct ethernet_hdr *ehp; ushort prot; int ours, tb, n, nbytes; - ehp = (Ethernet_t *) \ + ehp = (struct ethernet_hdr *) \ &ecp->rxbufs[i][0]; ours = memcmp (ehp->et_src, \ @@ -1063,9 +1063,8 @@ eth_loopback_test (void) tb = prot & 0x8000; n = prot & 0x7fff; - nbytes = ELBT_BUFSZ - \ - offsetof (Ethernet_t, \ - et_dsap) - \ + nbytes = ELBT_BUFSZ - + ETHER_HDR_SIZE - ELBT_CRCSZ; /* check the frame is correct */ @@ -1080,10 +1079,10 @@ eth_loopback_test (void) patwords[n]; uint nbb; - nbb = badbits ( \ - &ehp->et_dsap, \ - nbytes, \ - patword); + nbb = badbits( + ((uchar *)&ehp) + + ETHER_HDR_SIZE, + nbytes, patword); ecp->rxeacc.badbit += \ nbb; diff --git a/include/net.h b/include/net.h index 7692153..2551516 100644 --- a/include/net.h +++ b/include/net.h @@ -156,7 +156,17 @@ u32 ether_crc(size_t len, unsigned char const *p); /* * Ethernet header */ -typedef struct { + +struct ethernet_hdr { + uchar et_dest[6]; /* Destination node */ + uchar et_src[6]; /* Source node */ + ushort et_protlen; /* Protocol or length */ +}; + +/* Ethernet header size */ +#define ETHER_HDR_SIZE (sizeof(struct ethernet_hdr)) + +struct e802_hdr { uchar et_dest[6]; /* Destination node */ uchar et_src[6]; /* Source node */ ushort et_protlen; /* Protocol or length */ @@ -167,10 +177,10 @@ typedef struct { uchar et_snap2; uchar et_snap3; ushort et_prot; /* 802 protocol */ -} Ethernet_t; +}; -#define ETHER_HDR_SIZE 14 /* Ethernet header size */ -#define E802_HDR_SIZE 22 /* 802 ethernet header size */ +/* 802 ethernet header size */ +#define E802_HDR_SIZE (sizeof(struct e802_hdr)) /* * Ethernet header @@ -113,7 +113,7 @@ void ArpTimeoutCheck(void) } } -void ArpReceive(Ethernet_t *et, struct ip_udp_hdr *ip, int len) +void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len) { ARP_t *arp; IPaddr_t tmp; @@ -193,7 +193,7 @@ void ArpReceive(Ethernet_t *et, struct ip_udp_hdr *ip, int len) NetGetHandler()(0, 0, 0, 0, 0); #endif /* modify header, and transmit it */ - memcpy(((Ethernet_t *)NetArpWaitTxPacket)-> + memcpy(((struct ethernet_hdr *)NetArpWaitTxPacket)-> et_dest, NetArpWaitPacketMAC, 6); (void) eth_send(NetArpWaitTxPacket, NetArpWaitTxPacketSize); @@ -25,6 +25,6 @@ extern int NetArpWaitTry; void ArpInit(void); void ArpRequest(void); void ArpTimeoutCheck(void); -void ArpReceive(Ethernet_t *et, struct ip_udp_hdr *ip, int len); +void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len); #endif /* __ARP_H__ */ diff --git a/net/bootp.c b/net/bootp.c index b8d2760..3285250 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -103,7 +103,7 @@ static void BootpCopyNetParams(struct Bootp_t *bp) NetCopyIP(&tmp_ip, &bp->bp_siaddr); if (tmp_ip != 0) NetCopyIP(&NetServerIP, &bp->bp_siaddr); - memcpy(NetServerEther, ((Ethernet_t *)NetRxPacket)->et_src, 6); + memcpy(NetServerEther, ((struct ethernet_hdr *)NetRxPacket)->et_src, 6); #endif if (strlen(bp->bp_file) > 0) copy_filename(BootFile, bp->bp_file, sizeof(BootFile)); @@ -109,7 +109,7 @@ CDPSendTrigger(void) uchar *pkt; ushort *s; ushort *cp; - Ethernet_t *et; + struct ethernet_hdr *et; int len; ushort chksum; #if defined(CONFIG_CDP_DEVICE_ID) || defined(CONFIG_CDP_PORT_ID) || \ @@ -118,7 +118,7 @@ CDPSendTrigger(void) #endif pkt = NetTxPacket; - et = (Ethernet_t *)pkt; + et = (struct ethernet_hdr *)pkt; /* NOTE: trigger sent not on any VLAN */ @@ -823,7 +823,7 @@ static inline struct ip_udp_hdr *NetDefragment(struct ip_udp_hdr *ip, int *lenp) * @parma ip IP packet containing the ICMP */ static void receive_icmp(struct ip_udp_hdr *ip, int len, - IPaddr_t src_ip, Ethernet_t *et) + IPaddr_t src_ip, struct ethernet_hdr *et) { ICMP_t *icmph = (ICMP_t *)&ip->udp_src; @@ -851,7 +851,7 @@ static void receive_icmp(struct ip_udp_hdr *ip, int len, void NetReceive(uchar *inpkt, int len) { - Ethernet_t *et; + struct ethernet_hdr *et; struct ip_udp_hdr *ip; IPaddr_t tmp; IPaddr_t src_ip; @@ -865,7 +865,7 @@ NetReceive(uchar *inpkt, int len) NetRxPacket = inpkt; NetRxPacketLen = len; - et = (Ethernet_t *)inpkt; + et = (struct ethernet_hdr *)inpkt; /* too small packet? */ if (len < ETHER_HDR_SIZE) @@ -895,10 +895,11 @@ NetReceive(uchar *inpkt, int len) debug("packet received\n"); if (x < 1514) { + struct e802_hdr *et802 = (struct e802_hdr *)et; /* * Got a 802 packet. Check the other protocol field. */ - x = ntohs(et->et_prot); + x = ntohs(et802->et_prot); ip = (struct ip_udp_hdr *)(inpkt + E802_HDR_SIZE); len -= E802_HDR_SIZE; @@ -1218,7 +1219,7 @@ NetEthHdrSize(void) int NetSetEther(uchar *xet, uchar * addr, uint prot) { - Ethernet_t *et = (Ethernet_t *)xet; + struct ethernet_hdr *et = (struct ethernet_hdr *)xet; ushort myvlanid; myvlanid = ntohs(NetOurVLAN); @@ -98,7 +98,7 @@ void ping_start(void) ping_send(); } -void ping_receive(Ethernet_t *et, struct ip_udp_hdr *ip, int len) +void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len) { ICMP_t *icmph = (ICMP_t *)&(ip->udp_src); IPaddr_t src_ip; @@ -28,7 +28,7 @@ void ping_start(void); * @param ip IP header in the same packet * @param len Packet length */ -void ping_receive(Ethernet_t *et, struct ip_udp_hdr *ip, int len); +void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len); #endif /* __PING_H__ */ #endif |