[ovs-discuss] Set-field cannot update read-only actions on OVS
Ben Pfaff
blp at nicira.com
Mon Mar 24 20:16:58 UTC 2014
On Mon, Mar 24, 2014 at 10:34:37PM +0530, Krish wrote:
> Please refer link: https://bugs.opendaylight.org/show_bug.cgi?id=381 where
> the original bug was filed.
>
> Description:
> =========
>
> We cannot use set-field action for:
> ETH_TYPE
> ICMPV4_TYPE
> ICMPV4_CODE
> ARP_OP
> ARP_SPA
> ARP_TPA
> ARP_SHA
> ARP_THA
> IPV6_FLABEL
> ICMPV6_TYPE
> ICMPV6_CODE
> IPV6_ND_TARGET
> IPV6_ND_SLL
> IPV6_ND_TLL
Some of those are modifiable in the latest version of Open vSwitch, so
you should consider upgrading.
eth_type and the ICMP type and code will probably never be made
modifiable, because changing them changes the interpretation of fields
in later layers in ways that don't really make sense.
Some of the claims at your bug system URL are just wrong, though. For
example:
>"The OpenFlow 1.3.2 spec says that we should be able to set the
>values for these fields"
You are right. In openflow 1.3.2 spec, it is mentioned that all
fields in ofp_table_features may be requested to be changed by the
controller with the exception of the max_entries_field, this is
read only and returned by the switch.
So this is ovs bug and not of openflowplugin. OVS needs to make
them read-write.
Here's what OpenFlow 1.3.3 says in section 5.12. Set-Field is clearly
optional:
Optional Action: Set-Field. The various Set-Field actions are
identified by their field type and mod- ify the values of
respective header fields in the packet. While not strictly
required, the support of rewriting various header fields using
Set-Field actions greatly increase the usefulness of an OpenFlow
implementation.
Here's what 7.2.5 Action Structures says:
All header fields are valid in the set-field action, as well as
the OXM_OF_TUNNEL_ID pipeline field, and can be used if the switch
support them.
So I don't know where Krishnan Iyer gets the idea that all fields have
to be modifiable.
And Jyotsna Priya's comment that:
In openflow 1.3.2 spec, it is mentioned that all fields in
ofp_table_features may be requested to be changed by the
controller with the exception of the max_entries_field, this is
read only and returned by the switch.
is completely wrong. ofp_table_features allows one to find out the
switch's features, including whether it can write various fields, and
to request changes to the switch's features. The text in 1.3.2 means
that the controller can request a change to any feature, but it
doesn't mean that the switch must be able to implement any change that
the controller requests.
More information about the discuss
mailing list