const void *msg)
{
const struct ofp_switch_config *osc = msg;
+ int flags;
+
+ flags = ntohs(osc->flags) & ~(OFPC_SEND_FLOW_EXP | OFPC_FRAG_MASK);
+ if ((flags & OFPC_FRAG_MASK) != OFPC_FRAG_NORMAL
+ && (flags & OFPC_FRAG_MASK) != OFPC_FRAG_DROP) {
+ flags = (flags & ~OFPC_FRAG_MASK) | OFPC_FRAG_DROP;
+ }
+ chain->dp->flags = flags;
- chain->dp->flags = ntohs(osc->flags);
chain->dp->miss_send_len = ntohs(osc->miss_send_len);
return 0;
const void *msg)
{
const struct ofp_switch_config *osc = msg;
- dp->flags = ntohs(osc->flags);
+ int flags;
+
+ flags = ntohs(osc->flags) & ~(OFPC_SEND_FLOW_EXP | OFPC_FRAG_MASK);
+ if ((flags & OFPC_FRAG_MASK) != OFPC_FRAG_NORMAL
+ && (flags & OFPC_FRAG_MASK) != OFPC_FRAG_DROP) {
+ flags = (flags & ~OFPC_FRAG_MASK) | OFPC_FRAG_DROP;
+ }
+ dp->flags = flags;
dp->miss_send_len = ntohs(osc->miss_send_len);
return 0;
}