Hi YAMAMOTO, Sorry for delay in answer.
On 05/11/2013 12:36, YAMAMOTO Takashi wrote:
thanks for working on this.+static void +table_oxm_init(struct ofputil_table_features *tf, + enum ofputil_table_feature_prop_type type) +{ + int i = 0 ,olen = 0; + const int OXM_NUM = get_oxm_num(); + uint32_t *oxm_ids = NULL; + + olen = sizeof(uint32_t) * OXM_NUM; + oxm_ids = xzalloc(olen); + + tf->props[type].data = (uint8_t*)oxm_ids; + + for (i = 0; i < OXM_NUM; i++) { + oxm_ids[i] = oxm_variables[i].data; + } + + tf->props[type].length = olen + sizeof(struct ofp13_table_feature_prop_header); + tf->props[type].type = type; + tf->n_property++; +}for OFPTFPT_MATCH, HASMASK bit should be set for types for which a switch support masking. (OpenFlow 1.3.2 p.83) it's unclear (to me) what value oxm_length should be for these properties. existing implementations seem to vary. LINC always uses 0 and ofsoftswitch13 uses "normal" value as your patch does. (eg. 6 for eth_dst) another question is if it should be doubled for the above mentioned HASMASK=1 case. probably need to ask ONF members clarify. YAMAMOTO Takashi
Good question. Not only oxm, action and instruction in table-features has this matter. The length may be useless now, but I'm not sure if it makes sense. -- Best Regards, Alexander Wu _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
