*
* Returns NULL if successful, otherwise a malloc()'d string describing the
* error. The caller is responsible for freeing the returned string.*/
-static char * WARN_UNUSED_RESULT
+static char * OVS_WARN_UNUSED_RESULT
multipath_parse__(struct ofpact_multipath *mp, const char *s_, char *s)
{
char *save_ptr = NULL;
mp->fields = NX_HASH_FIELDS_ETH_SRC;
} else if (!strcasecmp(fields, "symmetric_l4")) {
mp->fields = NX_HASH_FIELDS_SYMMETRIC_L4;
+ } else if (!strcasecmp(fields, "symmetric_l3l4")) {
+ mp->fields = NX_HASH_FIELDS_SYMMETRIC_L3L4;
+ } else if (!strcasecmp(fields, "symmetric_l3l4+udp")) {
+ mp->fields = NX_HASH_FIELDS_SYMMETRIC_L3L4_UDP;
} else {
return xasprintf("%s: unknown fields `%s'", s_, fields);
}
if (error) {
return error;
}
+ if (!mf_nxm_header(mp->dst.field->id)) {
+ return xasprintf("%s: experimenter OXM field '%s' not supported",
+ s, dst);
+ }
if (mp->dst.n_bits < 16 && n_links > (1u << mp->dst.n_bits)) {
return xasprintf("%s: %d-bit destination field has %u possible "
"values, less than specified n_links %d",
*
* Returns NULL if successful, otherwise a malloc()'d string describing the
* error. The caller is responsible for freeing the returned string. */
-char * WARN_UNUSED_RESULT
+char * OVS_WARN_UNUSED_RESULT
multipath_parse(struct ofpact_multipath *mp, const char *s_)
{
char *s = xstrdup(s_);