Last parameter of exec_cmd function has been corrected from
structure type to pointer to structure type.
Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
This commit adds packet socket support to socket api.
This version supports basic packet socket features.
Protocol family is AF_PACKET, type of socket is
SOCK_RAW and proto type is ETH_P_ALL. The user will
receive every packet (with L2 header) on the wire.
For TX, the subsystem expects that the user has set
all the protocol headers (L2 and L3) properly.
Networking subsystem doesn't verify or alter the headers while
sending or receiving the packets. This version supports packet
socket over Etherent only. Also combination of other family
and protocols doesn't work (i.e. Application can not open
packet-socket and non packet-socket together).
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
If packet family is AF_PACKET and CONFIG_NET_SOCKETS_PACKET
is enabled, just handover the packet to driver for sending.
L2 layer will not touch AF_PACKETs at the moment.
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
If CONFIG_NET_SOCKETS_PACKET is enabled, then feed the packet
to net_packet_socket_input() for processing. It will search
for the net_contexts and if proper handler is found, pass
the packet to connection handler.
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
This commit adds basic packet socket support to net_context and
allows application to receive or send network packets in raw
format.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
As we are adding more protocol families and protocol types
to connection handlers, some values might be same across
different types. Current connection handler only stores
proto type to match the handler, which is not enough if
we add more types. Also combination of family and types
may vary too. So adding family to connection handler to
figure out best match.
Also changing proto variable in net_conn from u8_t to u16_t.
net_context has 16 bit proto.
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
When creating net_pkt, the default value of net_pkt data_len was
set to zero. In case of RAW sockets, when family is AF_PACKET,
the data_len will be zero as there is no higher level protocol
information. So in this case, the default value of data_len
must be set to interface MTU
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
The return value of net_if_get_link_addr points to a struct net_linkaddr
instead of to the raw MAC address. Without this fix the source address
will always end in 06:03 and will most likely be the same for different
boards running the same software.
Signed-off-by: Daniel Glöckner <dg@emlix.com>
Translate HCI error codes to POSIX error codes in order to be able to
distinguish reason of connectable advertising start failure.
Signed-off-by: Filip Kubicz <filip.kubicz@nordicsemi.no>
Return meaninful HCI error when it's not possible to start advertising
because of maximum number of connections already in use.
Signed-off-by: Filip Kubicz <filip.kubicz@nordicsemi.no>
A few cases were missed where we weren't cleaning up the existing
connection correctly. This was easily missed because we try and
clean up the connection everywhere.
Instead, let's clean up any existing connection prior to starting
a new one in the do_bootstrap_reg() and do_registration()
functions.
Signed-off-by: Michael Scott <mike@foundries.io>
- Fix enum naming throughout
- Correct next_instance logic
- Move to registration server if no bootstrap server is found
- Fixes to logging
Signed-off-by: Michael Scott <mike@foundries.io>
This commit enables fine-grained power state locking.
Now, each power state could be independently enabled or disabled.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This patch increases the amount of slab memory per item for the shell
history to match the maximum command input buffer size plus the
accounting information for the dnode list item.
Signed-off-by: Andy Gross <andy.gross@linaro.org>
As the legacy library has been removed, we no longer need to
differentiate betwen MQTT implementations. Therefore align the library
folder name with other libraries and remove the `_sock` suffix.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Remove the redundant proof of concept template temporary
role implementation from the repository.
Relates to #12860.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Extended shell to be able to process logs in place
(in the context of a log call). In order to achieve that,
shell was extended to support for TX blocking operations. If
CONFIG_LOG_INPLACE_PROCESS is enabled then shell instance
attempts to be initialized in blocking TX mode. If fails to
do so, shell log backend is disabled. If successfully enabled
logs are processed and printed in the context of the call.
Due to that change, user may expirience interleaved output as
shell has no means to multiplex shell output with logger output.
In extreme, huge amount of log messages may prevent shell thread
execution and shell may become unresponsive.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
Given the device can be enumerated as both legacy and composite, we
always need to provide the payload_data buffer.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
In composite mode the request handler buffer is common to all functions,
and its size is defined by CONFIG_USB_COMPOSITE_BUFFER_SIZE.
Given the device is enumerated as composite in runtime mode and
as legacy in download mode, we need to define wTransferSize as
the minimum of the two.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
The upload code assumes the buffer to use is the DFU provide one, and
not the one provided by the request handler, which is different in
composite mode.
This is only a theoretical issue, as this function is only executed
once the device has been re-enumerated in legacy mode, but that is a
required step before unifying legacy and composite code.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
The flash_read() function takes an offset from beginning of the flash.
This patch subtract FLASH_BASE_ADDRESS from the absolute address. This
fixes DFU firmware upload.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
With an SPI based flash, CONFIG_FLASH_BASE_ADDRESS is not defined. In
that case it is safe to assume that the base address is 0.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
As we are removing net_app and net_pkt based libraries and
applications, CoAP legacy based libraries and apps are moved
to socket based implementations. So removing legacy CoAP.
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
Each platform is now specifying list of supported power states
as a Kconfig options. Some of the specified states could be
disabled in runtime. As result there is no need for the removed
interface.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
As rx_buf & tx_buf are defined with a NETUSB_MTU size, this cause
that the frames over 1500 bytes can not be received and are discarded.
Secondly, as fragmentation is not supported (for UDP and TCP datagram),
increase NETUSB_MTU to the maximum possible ethernet frame size :1522
Signed-off-by: Nicolas LANTZ <nicolas.lantz@ubicore.net>
In case of Ethernet, if the requested size is larger than MTU and if
AF_UNSPEC is provided, the allocator will need to take into account
the ethernet header size which is not accounted in the MTU.
Other current L2 do not follow that rule as their MTU is based on IP
one (IPv6 most of the time). What they declare as MTU is the full frame
size they handle (minus the FCS for instance in 15.4). So with
AF_UNSPEC, such assumption on L2 header size is unrelevant.
(On 15.4 the header size is variable anyway and cannot be known until
the frame is parsed).
Fixes#12982
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This was forgotten modification as commit 93e5181fbd came in master
though commit 0d519f7bcf was already written.
Thus fixing the missing lock/unlock.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
The new Logger subsys uses a very robust formatter function in minimal
libc: _prf(). This adds up to ~3K flash. For resource constrained
devices running samples that don't use the extra formatting options,
allow them to select LOG_DISABLE_FANCY_OUTPUT_FORMATTING to revert
back to vprintk.
MCUBOOT is one such sample that has a very limited amount of output
and benefits from the flash savings due to small bootloader partition
sizes.
Signed-off-by: Michael Scott <mike@foundries.io>
During regression testing of PA/LNA feature it was noticed
that compilation failed due to missing port of the code
conditionally compiled for PA/LNA feature.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Convert the hci_spi sample to get the SPI and GPIO settings from Device
Tree instead of Kconfig.
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
This allows to place instances of the class one after another in the
linker section.
Fixes#12908
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
The power subsystems call the sys_pm_notify_lps_entry()
and sys_pm_notify_lps_exit() to notify application that
given power mode has been entered and exited. This commit
adds weak implementation of these functions in order to
not force applications to implement its own empty stubs.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commit implements a CTF-backend for Zephyr's tracing API.
The CTF-backend itself is split in a middle-layer and a bottom-layer.
- Middle-layer decides the payload in event transactions,
- Bottom-layer implements the IO transport.
A simple POSIX bottom-layer is provided so far.
Signed-off-by: François Delawarde <fnde@oticon.com>
The algorithm used in residency-based power policy should
select the most saving power mode basing on the expected
sleep time. However due to small bug, the most power
efficient mode was never selected.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
If status is 0, both ip_hdr and proto_hdr will own a pointer to the
relevant IP and Protocol headers. In order to know which of ipv4/ipv6
and udp/tcp one will need to use respectively net_pkt_family(pkt) and
net_context_get_ip_proto(context).
Having access to those headers directly, many callbacks will not need
to parse the packet again no get the src/dst addresses or the src/dst
ports. This will be change after this commit.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Though these are currently used by the core only, it will be then used
by net_context as well. This one of the steps to get rid of net_pkt's
appdata/appdatalen attributes.
Also normalizing all ip/proto parameters name to ip_hdr and proto_hdr.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Now that net_pkt are accessed through a common r/w API, using below a
net_pkt_cursor, let's have an option that will reset this cursor once
the net_pkt is freed.
Result is instead of segfaulting on r/w access, these operations will
bail out properly. Subsequent, and logical (unless you have a leak
which is another issue) net_pkt_unref will tell you who/where the pkt
was freed. Without it, you will get a segfault for instance, but that
won't tell you the exact reason. This options can help you then.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Only next to be removed functions like net_tcp_set_checksum() are left
untouched. All the rest is switched.
Adding net_tcp_finalize() to follow the same logic as for UDP and else.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>