forked from zephyrproject-rtos/zephyr
-
Notifications
You must be signed in to change notification settings - Fork 0
Network test application for automatic testing [Do not use, this is replaced by another PR] #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jukkar
wants to merge
45
commits into
master
Choose a base branch
from
net-automatic-testing
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This allows creation of virtual lan (VLAN) networks. VLAN support is only available for ethernet network technology. Fixes zephyrproject-rtos#3234 Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add tests to verify the bit manipulation functions in net/vlan.h file. Also check that we can check if given network interface has VLAN enabled or not. Verify also that received network packet contains correct VLAN tag. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add commands to add, remove or get information about VLANs attached to network interfaces. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This application just enables VLAN tag for ethernet interface. Set CONFIG_SAMPLE_VLAN_TAG option to define the desired VLAN tag. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This enables / fixes VLAN support in mcux ethernet driver. The commit contains these changes for enabling VLAN: * Increase the size of the ethernet frame if VLAN is enabled. * Enable VLAN in chip if VLAN is enabled * If VLAN is enabled, then the iface in context struct should not be used directly as there can be multiple VLAN iface related to this physical device. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Support also virtual LAN (VLAN) with native_posix ethernet driver. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This enables VLAN support in gmac ethernet driver. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Allow multiple VLANs to be configured for SLIP. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
When sending packet add the VLAN priority to the ethernet header. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Currently the VLAN priority is the same as packet priority but if such conversion is needed, then this function can be used for such conversion. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Set the received network packet priority according to VLAN priority. Currently this mapping is 1:1 but can be changed if needed. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
The DEVICE_NAME_GET() macro should be used instead of fixed string when creating a device pointer in net_if_dev structure. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If we have multiple network interfaces and we want to send a IPv4 network packet to certain destination, then this new helper can be used to figure out what network interface to use. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Instead of always using default interface, use the IPv4 target address to select the correct network interface when sending IPv4 ping request. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If we have multiple network interface (like in VLAN), then we need to select the proper local interface based on destination address. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
As the l2_data section might contain different size context elements like "struct ethernet_context" for Ethernet and "void *" for Dummy L2, remove the __net_l2_start and __net_l2_end variables so that user does not accidentally try to use them as that would not work. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
In IPv4 we need to select the network interface, where the packet is to be sent, using the IPv4 address instead of default network interface. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
User is able to take a network interface down or bring it up. The command syntax is "net iface [up|down] [index]" Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Although very unlikely, make sure that if the net_recv_data() is called with NULL network interface or packet, we recover that and return error to the caller. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
4b624c9 to
ffcdc23
Compare
Instead of one global statistics, collect statistics information separately for each network interface. This per interface statistics collection is optional but turned on by default. It can be turned off if needed, in which case only global statistics are collected. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Make sure that we return proper network statistics data if someone asks it via network management interface. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Simple application that queries network statistics periodically via net_mgmt interface. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Make sure we are able to collect ethernet statistics and query it via net management API. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Collect ethernet statistics for this driver. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If ethernet statistics collection is enabled, then print it to the user. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Allow creation of TX timestamp thread which will collect TX timestamp information from device drivers. If the callback is registered, then it will pass that timestamp information to the relevant party for further processing. This support will be used by gPTP code in subsequent commits. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
Defines a PTP clock driver that can be implemented in those network interface drivers that provide gPTP support. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
Core IEEE 802.1AS (gPTP) support and application interface. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
Fix timestamping in MCUX external library. The nanosecond part of the frame timestamp wasn't saved. Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
If the mcux driver has PTP support, then enable ENET_ENHANCEDBUFFERDESCRIPTOR_MODE in HAL. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
We need to use only four low order bits from first byte of PTP message as that contains the message type value. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This adds packet timestammping support to the driver and configures various PTP options in ENET. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
The application does not do much, it just registers to a callback in order to get information about gPTP. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Test that Tx timestamp callback code is called properly if network packet timestamping is enabled. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This will give some extra info about gPTP status and support if gPTP support is enabled in config file. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add gPTP information to documentation. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
Allow this setup as Linux supports this too. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If VLAN is enabled for specific PTP interface, then manipulate the ethernet header properly in this case. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
By default gPTP is not run over VLAN but if needed that can be done by uncommenting statement at the beginning of the file. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Use priority 3 (critial app) for outgoing event messages (Sync, Pdelay_Req and Pdelay_Resp). Use priority 6 (Internetwork Control) for all other outgoing packets. See IEEE 802.1Q chapter 8.4.4 for more details. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Set the received PTP packet priority high so that those packets will be handled first. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This is not very scientific but can give some hint how much we are spending in TX and RX paths. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
For debugging purposes it is useful to know which interface the dropped packet was received. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Allow gPTP code to be run as a linux process and communicate with gPTP daemon running in linux host. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This is a simple network application that is used by automatic testing scripts. The application currently enables IPv6 and IPv4, TCP and UDP, VLAN and traffic class support, and echo-server service. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
ffcdc23 to
4b1cbb8
Compare
jukkar
pushed a commit
that referenced
this pull request
Jun 22, 2020
This makes the gatt metrics also available for gatt write-without-rsp-cb so it now prints the rate of each write: uart:~$ gatt write-without-response-cb 1e ff 10 10 Write #1: 16 bytes (0 bps) Write #2: 32 bytes (3445948416 bps) Write #3: 48 bytes (2596929536 bps) Write #4: 64 bytes (6400 bps) Write #5: 80 bytes (8533 bps) Write #6: 96 bytes (10666 bps) Write #7: 112 bytes (8533 bps) Write #8: 128 bytes (9955 bps) Write #9: 144 bytes (11377 bps) Write #10: 160 bytes (7680 bps) Write #11: 176 bytes (8533 bps) Write #12: 192 bytes (9386 bps) Write Complete (err 0) Write #13: 208 bytes (8533 bps) Write #14: 224 bytes (9244 bps) Write #15: 240 bytes (9955 bps) Write #16: 256 bytes (8000 bps) Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements an application that can be used for automatic testing of networking code. This test application supports currently echo-server functionality and it also supports VLAN, TCP, UDP, IPV6 and IPV4.
The application supports currently SLIP (running in QEMU), ethernet in native-posix board and FRDM-K64F boards (basically all boards that have ethernet are supported). In the future other non-ethernet boards will be supported.