* [PATCH 2/3] commands: dhcp: add parameter for private data
2018-08-31 9:01 [PATCH 0/3] extend dhcp functionality Oleg.Karfich
@ 2018-08-31 9:01 ` Oleg.Karfich
2018-08-31 9:01 ` [PATCH 1/3] net: dhcp: use private extension 224 also in discover requests Oleg.Karfich
2018-08-31 9:01 ` [PATCH 3/3] net: dhcp: add global variable for retries Oleg.Karfich
2 siblings, 0 replies; 6+ messages in thread
From: Oleg.Karfich @ 2018-08-31 9:01 UTC (permalink / raw)
To: barebox; +Cc: Oleg.Karfich
Signed-off-by: Oleg Karfich <oleg.karfich@wago.com>
---
commands/Kconfig | 5 +++--
commands/dhcp.c | 10 +++++++---
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/commands/Kconfig b/commands/Kconfig
index 951a869..675bd1c 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -1127,7 +1127,7 @@ config CMD_DHCP
help
DHCP client to obtain IP or boot params
- Usage: dhcp [-HvcuUr]
+ Usage: dhcp [-HvcuUro]
Options:
-H HOSTNAME hostname to send to the DHCP server
@@ -1135,7 +1135,8 @@ config CMD_DHCP
-c ID DHCP Client ID (code 61) submitted in DHCP requests
-u UUID DHCP Client UUID (code 97) submitted in DHCP requests
-U CLASS DHCP User class (code 77) submitted in DHCP requests
- -r RETRY retry limit (default 20)#
+ -r RETRY retry limit (default 20)
+ -o PRIVATE DATA private data (code 224) submitted in DHCP requests
config CMD_HOST
tristate
diff --git a/commands/dhcp.c b/commands/dhcp.c
index 1f07b2f..d9e844b 100644
--- a/commands/dhcp.c
+++ b/commands/dhcp.c
@@ -24,7 +24,7 @@ static int do_dhcp(int argc, char *argv[])
struct eth_device *edev;
const char *edevname;
- while ((opt = getopt(argc, argv, "H:v:c:u:U:r:")) > 0) {
+ while ((opt = getopt(argc, argv, "H:v:c:u:U:r:o:")) > 0) {
switch (opt) {
case 'H':
dhcp_param.hostname = optarg;
@@ -44,6 +44,9 @@ static int do_dhcp(int argc, char *argv[])
case 'r':
dhcp_param.retries = simple_strtoul(optarg, NULL, 10);
break;
+ case 'o':
+ dhcp_param.option224 = optarg;
+ break;
default:
return COMMAND_ERROR_USAGE;
}
@@ -72,13 +75,14 @@ BAREBOX_CMD_HELP_OPT("-v ID\t", "DHCP Vendor ID (code 60) submitted in DHCP requ
BAREBOX_CMD_HELP_OPT("-c ID\t", "DHCP Client ID (code 61) submitted in DHCP requests")
BAREBOX_CMD_HELP_OPT("-u UUID\t", "DHCP Client UUID (code 97) submitted in DHCP requests")
BAREBOX_CMD_HELP_OPT("-U CLASS", "DHCP User class (code 77) submitted in DHCP requests")
-BAREBOX_CMD_HELP_OPT("-r RETRY", "retry limit (default 20)");
+BAREBOX_CMD_HELP_OPT("-r RETRY", "retry limit (default 20)")
+BAREBOX_CMD_HELP_OPT("-o PRIVATE DATA", "private data (code 224) submitted in DHCP requests");
BAREBOX_CMD_HELP_END
BAREBOX_CMD_START(dhcp)
.cmd = do_dhcp,
BAREBOX_CMD_DESC("DHCP client to obtain IP or boot params")
- BAREBOX_CMD_OPTS("[-HvcuUr] [device]")
+ BAREBOX_CMD_OPTS("[-HvcuUro] [device]")
BAREBOX_CMD_GROUP(CMD_GRP_NET)
BAREBOX_CMD_HELP(cmd_dhcp_help)
BAREBOX_CMD_COMPLETE(eth_complete)
--
2.7.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] net: dhcp: use private extension 224 also in discover requests
2018-08-31 9:01 [PATCH 0/3] extend dhcp functionality Oleg.Karfich
2018-08-31 9:01 ` [PATCH 2/3] commands: dhcp: add parameter for private data Oleg.Karfich
@ 2018-08-31 9:01 ` Oleg.Karfich
2018-08-31 9:01 ` [PATCH 3/3] net: dhcp: add global variable for retries Oleg.Karfich
2 siblings, 0 replies; 6+ messages in thread
From: Oleg.Karfich @ 2018-08-31 9:01 UTC (permalink / raw)
To: barebox; +Cc: Oleg.Karfich
Signed-off-by: Oleg Karfich <oleg.karfich@wago.com>
---
include/dhcp.h | 1 +
net/dhcp.c | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/include/dhcp.h b/include/dhcp.h
index 0977ff4..ce5ed61 100644
--- a/include/dhcp.h
+++ b/include/dhcp.h
@@ -18,6 +18,7 @@ struct dhcp_req_param {
char *client_id;
char *user_class;
char *client_uuid;
+ char *option224;
int retries;
};
diff --git a/net/dhcp.c b/net/dhcp.c
index d30551d..6394397 100644
--- a/net/dhcp.c
+++ b/net/dhcp.c
@@ -98,6 +98,7 @@ struct dhcp_receivce_opts {
#define DHCP_CLIENT_ID 61
#define DHCP_USER_CLASS 77
#define DHCP_CLIENT_UUID 97
+#define DHCP_OPTION224 224
static int dhcp_set_ip_options(int option, u8 *e, IPaddr_t ip)
{
@@ -212,6 +213,7 @@ static int dhcp_extended(u8 *e, int message_type, IPaddr_t ServerID,
e += dhcp_set_string_options(DHCP_CLIENT_ID, dhcp_param.client_id, e);
e += dhcp_set_string_options(DHCP_USER_CLASS, dhcp_param.user_class, e);
e += dhcp_set_string_options(DHCP_CLIENT_UUID, dhcp_param.client_uuid, e);
+ e += dhcp_set_string_options(DHCP_OPTION224, dhcp_param.option224, e);
*e++ = 55; /* Parameter Request List */
cnt = e++; /* Pointer to count of requested items */
@@ -446,6 +448,7 @@ static char *global_dhcp_bootfile;
static char *global_dhcp_oftree_file;
static char *global_dhcp_rootpath;
static char *global_dhcp_tftp_server_name;
+static char *global_dhcp_option224;
static void set_res(char **var, const char *res)
{
@@ -478,6 +481,8 @@ int dhcp_request(struct eth_device *edev, const struct dhcp_req_param *param,
dhcp_param.client_uuid = global_dhcp_client_uuid;
if (!dhcp_param.client_id)
dhcp_param.client_id = global_dhcp_client_id;
+ if (!dhcp_param.option224)
+ dhcp_param.option224 = global_dhcp_option224;
if (!dhcp_param.retries)
dhcp_param.retries = DHCP_DEFAULT_RETRY;
@@ -624,6 +629,7 @@ static int dhcp_global_init(void)
globalvar_add_simple_string("dhcp.user_class", &global_dhcp_user_class);
globalvar_add_simple_string("dhcp.oftree_file", &global_dhcp_oftree_file);
globalvar_add_simple_string("dhcp.tftp_server_name", &global_dhcp_tftp_server_name);
+ globalvar_add_simple_string("dhcp.option224", &global_dhcp_option224);
return 0;
}
@@ -639,3 +645,4 @@ BAREBOX_MAGICVAR_NAMED(global_dhcp_user_class, global.dhcp.user_class, "user cla
BAREBOX_MAGICVAR_NAMED(global_dhcp_tftp_server_name, global.dhcp.tftp_server_name, "TFTP server Name returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_oftree_file, global.dhcp.oftree_file, "OF tree returned from DHCP request (option 224)");
BAREBOX_MAGICVAR_NAMED(global_dhcp_retries, global.dhcp.retries, "retry limit");
+BAREBOX_MAGICVAR_NAMED(global_dhcp_option224, global.dhcp.option224, "private data to send to the DHCP server (option 224)");
--
2.7.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/3] net: dhcp: add global variable for retries
2018-08-31 9:01 [PATCH 0/3] extend dhcp functionality Oleg.Karfich
2018-08-31 9:01 ` [PATCH 2/3] commands: dhcp: add parameter for private data Oleg.Karfich
2018-08-31 9:01 ` [PATCH 1/3] net: dhcp: use private extension 224 also in discover requests Oleg.Karfich
@ 2018-08-31 9:01 ` Oleg.Karfich
2018-09-04 6:12 ` Sascha Hauer
2 siblings, 1 reply; 6+ messages in thread
From: Oleg.Karfich @ 2018-08-31 9:01 UTC (permalink / raw)
To: barebox; +Cc: Oleg.Karfich
Signed-off-by: Oleg Karfich <oleg.karfich@wago.com>
---
net/dhcp.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/dhcp.c b/net/dhcp.c
index 6394397..92e0501 100644
--- a/net/dhcp.c
+++ b/net/dhcp.c
@@ -448,6 +448,7 @@ static char *global_dhcp_bootfile;
static char *global_dhcp_oftree_file;
static char *global_dhcp_rootpath;
static char *global_dhcp_tftp_server_name;
+static char *global_dhcp_retries;
static char *global_dhcp_option224;
static void set_res(char **var, const char *res)
@@ -629,6 +630,7 @@ static int dhcp_global_init(void)
globalvar_add_simple_string("dhcp.user_class", &global_dhcp_user_class);
globalvar_add_simple_string("dhcp.oftree_file", &global_dhcp_oftree_file);
globalvar_add_simple_string("dhcp.tftp_server_name", &global_dhcp_tftp_server_name);
+ globalvar_add_simple_string("dhcp.retries", &global_dhcp_retries);
globalvar_add_simple_string("dhcp.option224", &global_dhcp_option224);
return 0;
--
2.7.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread