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