/* Datapath. */
struct hmap ports; /* Contains "struct ofport"s. */
struct shash port_by_name;
- unsigned long *ofp_port_ids;/* Bitmap of used OpenFlow port numbers. */
struct simap ofp_requests; /* OpenFlow port number requests. */
uint16_t alloc_port_no; /* Last allocated OpenFlow port number. */
uint16_t max_ports; /* Max possible OpenFlow port num, plus one. */
+ struct hmap ofport_usage; /* Map ofport to last used time. */
/* Flow tables. */
long long int eviction_group_timer; /* For rate limited reheapification. */
* lifetime. */
struct ofpact *ofpacts; /* Sequence of "struct ofpacts". */
unsigned int ofpacts_len; /* Size of 'ofpacts', in bytes. */
- uint32_t meter_id; /* Non-zero OF meter_id, or zero. */
+ uint32_t provider_meter_id; /* Datapath meter_id, or UINT32_MAX. */
};
-struct rule_actions *rule_actions_create(const struct ofpact *, size_t);
+struct rule_actions *rule_actions_create(const struct ofproto *,
+ const struct ofpact *, size_t);
void rule_actions_ref(struct rule_actions *);
void rule_actions_unref(struct rule_actions *);