[ovs-dev] [patch_ports (rebased) 3/4] ofproto-dpif: Implement patch ports in userspace.

YAMAMOTO Takashi yamamoto at valinux.co.jp
Mon Jan 28 02:48:30 UTC 2013


hi,

> Yep that's my fault, sorry about that.  I'm planning to send out the
> flow based tunneling series for final review on monday.  In this
> series, I'll pull netdev-vport out of the linux specific code, and
> build it everywhere instead.  This should solve the problem. Would you
> mind using a slightly older version of master until then?

no problem.  no hurry.  thanks.

YAMAMOTO Takashi

> 
> Ethan
> 
> On Thu, Jan 24, 2013 at 10:40 PM, Ben Pfaff <blp at nicira.com> wrote:
>> On Fri, Jan 25, 2013 at 03:24:32PM +0900, YAMAMOTO Takashi wrote:
>>> > diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
>>> > index 5c5d261..7732f49 100644
>>> > --- a/ofproto/ofproto-dpif.c
>>> > +++ b/ofproto/ofproto-dpif.c
>>>
>>> > @@ -5224,6 +5292,29 @@ send_packet(const struct ofport_dpif *ofport, struct ofpbuf *packet)
>>> >      int error;
>>> >
>>> >      flow_extract(packet, 0, 0, NULL, OFPP_LOCAL, &flow);
>>> > +    if (netdev_vport_is_patch(ofport->up.netdev)) {
>>> > +        struct ofproto_dpif *peer_ofproto;
>>> > +        struct dpif_flow_stats stats;
>>> > +        struct ofport_dpif *peer;
>>> > +        struct rule_dpif *rule;
>>> > +
>>> > +        peer = ofport_get_peer(ofport);
>>> > +        if (!peer) {
>>> > +            return ENODEV;
>>> > +        }
>>> > +
>>> > +        dpif_flow_stats_extract(&flow, packet, time_msec(), &stats);
>>> > +        netdev_vport_patch_inc_tx(ofport->up.netdev, &stats);
>>> > +        netdev_vport_patch_inc_rx(peer->up.netdev, &stats);
>>> > +
>>> > +        flow.in_port = peer->up.ofp_port;
>>> > +        peer_ofproto = ofproto_dpif_cast(peer->up.ofproto);
>>> > +        rule = rule_dpif_lookup(peer_ofproto, &flow);
>>> > +        rule_dpif_execute(rule, &flow, packet);
>>> > +
>>> > +        return 0;
>>> > +    }
>>> > +
>>>
>>> this and similar changes in this file break !LINUX_DATAPATH builds,
>>> where netdev-vport won't be built.
>>
>> Thanks for reporting that.
>>
>> There's nothing Linux-specific about the patch port implementation any
>> longer, so I guess we should build at least the patch port part of
>> netdev-vport everywhere.



More information about the dev mailing list