This is what I had in mind:

static enum ofperr
reject_slave_controller(struct ofconn *ofconn)
{
    if (ofconn_get_type(ofconn) == OFCONN_PRIMARY
        && ofconn_get_role(ofconn) == OFPCR12_ROLE_SLAVE) {
        if (ofputil_protocol_to_ofp_version(ofconn_get_protocol(ofconn)) >=
OFP12_VERSION) {
            return OFPERR_OFPBRC_IS_SLAVE;
        } else {
            return OFPERR_OFPBRC_EPERM;
        }
    } else {
        return 0;
    }
}


On Wed, Jan 21, 2015 at 1:08 PM, Anup Khadka <khadka...@gmail.com> wrote:

> I am actually confused by the fix. OFPBRC_IS_SLAVE is an OpenFlow 1.2+
> error message, correct? The comment in the header file is changed and it
> appears that this is an OpenFlow 1.0+ error message and I am not sure if
> that's right. Likewise OFPBRC_IS_SLAVE is returned while rejecting slave
> controllers regardless of the version of the switch. If the switch is not
> running in 1.2+ mode, the code that sends the error is not going to
> understand this error message, right? Which in that case, it will probably
> send a Nicira vendor error back to the controller, instead of the
> EPERM_ERROR as the switch used to send previously. Is this what you are
> aiming to do? Am I missing something?
>
> Thank you,
> Anup
>
> On Wed, Jan 21, 2015 at 12:46 PM, Ben Pfaff <b...@nicira.com> wrote:
>
>> I sent out a fix:
>>         http://openvswitch.org/pipermail/dev/2015-January/050612.html
>>
>> On Tue, Jan 20, 2015 at 03:01:27PM -0800, Ben Pfaff wrote:
>> > The OF1.2 feature was based on an Open vSwitch extension to OpenFlow
>> > first implemented for OF1.0.  We need to continue supporting that
>> > extension.
>> >
>> > On Tue, Jan 20, 2015 at 05:12:30PM -0500, Anup Khadka wrote:
>> > > Do OpenFlow versions prior to OF 1.2 even support the concept of slave
>> > > controllers? I couldn't find anything in the specs.
>> > >
>> > > On Tue, Jan 20, 2015 at 4:24 PM, Ben Pfaff <b...@nicira.com> wrote:
>> > >
>> > > > On Tue, Jan 20, 2015 at 03:55:57PM -0500, Anup Khadka wrote:
>> > > > > I have noticed that OVS rejects flow-mod request from a
>> slave-controller
>> > > > > with an OFPBRC_EPERM request code. Isn't the more appropriate
>> code here
>> > > > is:
>> > > > > OFPBRC_IS_SLAVE?
>> > > > >
>> > > > > Same thing when a slave controller sends a packet out.
>> > > >
>> > > > That does sound better, for OF1.2+.
>> > > >
>>
>
>
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to