/*
- * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SSET_FOR_EACH (name, sset) {
struct pvconn *pvconn;
int error;
- error = pvconn_open(name, 0, &pvconn, 0);
+ error = pvconn_open(name, 0, 0, &pvconn);
if (!error) {
pvconns[n_pvconns++] = pvconn;
} else {
bool
connmgr_may_set_up_flow(struct connmgr *mgr, const struct flow *flow,
+ uint32_t local_odp_port,
const struct nlattr *odp_actions,
size_t actions_len)
{
- return !mgr->in_band || in_band_rule_check(flow, odp_actions, actions_len);
+ return !mgr->in_band || in_band_rule_check(flow, local_odp_port,
+ odp_actions, actions_len);
}
\f
/* Fail-open and in-band implementation. */
struct pvconn *pvconn;
int error;
- error = pvconn_open(target, allowed_versions, &pvconn, dscp);
+ error = pvconn_open(target, allowed_versions, dscp, &pvconn);
if (error) {
return error;
}
ofmonitor_destroy(struct ofmonitor *m)
{
if (m) {
+ minimatch_destroy(&m->match);
hmap_remove(&m->ofconn->monitors, &m->ofconn_node);
free(m);
}