case OVS_VPORT_TYPE_LISP:
return "lisp";
+ case OVS_VPORT_TYPE_STT:
+ return "stt";
+
case OVS_VPORT_TYPE_UNSPEC:
case __OVS_VPORT_TYPE_MAX:
break;
return OVS_VPORT_TYPE_NETDEV;
} else if (!strcmp(type, "internal")) {
return OVS_VPORT_TYPE_INTERNAL;
+ } else if (strstr(type, "stt")) {
+ return OVS_VPORT_TYPE_STT;
} else if (!strcmp(type, "geneve")) {
return OVS_VPORT_TYPE_GENEVE;
} else if (strstr(type, "gre64")) {
const struct dpif_flow_del *del,
struct dpif_netlink_flow *request)
{
- return dpif_netlink_init_flow_del__(dpif, del->key, del->key_len,
- del->ufid, del->terse, request);
+ dpif_netlink_init_flow_del__(dpif, del->key, del->key_len,
+ del->ufid, del->terse, request);
}
struct dpif_netlink_flow_dump {
switch (op->type) {
case DPIF_OP_FLOW_PUT:
put = &op->u.flow_put;
+#ifdef _WIN32
+ /* Windows datapath doesn't support DPIF_FP_PROBE yet. */
+ if (put->flags & DPIF_FP_PROBE) {
+ /* Report an error immediately if this is the first operation.
+ * Otherwise the easiest thing to do is to postpone to the next
+ * call (when this will be the first operation). */
+ if (i == 0) {
+ op->error = EINVAL;
+ return 1;
+ }
+ n_ops = i;
+ break;
+ }
+#endif
dpif_netlink_init_flow_put(dpif, put, &flow);
if (put->stats) {
flow.nlmsg_flags |= NLM_F_ECHO;
const struct dpif_class dpif_netlink_class = {
"system",
+ NULL, /* init */
dpif_netlink_enumerate,
NULL,
dpif_netlink_open,