X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Flearning-switch.h;h=1b760d8e5ed74156d36e1d8677beee6ff68c59bd;hb=6c4ea27c48b30eaec8e37e642d5072f53c5b2670;hp=e5036906fdb32c7d83aeef36bf4a7606af7392da;hpb=b3907fbc6c74ddad7507d0f7abb1f5a2528cd2be;p=openvswitch diff --git a/lib/learning-switch.h b/lib/learning-switch.h index e5036906..1b760d8e 100644 --- a/lib/learning-switch.h +++ b/lib/learning-switch.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2010 Nicira Networks. + * Copyright (c) 2008, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,25 +33,30 @@ enum lswitch_mode { struct lswitch_config { enum lswitch_mode mode; - /* Set up only exact-match flows? */ - bool exact_flows; + /* 0 to use exact-match flow entries, + * a OFPFW10_* bitmask to enable specific wildcards, + * or UINT32_MAX to use the default wildcards (wildcarding as many fields + * as possible. + * + * Ignored when max_idle < 0 (in which case no flows are set up). */ + uint32_t wildcards; /* <0: Process every packet at the controller. * >=0: Expire flows after they are unused for 'max_idle' seconds. * OFP_FLOW_PERMANENT: Set up permanent flows. */ int max_idle; - /* Optionally, a list of one or more "struct ofpbuf"s containing OpenFlow - * messages to send to the switch at time of connection. Presumably these - * will be OFPT_FLOW_MOD requests to set up the flow table. */ - const struct list *default_flows; + /* Optional "flow mod" requests to send to the switch at connection time, + * to set up the flow table. */ + const struct ofputil_flow_mod *default_flows; + size_t n_default_flows; /* The OpenFlow queue to use by default. Use UINT32_MAX to avoid * specifying a particular queue. */ uint32_t default_queue; - /* Maps from a port name to a queue_id (cast to void *). */ - const struct shash *port_queues; + /* Maps from a port name to a queue_id. */ + const struct simap *port_queues; }; struct lswitch *lswitch_create(struct rconn *, const struct lswitch_config *);