+ break;
+ case IPFIX_UPCALL:
+ ipfix = xlate_get_ipfix(ofproto);
+ if (ipfix) {
+ dpif_ipfix_bridge_sample(ipfix, dupcall->packet, &flow);
+ dpif_ipfix_unref(ipfix);
+ }
+ break;
+ case FLOW_SAMPLE_UPCALL:
+ ipfix = xlate_get_ipfix(ofproto);
+ if (ipfix) {
+ union user_action_cookie cookie;
+
+ memset(&cookie, 0, sizeof cookie);
+ memcpy(&cookie, nl_attr_get(dupcall->userdata),
+ sizeof cookie.flow_sample);
+
+ /* The flow reflects exactly the contents of the packet.
+ * Sample the packet using it. */
+ dpif_ipfix_flow_sample(ipfix, dupcall->packet, &flow,
+ cookie.flow_sample.collector_set_id,
+ cookie.flow_sample.probability,
+ cookie.flow_sample.obs_domain_id,
+ cookie.flow_sample.obs_point_id);
+ dpif_ipfix_unref(ipfix);
+ }
+ break;
+ case BAD_UPCALL:
+ break;
+ case MISS_UPCALL:
+ NOT_REACHED();