mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
A VLAN tagged DHCP request/discover is 4 bytes short
The problem is that BOOTP_SIZE uses ETHER_HDR_SIZE which is 14 bytes. If sending a VLAN tagged frame (when env variable vlan is set) this should be VLAN_ETHER_HDR_SIZE=18 which is what NetSetEther returns. Signed-off-by: Norbert van Bolhuis <nvbolhuis@aimvalley.nl> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
This commit is contained in:
parent
6e0d2fc7fe
commit
c9a2aab151
1 changed files with 2 additions and 2 deletions
|
|
@ -687,7 +687,7 @@ BootpRequest (void)
|
|||
* Calculate proper packet lengths taking into account the
|
||||
* variable size of the options field
|
||||
*/
|
||||
pktlen = BOOTP_SIZE - sizeof(bp->bp_vend) + ext_len;
|
||||
pktlen = ((int)(pkt-NetTxPacket)) + BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + ext_len;
|
||||
iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + ext_len;
|
||||
NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);
|
||||
NetSetTimeout(SELECT_TIMEOUT, BootpTimeout);
|
||||
|
|
@ -860,7 +860,7 @@ static void DhcpSendRequestPkt(Bootp_t *bp_offer)
|
|||
NetCopyIP(&OfferedIP, &bp_offer->bp_yiaddr);
|
||||
extlen = DhcpExtended((u8 *)bp->bp_vend, DHCP_REQUEST, NetDHCPServerIP, OfferedIP);
|
||||
|
||||
pktlen = BOOTP_SIZE - sizeof(bp->bp_vend) + extlen;
|
||||
pktlen = ((int)(pkt-NetTxPacket)) + BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + extlen;
|
||||
iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + extlen;
|
||||
NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue