On 14 August 2012 21:21, Ed Maste <ema...@freebsd.org> wrote: >> There may be some confusion about numbering. OpenFlow says that the >> port number of the "local port" is 65534 (OFPP_LOCAL). The datapaths, >> on the other hand, use port number 0 for the "local port". There is >> supposed to be translation going on at the interface between the >> datapath and the OpenFlow implementation, but mistakes can creep in, >> especially in new code. > > Indeed this is the case here - I compared the key for the packet being > looked up and the otherwise-matching entry in the hash, and see 0 vs > 65534 for the port. > > -Ed
This fixes it for me, but I'm not certain this is the right place to do the translation: diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 60fae5f..7112149 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -1011,7 +1011,7 @@ dp_netdev_port_input(struct dp_netdev *dp, struct dp_netdev_port *port, if (packet->size < ETH_HEADER_LEN) { return; } - flow_extract(packet, 0, 0, port->port_no, &key); + flow_extract(packet, 0, 0, ofp_port_to_odp_port(port->port_no), &key); flow = dp_netdev_lookup_flow(dp, &key); if (flow) { dp_netdev_flow_used(flow, &key, packet); _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev