Merge commit '9dc63482bbeae23dd57b0f885a3fd26b44656844'
[sliver-openvswitch.git] / lib / odp-execute.c
index 42ab4b3..e6e8c91 100644 (file)
@@ -91,26 +91,26 @@ odp_execute_set_action(struct ofpbuf *packet, const struct nlattr *a,
         packet_set_tcp_port(packet, tcp_key->tcp_src, tcp_key->tcp_dst);
         break;
 
-     case OVS_KEY_ATTR_UDP:
+    case OVS_KEY_ATTR_UDP:
         udp_key = nl_attr_get_unspec(a, sizeof(struct ovs_key_udp));
         packet_set_udp_port(packet, udp_key->udp_src, udp_key->udp_dst);
         break;
 
-     case OVS_KEY_ATTR_MPLS:
+    case OVS_KEY_ATTR_MPLS:
          set_mpls_lse(packet, nl_attr_get_be32(a));
          break;
 
-     case OVS_KEY_ATTR_UNSPEC:
-     case OVS_KEY_ATTR_ENCAP:
-     case OVS_KEY_ATTR_ETHERTYPE:
-     case OVS_KEY_ATTR_IN_PORT:
-     case OVS_KEY_ATTR_VLAN:
-     case OVS_KEY_ATTR_ICMP:
-     case OVS_KEY_ATTR_ICMPV6:
-     case OVS_KEY_ATTR_ARP:
-     case OVS_KEY_ATTR_ND:
-     case __OVS_KEY_ATTR_MAX:
-     default:
+    case OVS_KEY_ATTR_UNSPEC:
+    case OVS_KEY_ATTR_ENCAP:
+    case OVS_KEY_ATTR_ETHERTYPE:
+    case OVS_KEY_ATTR_IN_PORT:
+    case OVS_KEY_ATTR_VLAN:
+    case OVS_KEY_ATTR_ICMP:
+    case OVS_KEY_ATTR_ICMPV6:
+    case OVS_KEY_ATTR_ARP:
+    case OVS_KEY_ATTR_ND:
+    case __OVS_KEY_ATTR_MAX:
+    default:
         NOT_REACHED();
     }
 }
@@ -170,7 +170,9 @@ odp_execute_actions(void *dp, struct ofpbuf *packet, struct flow *key,
 
         switch ((enum ovs_action_attr) type) {
         case OVS_ACTION_ATTR_OUTPUT:
-            output(dp, packet, nl_attr_get_u32(a));
+            if (output) {
+                output(dp, packet, nl_attr_get_u32(a));
+            }
             break;
 
         case OVS_ACTION_ATTR_USERSPACE: {