Commit Graph

10266 Commits

Author SHA1 Message Date
Tomasz Bursztyka 97daa51c80 net: Cleanup net_if's documentation
Change-Id: Idd139ee5f56c8b55119db69582393fe2906eae74
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:13 +02:00
Tomasz Bursztyka b8e3415264 net: Let's use inline function for type checking for net_nbuf
Using macros does not let the compiler verifying about the type we are
providing, which usually give an error easier to understand.
Also, this will let the compiler deciding how to actually optimize
(inline or not) the code.

Change-Id: Iba49590b620ef0a1bd0ed5621453524fcfea747c
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:13 +02:00
Tomasz Bursztyka b70a4f501a net: Moving header files to include/net/yaip
This make sure we will found all relevant headers in the right location.

Change-Id: I37fe978ed2af09d921c48df6986a8df9041ddc3f
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:13 +02:00
Tomasz Bursztyka 451dadd932 net: Refine Kconfig to put NET_BUF appart
NET_BUF might be used alone. Also Bluetooth does not necessarily needs
an IP stack to run. Changing titles names for better understanding.

Change-Id: Iabfd7bf0689e79d27cc7897856a528f0dc5740f7
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:13 +02:00
Tomasz Bursztyka f51d84d93b samples: Fix echo_server for native IP stack
net_context.h is missing and one variable had a wrong name.

Change-Id: I4aac2f5c12cea39553fb86d1bd497c88f0ef1963
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:13 +02:00
Tomasz Bursztyka 11f572c9e1 sanitycheck: Recognize native IP stack specific sections
Without these, test case will fail miserably.

Change-Id: Ib46d167b8782c33362ac6edb9d8c50abc25908c0
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:13 +02:00
Jukka Rissanen 92112c61aa net: Debugging function to print fragment chain information
Debug function that will print individual fragments and their sizes.

Change-Id: I84ce144230fb099bb44ed383075564ebf377998f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:13 +02:00
Jukka Rissanen 51f48ff377 net: Refactor nbuf.h and nbuf.c
No functionality changes.

Change-Id: I4dc36ee95c46a1311cfa1466e069697df6268854
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:13 +02:00
Jukka Rissanen 55dcaf9e22 net: tests: Fix project file for IP address tests
Disable IPv6 DAD and ND for IP address test as there is
no need to do neighbor discovery in the test. We also
would like to see network interface debugging and use
dummy L2 driver instead of ethernet one.

Change-Id: Ia9f218c8d4c13afa1482302691d2ef72af4a7b13
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:13 +02:00
Jukka Rissanen 894e42d025 net: tests: Fix IP address test so that it will not crash
The driver_api pointer was set to NULL and send() pointer
was missing which caused a crash in TX fiber.

Change-Id: I7204c975691476dd9ab2c61bfd11b7664343e47c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:13 +02:00
Jukka Rissanen fe16af1e06 net: tests: ICMPv6 was missing random number config
Change-Id: Ibcfa6662f30727a31cc2fa371e8a3ec3923db3cd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 148e1ea7aa net: Fix compilation when IPv6 is disabled
Change-Id: If1c7b8e3befa48b405aa5f6d4d04a87c72afc5b5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 482d7c69cc net: Refactored IPv6 DAD and ND activation
The earlier Kconfig entries for IPv6 DAD and ND were confusing.
This commit will clarify this so DAD is activated by
CONFIG_NET_IPV6_DAD and ND is activated by CONFIG_NET_IPV6_ND.
These are settings are enabled by default.

Change-Id: If6245e3425489bc454a0d75113770c4f797a4017
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen b9b1dec6a3 net: tests: Turning off IPv6 for ARP tests
ARP is IPv4 only so no need to have IPv6 functionality.

Change-Id: Ie70242f5763ba4945c311898643414851f7e8660
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen f42c8126eb net: tests: Unit tests for net_nbuf_push()
These tests will verify that we can successfully insert
some space in front of the net_buf fragment chain.

Change-Id: Idf52ed56c52d66268783fb4fecd44b70fc852734
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen ac390213ff net: Utility that inserts free space to the fragment list
Provide an utility function that pushes data down in the fragment
chain which means that there would be some free space before the
first fragment.

Change-Id: I491ac4e8cbf633f86f2351cad48d683e829bda63
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 47d71db2f8 net: Utility function to compact net_buf fragments
Provide a function that checks if there is any free space
in the individual fragment and remove such slack. If there
are fragments that would become empty, then those fragments
are removed from the fragment list and freed to the fragment
pool.

Change-Id: Ieb1c953a1458622c4552c23ef38e330873cd27c3
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen a1a17d5a98 net: tests: Fix ARP test so that it will not crash
The driver_api pointer was set to NULL which will cause
a crash in TX fiber.

Change-Id: If1c9a1e44904970f3a0019741eaaad4bf62d2c73
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 87fd856041 net: tests: Unit tests for UDP handler
Simple UDP protocol testing.

Change-Id: I3ee37ff93127245a80fdf31856a95d9efc403862
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen f60896dc9e net: Catch UDP network traffic
Catch UDP network traffic and call the corresponding handler when
UDP network packet is received. If there is no handler for such
a traffic then ICMP error message is sent to network peer.

Change-Id: I71721deb9ca0f8d3bdb00db43e5555e5b96ae2d2
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 4c9c626129 net: Initial UDP support
Create a handler for catching UDP network traffic. This commit
is only providing infrastructure for UDP management.

Change-Id: Ia6f8de62773a85f7b637b73bfe3c89197cc2abb1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 00e77da356 net: Generic connection handler for UDP and TCP
The connection handling will provide an API where caller can
register a callback which is called when desired UDP or TCP
network packet is received.

Change-Id: I9a80e8b30e92c4f2e9238ff58c24ac4648aad8ea
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen b0c9103304 net: Add support for ICMPv4 error message
Provide an API to send ICMPv4 error message. This can be used
for example in UDP and TCP to inform peer that there is no one
listening a certain port.

Change-Id: I915139be402892a9148e28f9c0883f7da8eb5b80
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 9612f97e94 net: Add support for ICMPv6 error message
Provide an API to send ICMPv6 error message. This can be used
for example in UDP and TCP to inform peer that there is no one
listening a certain port.

Change-Id: Ied682901f7fc406ba383293cb7c338ea21114b0d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:12 +02:00
Jukka Rissanen 813fdf85ed net: Add IPv6 minimum MTU value
Added define for minimum IPv6 MTU value (1280 bytes)

Change-Id: Ia81d8b3df079a2bb9bfb0a05e297d94423ba0fc5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen c30f90a4c4 net: Make some IPv6 utility functions to use const addr
Changed the net_is_ipv6_addr_unspecified() and
net_is_ipv6_addr_solicited_node() to use const IPv6 address
as those function do not change the address.

Change-Id: I1222bf946c371433a8468fa71054b93346e2ae4e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen abf82f4150 net: Add TTL IPv4 option
User can set the initial value for time-to-live option in Kconfig.
The TTL option is only used in IPv4.

Change-Id: I57677e65a2adee4aa4dc16d1504f848d1218c6c1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen f923adb038 net: tests: Add unit tests for net_nbuf_copy()
The tests will make sure net_nbuf_copy() works as expected.

Change-Id: I48dc3b794c70ec4d6436feb76508952c88bbf09b
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen 38a3253744 net: Add net_nbuf_copy() utility function
This function will copy desired amount of bytes from one
fragment list to another. Caller can specify amount of
bytes reserved in front of the new fragment list.

Change-Id: Ie3344b285a47c79f116fbcff500d383a99d28bf9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Tomasz Bursztyka aca91938c5 net: Kconfig: Refactor Kconfig menus for better clarity
This helps also to split uIP and native stacks properly.
Next thing that should be done will be to isolate debug
options for native stack out of uIP tree.

Change-Id: I4ff856b5a4bb57f3773e1852f84f658baf26858f
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen 57ab8e0899 net: Make IPv6 ND optional
It is possible to turn of IPv6 neighbor discovery if it is
not used in order to save some memory.

Change-Id: I20159dd452b7bac6962532a91e844c33f3da2dfb
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen eca55e103e net: Initial router advertisement support
Change-Id: I842a5aeff870da71eeabdc29c8ea730c541eddd0
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen 66f87c9542 net: Initial router solicitation support
Change-Id: Ic3aee9999656ab435e0965456d94fd5540b4e220
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen 9b3d8378e5 net: Initial IPv6 neighbor discovery support
Change-Id: I76dc7471c56085a61bbdd9f75ecb49aeb0874dbb
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen a7e75ba81b slip: Setup fragments properly if MTU is bigger than frag size
If the MTU is bigger than fragment size, we must leave the
fragment link layer header empty so that the received data
count does not get wrong.

Change-Id: I0ed562f39bfbfb559885baa6d774c0383b2228b2
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen eca54f0cd7 slip: Do not try to unref a null pointer
There is no harm for doing so but debug prints will look
weird in this case.

Change-Id: I48b6953d07a58bc952fe961cf1db846740dadc50
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen ffb0bcd3d7 net: Start the network stack after device drivers
We should start to send data only after network device
drivers are up and running.

Change-Id: I03a2fa21d1bed4badb521f2041e4642111efc078
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen c06c5b8dcb slip: Network stack needs to be up before sending data to it
There will be a crash if network device sends data to network
stack before it is ready to receive such data.

Change-Id: I1a32485faba2972909262c4305fb465b6cb87f07
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:11 +02:00
Jukka Rissanen 0b29c950f4 net: Remove extra debug print in ethernet L2 driver
Change-Id: I6200112c2d4766e4c8fb73cc9a58370ba95969d8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen 976fb9d988 net: Set multicast dst address in ethernet if missing
If ethernet destination address is not set, then check if
IPv6 packet is multicast one and set the ethernet destination
address using multicast MAC address prefix.

Change-Id: Iade43e9ebcd0939346d89422f74ee547d6908866
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Ravi kumar Veeramally a01fed5642 net: Add a utility to hexdump all fragments
Change-Id: I4eaa640d629d9abcd4a4d73f147cca9249df21ce
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen d0401ca317 net: Pointer to a ethernet header was incorrectly set
Change-Id: Id96f574b3f9cc0c161bd365b9e7705ee5ffd862f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen 9818cc7b1d net: ARP unit test needs to be run from fiber
The ARP unit test is not able to pass packets between fiber
and task. Because of this the test is run from fiber.

Change-Id: I1825a0abdc1b04a78de76d58425f4d2a2ce26ab7
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen 53caa13652 net: Refactored ARP packet header handling
The ARP packet header contained ethernet header. This is very
confusing so separate the link layer header. Fixed also the
unit tests to run properly.

Change-Id: I8b00bde280ad9f49494766370acb2a8e9cade033
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen aab6665f2f net: Add more checks when allocating nbuf
It is possible that net_buf_get() will return NULL
as the allocator can be called in ISR context.
In this case we much return and not overwrite kernel
memory.

Change-Id: Id2fdcad2ef0878d93c5364ffb81cd6a0932d908e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen ffcafd0d9e net: Ethernet L2 TX side needs to setup fragments
We need to build the ethernet header when sending data
fragments so that this does not need to be done in
ethernet device driver.

Change-Id: I0347b1abf0c124978fae3fa4b80bb4ee0d544e41
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen cbfa6ec5f3 net: Add more debug print in ethernet RX side
Change-Id: I4df82990fb3be2358c94e480c52fc490bee4a3f7
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen 23d6a85c62 net: Add debug checks when sending data in TX fiber
Change-Id: I2d01afd53378739a0fd437f2c0664a1eb5670e0b
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen 1e2de0febc net: Reserve eth ll header len in L2 ethernet driver
Change-Id: I2ec51033f4e778518e6f860c0d37eea39aa61169
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00
Jukka Rissanen 145a1e2c6f net: IPv4 protocol type was not set to sent ARP packet
Change-Id: I2b7f3cd62da5deaa058d42bd60cbe3435a95c812
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:10 +02:00