[ovs-dev] [PATCH/RFC 0/9] Group Select: Selection Method Extension
Ben Pfaff
blp at nicira.com
Fri Dec 12 03:03:53 UTC 2014
On Fri, Dec 12, 2014 at 11:40:06AM +0900, Simon Horman wrote:
> On Thu, Dec 11, 2014 at 09:48:15AM -0800, Ben Pfaff wrote:
> > On Wed, Nov 19, 2014 at 09:44:54AM +0900, Simon Horman wrote:
> > > The fields field is an ofp_match structure which includes the fields which
> > > should be used as inputs to bucket selection. ofp_match is described in
> > > Open Flow 1.4 section 7.2.2 Flow Match Structures.
> > >
> > > Fields must not be specified unless the group selection_method is non-zero
> > > length.
> > >
> > > The pre-requisites for fields specified must be satisfied in the match for
> > > any flow that uses the group.
> > >
> > > Masking is allowed but not required for fields whose TLVs allow masking.
> > >
> > > The fields may for example be used as the fields that are hashed
> > > by a hash group selection method.
> >
> > OK, this explains a little bit about 'fields' (my question on one of the
> > patches) but I don't think it cleared up my questions. Can you give
> > some examples of 'fields'?
>
> I expected some feedback regarding the implementation of fields but not
> regarding their purpose. I apologise for not explaining things more
> clearly.
>
> The idea of fields is to describe the input to the selection method.
> So if the selection method is a hash and fields is eth_dst then
> the value of eth_dst would be the only input from the headers
> of the packet to the hash. i.e. hash(flow.eth_dst).
>
> The idea behind allowing masks of the fields is to allow part of
> a field to form the input to the hash. For example the top 32
> bits of the eth_dst, or the top 3 octets of an IPv4 address.
>
> e.g. hash(flow.eth_dst & 0xff:ff:ff:ff:00:00)
>
>
> At the risk of repeating the above unnecessarily, there is an example
> buried in the test that is included patch 9 which adds a hash selection
> method. It sets up a group where the selection method will be a hash of the
> eth_dst.
>
> group_id=1234,type=select,selection_method=hash,fields=eth_dst=ff:ff:ff:ff:ff:ff,bucket=output:10,bucket=output:11
Oh, I understood that much. The part I didn't understand was what
actually went in the data structure, e.g. was it a mask etc. Anyway,
discussion elsewhere has already cleared that up for me, so no need to
go on here.
Thanks,
Ben.
More information about the dev
mailing list