Subject: [forces] Fwd: OpenFlow XML errata

From: Jamal Hadi Salim <[email-masked]>
Date: Thu, 12 Jul 2012 11:40:28 -0400

Greetings Evangelos,

We are trying to implement this draft in time for the meeting.
Here are some comments. Some of them probably are implementation
specific to us. We'll send you the fixed up xml separately.

cheers,
jamal

---------- Forwarded message ----------
From: Glen Sandness <[email-masked]>
Date: Thu, Jul 12, 2012 at 10:23 AM
Subject: OpenFlow XML errata
To: Jamal Hadi Salim <[email-masked]>

Following is a summary of all the changes required to make the latest
OpenFlow xml usable with the Mojatatu ForCES SDK toolset:

dataTypeDef MatchFieldType
- component IPProto has a typeRef of "uchar8", which should be "uchar".

dataTypeDef InstructionTypes
- forward reference from dataTypeDef FlowEntry.  Definition of
InstructionTypes must be moved before that of FlowEntry.

dataTypeDef FlowCounterType
- forward reference from dataTypeDef FlowEntry.  Definition of
FlowCounterType must be moved before that of FlowEntry.

dataTypeDef ActionType
- forward reference from dataTypeDef ActionRowType.  Definition
of ActionType must be moved before that of FlowEntry.

dataTypeDef ActionRowType
- forward reference from dataTypeDef TableCounterType.  Definition
of ActionRowType must be moved before that of TableCounterType.

dataTypeDef GroupBucketExecuteType
- atomic special values list includes a special value "select", which is
invalid as a C identifier due to the overlap with the glibc/syscall function
of the same name.  Fixed this by capitalizing the name of all special
values for this dataTypeDef ("Select", "Indirect", "FastFailover").

dataTypeDef ActionBucket
- forward reference from dataTypeDef GroupTableEntry.  Definition
of ActionBucket must be moved before that of GroupTableEntry.

dataTypeDef PortFeaturesType
- Special value names for atomic SpeedTypes are invalid as C
identifiers because the names start with a digit.  Fixed this by
prefixing all the special value names with "Speed_", resulting in
"Speed_10MB_HD", "Speed_10MB_FD", etc.

LFBClass OFSwitch
- All events in this LFBClass have no reports defined, and are therefore
invalid.  Temporary fix implemented by commenting out these events.

LFBClass OFFlowTables
- The event defined for this LFBClass has a target path which does
not start from a component, but rather starts from a field in a structure
residing in an array.  To be valid, this event would have to include the
name of the array and a wildcard for the row index at the beginning
of the event target path.  Same problem exists in all the eventReport
paths.  Temporary fix implemented by commenting out this event.

LFBClass OFPort
- Component 5 has a typeRef of PortState, which is undefined.  This
should be PortStateType.

LFBClass OFRedirectIn
- Declared as derivedFrom RedirectIn, which is not itself defined.
Fixed by commenting out the derivedFrom line.
- Strangely, companion LFBClass OFRedirectOut has no such line.

Regards,
Glen