diff options
author | Ethan Jackson <ethan@nicira.com> | 2013-09-24 15:04:04 -0700 |
---|---|---|
committer | Ethan Jackson <ethan@nicira.com> | 2013-09-30 17:35:17 -0700 |
commit | 10e576406c7444ef198cc2d4b6c4adfe242c085c (patch) | |
tree | 546a8d8a36103589e8c6177e5cdfad3df18db397 /ofproto/ofproto-dpif-upcall.h | |
parent | 6a8a8528acb05d6d0a520e09ad1ec67e62b99e5e (diff) | |
download | openvswitch-10e576406c7444ef198cc2d4b6c4adfe242c085c.tar.gz |
ofproto-dpif: Move special upcall handling into ofproto-dpif-upcall.
Both the IPFIX and SFLOW modules are thread safe, so there's no
particular reason to pass them up to the main thread. Eliminating
this step significantly simplifies the code.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'ofproto/ofproto-dpif-upcall.h')
-rw-r--r-- | ofproto/ofproto-dpif-upcall.h | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/ofproto/ofproto-dpif-upcall.h b/ofproto/ofproto-dpif-upcall.h index cd97e79db..da7571937 100644 --- a/ofproto/ofproto-dpif-upcall.h +++ b/ofproto/ofproto-dpif-upcall.h @@ -40,38 +40,6 @@ void udpif_wait(struct udpif *); void udpif_revalidate(struct udpif *); -/* udpif can handle some upcalls on its own. Others need the main ofproto_dpif - * code to handle them. This interface passes upcalls not handled by udpif up - * to the ofproto_dpif main thread. */ - -/* Type of an upcall. */ -enum upcall_type { - /* Handled internally by udpif code. Not returned by upcall_next().*/ - BAD_UPCALL, /* Some kind of bug somewhere. */ - MISS_UPCALL, /* A flow miss. */ - - /* Require main thread's involvement. May be returned by upcall_next(). */ - SFLOW_UPCALL, /* sFlow sample. */ - FLOW_SAMPLE_UPCALL, /* Per-flow sampling. */ - IPFIX_UPCALL /* Per-bridge sampling. */ -}; - -/* An upcall. */ -struct upcall { - struct list list_node; /* For queuing upcalls. */ - struct flow_miss *flow_miss; /* This upcall's flow_miss. */ - - enum upcall_type type; /* Classification. */ - - /* Raw upcall plus data for keeping track of the memory backing it. */ - struct dpif_upcall dpif_upcall; /* As returned by dpif_recv() */ - struct ofpbuf upcall_buf; /* Owns some data in 'dpif_upcall'. */ - uint64_t upcall_stub[512 / 8]; /* Buffer to reduce need for malloc(). */ -}; - -struct upcall *upcall_next(struct udpif *); -void upcall_destroy(struct upcall *); - /* udpif figures out how to forward packets, and does forward them, but it * can't set up datapath flows on its own. This interface passes packet * forwarding data from udpif to the higher level ofproto_dpif to allow the |