git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pltap: do not try to get flags until finalized
[sliver-openvswitch.git]
/
ofproto
/
connmgr.c
diff --git
a/ofproto/connmgr.c
b/ofproto/connmgr.c
index
d436f77
..
05e69c7
100644
(file)
--- a/
ofproto/connmgr.c
+++ b/
ofproto/connmgr.c
@@
-1407,7
+1407,8
@@
schedule_packet_in(struct ofconn *ofconn, struct ofputil_packet_in pin)
* while (until a later call to pinsched_run()). */
pinsched_send(ofconn->schedulers[pin.reason == OFPR_NO_MATCH ? 0 : 1],
pin.fmd.in_port,
* while (until a later call to pinsched_run()). */
pinsched_send(ofconn->schedulers[pin.reason == OFPR_NO_MATCH ? 0 : 1],
pin.fmd.in_port,
- ofputil_encode_packet_in(&pin, ofconn->packet_in_format),
+ ofputil_encode_packet_in(&pin, ofconn->protocol,
+ ofconn->packet_in_format),
do_send_packet_in, ofconn);
}
\f
do_send_packet_in, ofconn);
}
\f
@@
-1599,14
+1600,14
@@
connmgr_flushed(struct connmgr *mgr)
if (!connmgr_has_controllers(mgr)
&& mgr->fail_mode == OFPROTO_FAIL_STANDALONE) {
struct ofpbuf ofpacts;
if (!connmgr_has_controllers(mgr)
&& mgr->fail_mode == OFPROTO_FAIL_STANDALONE) {
struct ofpbuf ofpacts;
- struct
cls_rule rule
;
+ struct
match match
;
ofpbuf_init(&ofpacts, OFPACT_OUTPUT_SIZE);
ofpact_put_OUTPUT(&ofpacts)->port = OFPP_NORMAL;
ofpact_pad(&ofpacts);
ofpbuf_init(&ofpacts, OFPACT_OUTPUT_SIZE);
ofpact_put_OUTPUT(&ofpacts)->port = OFPP_NORMAL;
ofpact_pad(&ofpacts);
-
cls_rule_init_catchall(&rule, 0
);
- ofproto_add_flow(mgr->ofproto, &
rule
, ofpacts.data, ofpacts.size);
+
match_init_catchall(&match
);
+ ofproto_add_flow(mgr->ofproto, &
match, 0
, ofpacts.data, ofpacts.size);
ofpbuf_uninit(&ofpacts);
}
ofpbuf_uninit(&ofpacts);
}
@@
-1716,7
+1717,7
@@
ofmonitor_create(const struct ofputil_flow_monitor_request *request,
m->flags = request->flags;
m->out_port = request->out_port;
m->table_id = request->table_id;
m->flags = request->flags;
m->out_port = request->out_port;
m->table_id = request->table_id;
- m
->match = request->match
;
+ m
inimatch_init(&m->match, &request->match)
;
*monitorp = m;
return 0;
*monitorp = m;
return 0;
@@
-1804,6
+1805,7
@@
ofmonitor_report(struct connmgr *mgr, struct rule *rule,
if (ofconn != abbrev_ofconn || ofconn->monitor_paused) {
struct ofputil_flow_update fu;
if (ofconn != abbrev_ofconn || ofconn->monitor_paused) {
struct ofputil_flow_update fu;
+ struct match match;
fu.event = event;
fu.reason = event == NXFME_DELETED ? reason : 0;
fu.event = event;
fu.reason = event == NXFME_DELETED ? reason : 0;
@@
-1811,7
+1813,9
@@
ofmonitor_report(struct connmgr *mgr, struct rule *rule,
fu.hard_timeout = rule->hard_timeout;
fu.table_id = rule->table_id;
fu.cookie = rule->flow_cookie;
fu.hard_timeout = rule->hard_timeout;
fu.table_id = rule->table_id;
fu.cookie = rule->flow_cookie;
- fu.match = &rule->cr;
+ minimatch_expand(&rule->cr.match, &match);
+ fu.match = &match;
+ fu.priority = rule->cr.priority;
if (flags & NXFMF_ACTIONS) {
fu.ofpacts = rule->ofpacts;
fu.ofpacts_len = rule->ofpacts_len;
if (flags & NXFMF_ACTIONS) {
fu.ofpacts = rule->ofpacts;
fu.ofpacts_len = rule->ofpacts_len;