Applied, thank you.
On Tue, Oct 08, 2013 at 01:11:41PM -0700, Jarno Rajahalme wrote: > Looks good. > > Acked-by: Jarno Rajahalme <[email protected]> > > On Oct 8, 2013, at 1:00 PM, Ben Pfaff <[email protected]> wrote: > > > On Tue, Oct 08, 2013 at 12:41:11PM -0700, Jarno Rajahalme wrote: > >> Ben Pfaff <[email protected]> wrote: > >> > >>> The dpif interface supports 65536 ports, but OpenFlow 1.0 supports fewer, > >>> so ofproto-dpif needs to filter out port numbers larger than OF1.0 > >>> supports > >>> and report an error to the caller. > >>> > >>> Reported-by: Hiroshi Tanaka <[email protected]> > >>> Signed-off-by: Ben Pfaff <[email protected]> > >>> > >>> --- > >>> ofproto/ofproto-dpif.c | 5 +++++ > >>> 1 files changed, 5 insertions(+), 0 deletions(-) > >>> > >>> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c > >>> index ce2ae7f..fcca99b 100644 > >>> --- a/ofproto/ofproto-dpif.c > >>> +++ b/ofproto/ofproto-dpif.c > >>> @@ -2545,6 +2545,11 @@ port_add(struct ofproto *ofproto_, struct netdev > >>> *netdev, uint16_t *ofp_portp) > >>> int error; > >>> > >>> error = dpif_port_add(ofproto->dpif, netdev, &odp_port); > >>> + if (!error && odp_port >= OFPP_MAX) { > >>> + /* Out of ports in the OpenFlow range. */ > >>> + dpif_port_del(ofproto->dpif, odp_port); > >>> + error = EFBIG; > >>> + } > >>> if (!error) { > >>> *ofp_portp = odp_port_to_ofp_port(odp_port); > >>> } > >>> > >> > >> The check would seem more proper after the ODP port number has been > >> translated to an OFP one, right after odp_port_to_ofp_port(). > > > > Thanks for the review. > > > > In OVS 1.9, there was barely any difference between ODP and OpenFlow > > port numbers, so this code should work. But I agree that checking the > > OpenFlow port number is more conceptually correct. > > > > How about this version? > > > > --8<--------------------------cut here-------------------------->8-- > > > > From: Ben Pfaff <[email protected]> > > Date: Tue, 8 Oct 2013 12:57:40 -0700 > > Subject: [PATCH] ofproto-dpif: Better tolerate running out of ports. > > > > The dpif interface supports 65536 ports, but OpenFlow 1.0 supports fewer, > > so ofproto-dpif needs to filter out port numbers larger than OF1.0 supports > > and report an error to the caller. > > > > Reported-by: Hiroshi Tanaka <[email protected]> > > Signed-off-by: Ben Pfaff <[email protected]> > > --- > > ofproto/ofproto-dpif.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c > > index 173eb5a..fa639a6 100644 > > --- a/ofproto/ofproto-dpif.c > > +++ b/ofproto/ofproto-dpif.c > > @@ -2547,6 +2547,11 @@ port_add(struct ofproto *ofproto_, struct netdev > > *netdev, uint16_t *ofp_portp) > > error = dpif_port_add(ofproto->dpif, netdev, &odp_port); > > if (!error) { > > *ofp_portp = odp_port_to_ofp_port(odp_port); > > + if (*ofp_portp >= OFPP_MAX) { > > + /* Out of ports in the OpenFlow range. */ > > + dpif_port_del(ofproto->dpif, odp_port); > > + error = EFBIG; > > + } > > } > > return error; > > } > > -- > > 1.7.10.4 > > > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
