Skip to content
Snippets Groups Projects
Commit 9ace17c8 authored by Ilya Yanok's avatar Ilya Yanok Committed by Tom Rini
Browse files

net/bootp: add VCI support for BOOTP also


Vendor Class Identifier option is common to BOOTP and DHCP and
can be useful without PXE. So send VCI in both BOOTP and DHCP
requests if CONFIG_BOOTP_VCI_STRING is defined.

Signed-off-by: default avatarIlya Yanok <ilya.yanok@cogentembedded.com>
Signed-off-by: default avatarTom Rini <trini@ti.com>
parent a64f0241
No related branches found
No related tags found
No related merge requests found
......@@ -341,6 +341,15 @@ BootpTimeout(void)
}
}
#define put_vci(e, str) \
do { \
size_t vci_strlen = strlen(str); \
*e++ = 60; /* Vendor Class Identifier */ \
*e++ = vci_strlen; \
memcpy(e, str, vci_strlen); \
e += vci_strlen; \
} while (0)
/*
* Initialize BOOTP extension fields in the request.
*/
......@@ -352,7 +361,6 @@ static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID,
u8 *cnt;
#if defined(CONFIG_BOOTP_PXE)
char *uuid;
size_t vci_strlen;
u16 clientarch;
#endif
......@@ -437,12 +445,10 @@ static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID,
printf("Invalid pxeuuid: %s\n", uuid);
}
}
#endif
*e++ = 60; /* Vendor Class Identifier */
vci_strlen = strlen(CONFIG_BOOTP_VCI_STRING);
*e++ = vci_strlen;
memcpy(e, CONFIG_BOOTP_VCI_STRING, vci_strlen);
e += vci_strlen;
#ifdef CONFIG_BOOTP_VCI_STRING
put_vci(e, CONFIG_BOOTP_VCI_STRING);
#endif
#if defined(CONFIG_BOOTP_VENDOREX)
......@@ -529,6 +535,10 @@ static int BootpExtended(u8 *e)
*e++ = (576 - 312 + OPT_FIELD_SIZE) & 0xff;
#endif
#ifdef CONFIG_BOOTP_VCI_STRING
put_vci(e, CONFIG_BOOTP_VCI_STRING);
#endif
#if defined(CONFIG_BOOTP_SUBNETMASK)
*e++ = 1; /* Subnet mask request */
*e++ = 4;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment