Hi Marc, > Shouldn't you then have a route involving the tap0 interace with a G > flag in it ? >
Sure - here is output after the route was added: root@dhcpeff64253:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0 10.0.2.0 10.0.0.200 255.255.255.0 UG 0 0 0 tap0 134.104.64.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 0.0.0.0 134.104.64.16 0.0.0.0 UG 0 0 0 eth0 >> I have enabled routing on the switch, and I can ping 10.0.2.20 from >> 10.0.0.11 on adding relevant static routes on both machines. However this >> doesn’t work for the ROACH1. What is going wrong here? > > The tgtap logic handles arp and thus also needs to substitute the > ethernet mac of the gateway - I don't remember when support was added > for that - github/ska-sa/katcp_devel has the code in > transmit_ip_fpga(), there is a chance you might have to backport it. > However, this is for control traffic (packets that the kernel sends) > only. > > In the case of the packets being generated by gateware on the fpga, > this substitution is made differently - I think the gateway register > needs to be loaded up (at offset 0xc). Doesn't the tap-start call have > an option for that ? I use an ancient version of the core package, and here is the help on on tg_tap - no mention of a gateway here... tap_start(self, tap_dev, device, mac, ip, port) method of corr.katcp_wrapper.FpgaClient instance Program a 10GbE device and start the TAP driver. @param self This object. @param device String: name of the device (as in simulink name). @param tap_dev String: name of the tap device (a Linux identifier). If you want to destroy a device later, you need to use this name. @param mac integer: MAC address, 48 bits. @param ip integer: IP address, 32 bits. @param port integer: port of fabric interface (16 bits). Please note that the function definition changed from corr-0.4.0 to corr-0.4.1 to include the tap_dev identifier. Cheers, Ramesh