On Tue, Jan 23, 2018 at 8:02 AM, Gaëtan Carlier <gcem...@gmail.com> wrote:
> Joe,
> On 01/23/2018 01:54 AM, Joe Hershberger wrote:
>> On Mon, Jan 22, 2018 at 5:28 PM, Gaëtan Carlier <gcem...@gmail.com> wrote:
>>> Hi Joe,
>>>
>>> On 01/22/2018 11:46 PM, Joe Hershberger wrote:
>>>> Hi Gaëtan,
>>>>
>>>> On Thu, Jan 18, 2018 at 4:56 AM, Gaëtan Carlier <gcem...@gmail.com> wrote:
>>>>> Hi,
>>>>> I would like to implement a new command and submit it to the mailing list.
>>>>> The command will have the following format:
>>>>> udpsend <destination/broadcast ip> <destination port> <source port> <text 
>>>>> to send>
>>>>>
>>>>> udpsend 255.255.255.255 4040 0 hello world
>>>>>
>>>>> If source port is 0, a random port will be used (11000 + (get_timer(0) % 
>>>>> 4096))

If you want to add this, add it as a command in  cmd/netcat.c and use
the same semantics as netcat as much as possible. Since there is no
pipe support in U-Boot's shell, the data to send will have to be a
parameter. Best to make it something that does not collide with
netcat.

In netcat, you specify a "-u" switch to enable UDP, so your command
would require that switch (so TCP could be added later).

So that means your invocation should be "nc -u -p <srcport> <host>
<dstport> -- Text to send"

>>>> I'd like to understand the purpose / use-case for this command? Maybe
>>>> there is a more appropriate way to solve the problem you have instead.
>>>>
>>>
>>> I want to send the current progression of an update script. As the board 
>>> has no display/leds, the only way to get update progression is to broadcast 
>>> UDP packet that a PC software will monitor. U-Boot will load/source a 
>>> script from an ext4 partition. This script will load a rootfs image from 
>>> update partition of an eMMC splitted into 10M chunks that will be written 
>>> to an other partition of the eMMC.
>>> This is for update on site (by customer).
>>>
>>> This UDP command will also be used in a closed production LAN to send 
>>> Unique ID of the CPU (secret) and the MAC address to the monitoring 
>>> production (burning) software that will feed a database to be able to 
>>> generate license keys linked to hardware and print a label with the product 
>>> name and the MAC address.
>>>
>>> Maybe there is already existing command that I can use from a U-Boot script 
>>> ?
>>
>> I think this is commonly done by enabling netconsole and controlling /
>> monitoring progress based on console output sent over UDP.
>
> a) I can/want not enable netconsole when the product is on the network of the 
> customer.
> b) Once on customer LAN, everything is DHCP.
> c) I don't want to increase load of CPU because updating software on 
> customer's computer has to decode all UDP frames sent by U-Boot while 10% of 
> UDP are really needed (several boards can be on the same network).
>
>
>>
>> Cheers,
>> -Joe
>>
>>>>> Where do I have to place my code : cmd or net directory ?
>>>>> For me cmd will be the better directory to keep it away from all more 
>>>>> complex stuff like DHCP, TFTP, ...
>>>>
>>>> That's probably true. cmd/ would be the appropriate place.
>>>>
>>>> -Joe
>>>>
>>>
>>> Regards,
>>> Gaëtan
>
> Regards,
> Gaëtan.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to