mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-30 08:30:50 +09:00
net: Encapsulate CDP packet identification
Checking for CDP packets should be encapsulated, not copied code. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
f575ae1f7d
commit
1735188329
@ -274,7 +274,7 @@ static int fec_recv (struct eth_device *dev)
|
|||||||
#if defined(CONFIG_CMD_CDP)
|
#if defined(CONFIG_CMD_CDP)
|
||||||
if ((rx[0] & 1) != 0
|
if ((rx[0] & 1) != 0
|
||||||
&& memcmp ((uchar *) rx, NetBcastAddr, 6) != 0
|
&& memcmp ((uchar *) rx, NetBcastAddr, 6) != 0
|
||||||
&& memcmp ((uchar *) rx, NetCDPAddr, 6) != 0)
|
&& !is_cdp_packet((uchar *)rx))
|
||||||
rx = NULL;
|
rx = NULL;
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
|
@ -356,8 +356,6 @@ extern uchar NetEtherNullAddr[6];
|
|||||||
extern ushort NetOurVLAN; /* Our VLAN */
|
extern ushort NetOurVLAN; /* Our VLAN */
|
||||||
extern ushort NetOurNativeVLAN; /* Our Native VLAN */
|
extern ushort NetOurNativeVLAN; /* Our Native VLAN */
|
||||||
|
|
||||||
extern const uchar NetCDPAddr[6]; /* Ethernet CDP address */
|
|
||||||
|
|
||||||
extern int NetState; /* Network loop state */
|
extern int NetState; /* Network loop state */
|
||||||
#define NETLOOP_CONTINUE 1
|
#define NETLOOP_CONTINUE 1
|
||||||
#define NETLOOP_RESTART 2
|
#define NETLOOP_RESTART 2
|
||||||
@ -387,6 +385,16 @@ extern IPaddr_t NetPingIP; /* the ip address to ping */
|
|||||||
/* when CDP completes these hold the return values */
|
/* when CDP completes these hold the return values */
|
||||||
extern ushort CDPNativeVLAN; /* CDP returned native VLAN */
|
extern ushort CDPNativeVLAN; /* CDP returned native VLAN */
|
||||||
extern ushort CDPApplianceVLAN; /* CDP returned appliance VLAN */
|
extern ushort CDPApplianceVLAN; /* CDP returned appliance VLAN */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check for a CDP packet by examining the received MAC address field
|
||||||
|
*/
|
||||||
|
static inline int is_cdp_packet(const uchar *et_addr)
|
||||||
|
{
|
||||||
|
extern const uchar NetCDPAddr[6];
|
||||||
|
|
||||||
|
return memcmp(et_addr, NetCDPAddr, 6) == 0;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_CMD_SNTP)
|
#if defined(CONFIG_CMD_SNTP)
|
||||||
|
@ -1099,7 +1099,7 @@ NetReceive(uchar *inpkt, int len)
|
|||||||
|
|
||||||
#if defined(CONFIG_CMD_CDP)
|
#if defined(CONFIG_CMD_CDP)
|
||||||
/* keep track if packet is CDP */
|
/* keep track if packet is CDP */
|
||||||
iscdp = memcmp(et->et_dest, NetCDPAddr, 6) == 0;
|
iscdp = is_cdp_packet(et->et_dest);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
myvlanid = ntohs(NetOurVLAN);
|
myvlanid = ntohs(NetOurVLAN);
|
||||||
|
Loading…
Reference in New Issue
Block a user