- May 20, 2016
-
-
Alessandro Rubini authored
This commit removes the requirement for ARP frames to be broadcast in the no-vlan case. The simplified rule-set of a vlan setup already accepts ARP unicast, and no harm is done. Although we do not make ARP requests so we won't receive unicast replies, hosts do send unicast requests, to refresh an ARP entry that is going to expire. The next commit enacts this feature in software, as a side effect of supporting pdelay PTP. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
-
Alessandro Rubini authored
This is incompatible with the previous implementation - sequence number is 32 bits - frames are 1,2,3 not 0,1,2 (so to be *more* incompatible) - no fake latency values are printed if frames are lost - the message is one line instead of two, and cleaner too - the sender reminds it's sending every 10s. The receiver's messages now include the sequence number, so we can match different receivers on a network. Also, The sender's message report both TAI and sequence, so we can related frames to the time of day. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- May 18, 2016
-
-
Alessandro Rubini authored
This adds a tool to check the latency in the network. It is selected at build time (config) time. If you select CONFIG_LATENCY_PROBE you are then asked for a CONFIG_LATENCY_ETHTYPE. The sender node sends three frames, as broadcast in that ethertype within the current vlan (or no vlan). The first frame is at priority 7, the second at priority 6, and the third includes the egress timestamps for the former ones. Each group has a sequence number and group identifier. If the tool is built in wrc.bin, every node acts as a receiver. To enable a sender issuing the set of frames every 5 seconds, use "ltest 5". To disable use "ltest 0". The receiver prints the measured latency, and warns if it receives frames that are not in the proper order, using the sequence and frame type fields. This is a successful run crossing two wr switches: latency prio7: 5142.775 latency prio6: 4998.775 latency prio7: 4822.773 latency prio6: 5142.773 latency prio7: 5142.771 latency prio6: 5286.771 Later on, we'll make the thing less verbose, and we'll have threshold to signal a problem if the network went slow. Currently we just print all collected data. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This commit adds the Kconfig mechanism and the pfilter rules. The latency test socket transmists frames of a specific ether type; the receiver must receive all such frames. To minimize the load on the packet filter, this adds a single rule: we already accept all PTPv2 frames, so we now "OR" to this the new ethernet type. If the feature is configured off, the rule uses the same PTPv2 ethertye, thus turning in practice into a NOP. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This is used by the latency measurement, to send high-priority frames Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
One rule only! Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This shortens the rule-set by one rule, making space for pdelay. IP is acceptable whether unicast or broadcast. Thus, remove the IP_UNI intermediate calculation and use only IP_OK. Most of the lines in this commit are a renaming of FRAME_OUR_MAC to FRAME_MAC_OK, with no real effect, because we'll coalesce all valid macs in a single bit (I planned to use it in this commit, but I did not, still I don't want to split the patch). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This shortens the rule-set by one rule, making space for pdelay. There is no need to use a temporary register once FOR_CPU is done. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
-
Alessandro Rubini authored
This is a safe measure before adding UDP support, which adds a socket. And we have other ongoing net-related activities too, so I'd better spend 16 bytes now and feel safer. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This is needed to build ppsi on the host with arch-wrpc, that I'm using to developer udp on ppsi::wrpc-sw Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Trigger start/stop of PTP from wrc_check_link job instead of PTP's job. This picks ppsi's new master that matches the change. We need to remove prototype for an unused function, now that the one in ppsi changed arguments and we'd otherwise get error: conflicting types for 'wr_servo_reset' Signed-off-by:
Adam Wujek <adam.wujek@cern.ch> Signed-off-by:
Alessandro Rubini <a.rubini@gsi.de>
-
- Apr 04, 2016
-
-
Alessandro Rubini authored
Although we love to build-test stuff and discard at link time, as soon as we move tasks to be sections, we need to avoid building the file of the task if not configured in. This means lib/arp.c and lib/ipv4.c. But, for consistency, avoid building icmp.c and bootp.c as well. The alternative, which is ifconfig'ing the task itself results in warnings like "'ipv4_init' defined but not used". Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This allows several functions to be static in the files where they are defined. See temperature.c for an example. But mainly, the idea is allowing ease addition of features (likely Kconfig'd ones) for specific WR users, without any modification to the main function and other generic code. This will happen soon for snmp, for example. We may push this a little further, by moving all shell stuff into shell.c, the ptp task within ppsi itself, and so on. But now my time is over. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Socket matching depended on the order or sockets. With the new ELF section (next commit) we get the ICMP socket before some UDP ones, so the code matched IPV4 and the UDP service did not get the data. Now we give priority to UDP sockets. So this commit fixes the problem beforehand. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The threshold and the repeat interval is set by Kconfig. The temperatures are read using the temperature framework. Tested in host environment: wrc# faketemp 90 80 10 wrc# faketemp 90 40 20 wrc# faketemp 20 30 40 Jan 1 10:32:09 192.168.16.7 Temperature high: \ roof:90.0000 core:80.0000 case:10.0000 Jan 1 10:33:09 192.168.16.7 Temperature high: \ roof:90.0000 core:40.0000 case:20.0000 Jan 1 10:33:18 192.168.16.7 Temperature ok: \ roof:20.0000 core:30.0000 case:40.0000 Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This shortens the rule-set by two rules, making space for pdelay. By accepting all ports from 0 to 511, we get all of our services, including snmp that will be tested soon. This relaxed check will give us possibly some false positives (then discarded by the CPU) while still protecting from most of an hostile or just probing port sweep. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
-
Alessandro Rubini authored
The configuration is not called *_defconfig, because we can't just build it in ./MAKEALL -- we need ppsi to be built with a different configuration, and this is not autodetected yet (but building from a fresh clone works). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-