Hi
Yes, I'm including the payload and I'm using iperf to send the traffic. The two
hosts connect to each other, but the traffic is not sent / does not arrive.
When I try to cut the connection to the destination host, a message appears
saying: Waiting for server threads to complete. Interrupt again to force quit.
I've been going over the API of the TCP packet again, and I do not know if I'm
missing something to add. I have doubts with the serialization, do I need to
put the ipv4 package at the end of it? I mention it for serialize (payload,
prev)
http://ryu.readthedocs.io/en/latest/library_packet_ref/packet_tcp.html
Regards, Hector
________________________________
De: IWAMOTO Toshihiro <iwam...@valinux.co.jp>
Enviado: jueves, 7 de junio de 2018 3:58:30
Para: Fernández Peña Héctor
Cc: ryu-devel@lists.sourceforge.net
Asunto: Re: [Ryu-devel] Problem with TCP traffic
On Sun, 03 Jun 2018 05:02:16 +0900,
Fernández Peña Héctor wrote:
>
> [1 <multipart/alternative (7bit)>]
> [1.1 <text/plain; iso-8859-1 (quoted-printable)>]
> Hello developers
>
> I'm trying to send TCP traffic between two hosts that are in different
> subnets through a third host that acts as a router
> The VM Router has an ovs implemented which is managed with a ryu app.
>
> The problem is that the VM "router" never forwards traffic tcp.
I assume you are using packet-in and packet-out to implement routing.
1. Are you getting packet-ins?
2. Is the _handle_tcp_fwd function actually called?
3. Are you correctly sending packet-outs to ovs?
> I attached the tcp function:
>
> def _handle_tcp_fwd(self, datapath, port, pkt_ethernet, pkt_ipv4,
> pkt_tcp):
> pkt = packet.Packet()
> if port == 1:
> mac_dst = self.mac_victima
> mac_src = self.hw_addruno
> elif port == 2:
> mac_dst = self.mac_atacante
> mac_src = self.hw_addrdos
>
> pkt.add_protocol(ethernet.ethernet(ethertype=pkt_ethernet.ethertype,
> dst=mac_dst,
> src=mac_src))
> pkt.add_protocol(ipv4.ipv4(dst=pkt_ipv4.dst,
> src=pkt_ipv4.src,
> proto=pkt_ipv4.proto))
> pkt.add_protocol(tcp.tcp(src_port=pkt_tcp.src_port,
> dst_port=pkt_tcp.dst_port,
> seq=pkt_tcp.seq,
> ack=pkt_tcp.ack,
> offset=0,
> bits=pkt_tcp.bits,
> window_size=pkt_tcp.window_size,
> csum=0,
> urgent=pkt_tcp.urgent,
> option=pkt_tcp.option))
> self._send_packet(datapath, port, pkt)
Are you handling the tcp payloads somewhere?
--
IWAMOTO Toshihiro
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel