2018-02-22 |
DHCP: fix option 54 passing
...
Though variable net_dhcp_server_ip was declared and used as a
function parameter it was never assigned. That's why a DHCP
request was sent without option 54 set. Some DHCP server for
example dnsmasq didn't accept such a packet.
As both offered IP address and server IP are stored in the global
dhcp_result structure we don't need either net_dhcp_server_ip or
OfferedIP variables and can use the addresses from dhcp_result
directly.
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Yegor Yefremov
authored
on 20 Feb 2018
Sascha Hauer
committed
on 22 Feb 2018
|
2018-01-05 |
net: make struct bootp __packed to prevent unaligned store on MIPS
...
How to repropduce the unaligned store problem
qemu-system-mips -nodefaults -M malta -m 256 \
-nographic -serial stdio -monitor null \
-bios barebox-flash-image \
-net user -net nic,model=rtl8139
...
barebox:/ dhcp
Ooops, address error on store!
$ 0 : 00000000 00000000 01010600 697f2a2e
$ 4 : a0850000 00000000 0000001c a040c1b8
$ 8 : 00000000 00000002 00000002 00000000
$12 : 00000000 00000040 00000100 00000001
$16 : a040bba0 a0850000 a0850000 a0850000
$20 : 00000000 00000075 00000076 a040ba20
$24 : 00000002 a080f210
$28 : 00000000 a03ffce0 fffffffd a0833b8c
Hi : 000154f8
Lo : 20000000
epc : a0833b84
ra : a0833b8c
Status: 00000002
Cause : 80000414
Config: 80008482
### ERROR ### Please RESET the board ###
The unaligned store instruction is located in the bootp_request() from net/dhcp.c:
a0833b50 <bootp_request>:
..
a0833b7c: 3c020101 lui v0,0x101
a0833b80: 24420600 addiu v0,v0,1536 /* 0x1010600 -> v0 */
a0833b84: 0c20024a jal a0800928 <get_time_ns>
a0833b88: ae02002a sw v0,42(s0) /* store 0x1010600 to addr s0 + 42 */
This assembler code is generated by mips-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
from this:
bp = (struct bootp *)payload;
bp->bp_op = OP_BOOTREQUEST; /* 0x01 */
bp->bp_htype = HWT_ETHER; /* 0x01 */
bp->bp_hlen = HWL_ETHER; /* 0x06 */
bp->bp_hops = 0;
Compiler replaces four 'store byte' instruction by one 'store 32-bit word'
instruction. Alas sometimes this leads to unaligned store situation.
Making struct bootp __packed prevents this optimization and fixes the problem.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Tested-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Antony Pavlov
authored
on 25 Dec 2017
Sascha Hauer
committed
on 5 Jan 2018
|
2017-12-14 |
net: dhcp: rework
...
The DHCP code is a mess. It is not clear which options are sent to the
server and which options are returned from the server. Also environment
variables are read from and written to all over the place.
This patch cleans this up. There now is struct dhcp_req_param which is
used for options sent to the server and struct dhcp_result which contains
the values sent from the server. The values from the server are written
to the barebox variables in a single place. Also it's now possible to
call the dhcp code without modifying barebox variables at all, storing
the result only in the dhcp result struct.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2017
|
net: dhcp: Coding style fixes
...
Fix some spaces-before-function-opening-brackets and duplicate empty
lines.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2017
|
net: dhcp: avoid unnecessary casts
...
Drop explicit casts to/from void pointers.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2017
|
net: dhcp: Allow to specify network device
...
Instead of allowing to DHCP only on the "current" network
device, allow to specify the desired network device. This
is a first step to get rid of the concept of a "current"
network device.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2017
|
2017-12-01 |
net: dhcp: Do not overwrite serverip if it is valid
...
Some DHCP servers provide the wrong serverip in which case
it is desired to specify it manually and won't let the dhcp
command overwrite it.
This has previously been done by setting the serverip again
to the desired value after dhcp has been executed. With this
patch we do not overwrite it in the first place if it is valid
already. This is necessary when the serverip is not set via
/env/network/eth* but via nv.net.server.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 1 Dec 2017
|
net: Make domainname and nameserver globalvars
...
Register domainname and nameserver as globalvars rather than attaching
them to a dedicated net device. the global device already exists and
already contains much of the barebox configuration, so no need to add
an extra device for network config.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 1 Dec 2017
|
net: Add and use IP_BROADCAST
...
Rather than using the hardcoded value 0xffffffff in several places
add a define for the broadcast IP.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 1 Dec 2017
|
2016-09-22 |
convert users to %pI4
...
Convert users of ip_to_string() and print_IPaddr() to %pI4 and
remove the now unused functions.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 22 Sep 2016
|
2016-04-15 |
string: Fix (v)asprintf prototypes
...
Our asprintf and vasprintf have different prototypes than the glibc
functions. This causes trouble when we want to share barebox code
with userspace code. Change the prototypes for (v)asprintf to match
the glibc prototypes. Since the current (v)asprintf are convenient
to use change the existing functions to b(v)asprintf.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 15 Apr 2016
|
2015-12-14 |
net: dhcp: make unmodified variable const
...
'str' in dhcp_set_string_options is never modified, so make it const.
With this we no longer have to cast away the const returned from getenv.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2015
|
net: dhcp: simplify dhcp_options_process
...
dhcp_options_handle returns the index into the dhcp_options array.
This is only to be able in the caller to print a debug message when
the index returned from dhcp_options_handle is out of bounds.
Simplify this by printing the debug message in dhcp_options_handle
and not in the caller.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2015
|
net: dhcp: unify options and params
...
The dhcp code distinguishes between options and params. If sent to the
server they are params, if received from the server they are options.
Unify them all to be options. If it has a handle_param callback it's
a param, if it has a handle callback it's an option.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 Dec 2015
|
2015-09-29 |
net: dhcp: Fix CONFIG variable name
...
Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Wadim Egorov
authored
on 28 Sep 2015
Sascha Hauer
committed
on 29 Sep 2015
|
2015-06-05 |
net: dhcp: Split dhcp funcionality & add dhcp command
...
dhcp/bootp was bound to the command functionality.
This patch splits the dhcp command.
We are now able to use bootp without a shell.
This patch adds also a check for environment variables and globalvar.
So only when ENVIRONMENT_VARIABLES and GLOBALVAR is set, all received
dhcp data will be stored.
Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Wadim Egorov
authored
on 3 Jun 2015
Sascha Hauer
committed
on 5 Jun 2015
|
2015-01-29 |
dhcp: fix request packet's seconds elapsed
...
it's done in the discover packet so let's do it also in the request packet.
Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Eric Bénard
authored
on 28 Jan 2015
Sascha Hauer
committed
on 29 Jan 2015
|
dhcp: fix request packet
...
we are not supposed to fill ciaddr, yiaddr and siaddr in the request packet.
Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Eric Bénard
authored
on 28 Jan 2015
Sascha Hauer
committed
on 29 Jan 2015
|
dhcp: fix request packet's requested IP option
...
In the request packet, we are supposed to copy the IP that the DHCP server
provided in the offer packet so that dhcp_extended can fill the option 50.
There is actually an error in barebox as the pointer to the packet currently
built is used as the source instead of the pointer to the offer packet.
With this patch, barebox now sends a request packet which includes the right
requested IP in option 50.
Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Eric Bénard
authored
on 28 Jan 2015
Sascha Hauer
committed
on 29 Jan 2015
|
2014-07-08 |
Do not use macros in command help
...
The help texts are parsed by sphinx which cannot handle macros, so
replace them with their values.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 8 Jul 2014
|
2014-05-14 |
commands: harmonize in-barebox documentation
...
This patch does probably too much, but it's hard (and very
cumbersome/time consuming) to break it out. What is does is this:
* each command has one short description, e.g. "list MUX configuration"
* made sure the short descriptions start lowercase
* each command has one usage. That string contains just the
options, e.g. "[-npn]". It's not part of the long help text.
* that is, it doesn't say "[OPTIONS]" anymore, every usable option
is listed by character in this (short) option string (the long
description is in the long help text, as before)
* help texts have been reworked, to make them
- sometimes smaller
- sometimes describe the options better
- more often present themselves in a nicer format
* all long help texts are now created with BUSYBOX_CMD_HELP_
macros, no more 'static const __maybe_unused char cmd_foobar_help[]'
* made sure the long help texts starts uppercase
* because cmdtp->name and cmdtp->opts together provide the new usage,
all "Usage: foobar" texts have been removed from the long help texts
* BUSYBOX_CMD_HELP_TEXT() provides the trailing newline by itself, this
is nicer in the source code
* BUSYBOX_CMD_HELP_OPT() provides the trailing newline by itself
* made sure no line gets longer than 77 characters
* delibertely renamed cmdtp->usage, so that we can get compile-time
errors (e.g. in out-of-tree modules that use register_command()
* the 'help' command can now always emit the usage, even without
compiled long help texts
* 'help -v' gives a list of commands with their short description, this
is similar like the old "help" command before my patchset
* 'help -a' gives out help of all commands
Signed-off-by: Holger Schurig <holgerschurig@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Holger Schurig
authored
on 13 May 2014
Sascha Hauer
committed
on 14 May 2014
|
commands: group 'help' output
...
The old output of "help" was just producing a long list, that usually
scrolled of the screen (even on a X11 terminal). This list is more
compact, and also sorted by groups.
The old output format (plus grouping) is now available with 'help -v'.
Example:
Information commands:
?, devinfo, help, iomem, meminfo, version
Boot commands:
boot, bootm, go, loadb, loads, loadx, loady, saves, uimage
...
Signed-off-by: Holger Schurig <holgerschurig@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Holger Schurig
authored
on 13 May 2014
Sascha Hauer
committed
on 14 May 2014
|
2013-10-07 |
dhcp: replace dhcp_getenv_int with getenv_uint
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 7 Oct 2013
|
2013-08-16 |
Make hostname available to C Code
...
The boards often have a sane default for the hostname. Provide a C
function for setting/getting it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 16 Aug 2013
|
globalvar: Allow to set initial value
...
Calling globalvar_add_simple() and setting a value is more than common.
Add a parameter for the initial value.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 16 Aug 2013
|
2013-05-14 |
net: dhcp: Fix tftp servername handling
...
When the dhcp code discovered the tftp-server-name option it immediately
tries to resolve the name. This can't succeed since the we are somewhere
in the dhcp processing and the nameserver may not even be known.
Fix this by resolving the name when dhcp is completed. While at it, do
this in a way that net_set_serverip is only called when resolv() returns
something useful. Otherwise we may end up overwriting a previously
configured serverip which came from the bootp bp_siaddr field.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 May 2013
|
net: dhcp: Fix return value on ctrl-c
...
the dhcp command will return with 0 when ctrl-c is pressed. Fix this to
-EINTR instead.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 14 May 2013
|
2013-02-28 |
net: dhcp: fix typo
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 28 Feb 2013
|
2012-10-02 |
dhcp: add retries limit support
...
via -r opt, global.dhcp.retries or dhcp_retries
set the priority order;
This will allow to do not stay infinite loop if no dhcp available
for boot sequence as example
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Jean-Christophe PLAGNIOL-VILLARD
authored
on 23 Aug 2012
Sascha Hauer
committed
on 2 Oct 2012
|
dhcp: add copy_only_if_valid support
...
This will allow to only update a var if recive a valid data.
This is need for hostname.
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Jean-Christophe PLAGNIOL-VILLARD
authored
on 15 Aug 2012
Sascha Hauer
committed
on 2 Oct 2012
|