- Jan 30, 2017
-
-
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- Aug 22, 2016
-
-
Grzegorz Daniluk authored
-
- 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>
-
- May 18, 2016
-
-
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
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>
-
- Apr 04, 2016
-
-
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
These numbers are only available at build time; there is no run-time command to change them as yet. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
WARNING: wr_switch_defconfig doesn't build, this is fixed in next commit Unfortunately this commit makes the internal communication between minic and lan asymmetric: on receive the tag is discarded (and the longer header falls into the payload) while on transmit it must be provided by lan.c. The reason is that on receive we can trim 4 bytes from the payload, but on send we can't add 4 bytes without a memmove. The functions receive pointers to two different header structures, so hopefully user errors will be signalled by the compiler. Still, users interact with net.c, which hides vlan completely from them. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- Feb 15, 2016
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- Jan 20, 2016
-
-
Alessandro Rubini authored
This changes the pfilter rule-set, to make it ready for vlan addition. Moreover, it removes the choice between three rule-sets and uses one that works for everyone (we'll add the vlan option later on). Moreover, we prepare for the option of peer-delay PTP and UDP-based PTP. As a side effect, one Kconfig option is removed. We know for sure that what goes to the "streamer" protocol is re-checked, so the streamer can get some "everything else", exactly like the 7S wr-nic (that sends to the host everything unused). This is the current rule set: - everything tagged is dropped - CPU: arp broadcast, not unicast (i.e. requests only). - CPU: PTP ethtype. Any mac address. - CPU: ICMP unicast, not broadcast. - CPU: UDP (uni/multicast), ports bootpc, ptp-event, ptp-general. - Etherbone (class 7): UDP (uni/multicast) and port 0xebd0 - Other fabric (class 6): anything not Etherbone (inverted class 7 bit) This counts up to 28 rules. We have 4 more rules available and we may add options, either at build time or run time to add udp ports or other ethertypes. Or not... 2 caveats: - frames for the CPU will have class bits 0x41 instead of 0x01, because everything not etherbone will receive bit 6. This is not a problem, as the CPU is not checking the class bits. - the wr-nic gateware, when using this new sw code base, must be changed to use classes 6 and 7 like everybody else, not classes 7 and 5. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The description of class management was not completely clear or correct, so it's now rewritten with some references to gateware files. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Actually, the "new" information is very little. But now the explanation of how it works fits in 80 columns (I personally need this) and is laid out a little better. Also, it describes the new situation, activated by the next commits. No code change at this point. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
If the Kconfig option is not set, there's no effect on code size. If set, .bss increases by 256 bytes (the buffer) and .text by another 200 bytes. This adds timestamping support, so we know the duration of the interrupt (because we found it's an important thing when problems occur). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Accessing data structures in the host to get target fields is broken: we may have different data size or alignment, or whatever. The hack of using "-m32" to be able to access lm32 fields from x86-64 is not clean (we imply the i386 and target have the same size/alignment). Even worse, not everybody has an x86-64 cross-compiler for i386. Thus, we use OFFSET_OF in the target, with the lm32 cross compiler, to build a binary table that is then accessed by the host. In order to link the data structure in the host we use the assembler instead of objcopy. With objcopy we'd need to spell out the bfd name of the host, and we'd get horrible names like struct dump_info _binary_dump_info_host_bin_start[]; 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
Use an environment variable to check for spec byte order, and fix the buffer before using it. 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
It's still suboptimal, we need to autodetect with a in-binary helper, but by now I'm analyzing old logs so I'd better not change wrpc itself. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This fixes the problem with data sizes when building on a 64-bit host. Now the dump of ppi makes sense, besides endianness. Please note how this requires a cross-compile environment for i386 when you build on x86-64. Later on this requirement is lifted. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The tool is meant to print internal data structures of the wrpc, by running either on a dump file or a live system. The code is an edited copy of wr-switch-sw/userspace/tools/wrs_dump_shmem.c, so the data-dumping mechanism is from there. bugs at this point: - all endianness stuff is bad (in wrs it was local, here we cross-dump) - data sizes are wrong (see next commit) - we miss checks for consistency - we can't open /dev/mem (for spec for example) or a elf file - docs are missing too Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- Jan 15, 2016
-
-
Wesley W. Terpstra authored
-
- Oct 13, 2015
-
-
Alessandro Rubini authored
This just adds "void" in prototypes. I did the pfilter on a different branch, and lost these changes of commit be2bd234 wyhile moving pfilter generation to tools/ Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This changes pfilter-builder.c so it really build in user space, but removing register setting and creating output files instead. Running this program creates 3 files, that correspond to the previous three #ifdef conditions. The files are: rules-plain.bin this is used for the no-etherbone configuration rules-ebone.bin etherbone setup rules-e+nic.bin etherbon plus 7solution's wr-nic packet filter The files begin with a magix 0x11223344 word, that allows the soft-core to fix any endianness difference (so no hairy mishaps are expected when switching to a different soft-core). Then the 40-bit command words are saved as 64-bit vaules, LSB-first. The output file is thus an odd number of words and no 64-bit alignment is required. The first three instructions of the packet filter are used to compare the destination mac address of the frame. We now use a fake mac address, and the LM32 code will change it while programming the binary. Please look at this commit while ignoring white-space, as it changes indentation while turning #ifdef/#else into if()/else . Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
We are going to have a user-space tool to build the packet filter images. The first step is copying dev/ep_pfilter.c, so we can "git diff" the changes. At this point the file is not even built. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
-
- Sep 28, 2015
-
-
Grzegorz Daniluk authored
-
- Sep 21, 2015
-
-
Grzegorz Daniluk authored
-
- Sep 18, 2015
-
-
Grzegorz Daniluk authored
Because the golden bitstream for SPEC has syscon at offset 0x0.
-
- Aug 28, 2015
-
-
Cesar Prados authored
-