projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dpif-linux: Use get_32aligned_u64() in an appropriate place.
[openvswitch]
/
ofproto
/
ofproto-dpif.c
diff --git
a/ofproto/ofproto-dpif.c
b/ofproto/ofproto-dpif.c
index 165732c90436d21184b22956dfd83184a1192fae..1ffe36a90a48020a2e61308902bfaa7616d1b4cf 100644
(file)
--- a/
ofproto/ofproto-dpif.c
+++ b/
ofproto/ofproto-dpif.c
@@
-710,7
+710,7
@@
static void
get_tables(struct ofproto *ofproto_, struct ofp_table_stats *ots)
{
struct ofproto_dpif *ofproto = ofproto_dpif_cast(ofproto_);
get_tables(struct ofproto *ofproto_, struct ofp_table_stats *ots)
{
struct ofproto_dpif *ofproto = ofproto_dpif_cast(ofproto_);
- struct
ovs
_dp_stats s;
+ struct
dpif
_dp_stats s;
strcpy(ots->name, "classifier");
strcpy(ots->name, "classifier");
@@
-758,6
+758,7
@@
port_construct(struct ofport *port_)
struct ofport_dpif *port = ofport_dpif_cast(port_);
struct ofproto_dpif *ofproto = ofproto_dpif_cast(port->up.ofproto);
struct ofport_dpif *port = ofport_dpif_cast(port_);
struct ofproto_dpif *ofproto = ofproto_dpif_cast(port->up.ofproto);
+ ofproto->need_revalidate = true;
port->odp_port = ofp_port_to_odp_port(port->up.ofp_port);
port->bundle = NULL;
port->cfm = NULL;
port->odp_port = ofp_port_to_odp_port(port->up.ofp_port);
port->bundle = NULL;
port->cfm = NULL;
@@
-778,6
+779,7
@@
port_destruct(struct ofport *port_)
struct ofport_dpif *port = ofport_dpif_cast(port_);
struct ofproto_dpif *ofproto = ofproto_dpif_cast(port->up.ofproto);
struct ofport_dpif *port = ofport_dpif_cast(port_);
struct ofproto_dpif *ofproto = ofproto_dpif_cast(port->up.ofproto);
+ ofproto->need_revalidate = true;
bundle_remove(port_);
set_cfm(port_, NULL);
if (ofproto->sflow) {
bundle_remove(port_);
set_cfm(port_, NULL);
if (ofproto->sflow) {
@@
-988,6
+990,7
@@
bundle_add_port(struct ofbundle *bundle, uint32_t ofp_port,
}
}
if (lacp) {
}
}
if (lacp) {
+ port->bundle->ofproto->need_revalidate = true;
lacp_slave_register(bundle->lacp, port, lacp);
}
lacp_slave_register(bundle->lacp, port, lacp);
}
@@
-1565,7
+1568,8
@@
port_run(struct ofport_dpif *ofport)
ofpbuf_uninit(&packet);
}
ofpbuf_uninit(&packet);
}
- enable = enable && !cfm_get_fault(ofport->cfm);
+ enable = enable && !cfm_get_fault(ofport->cfm)
+ && cfm_get_opup(ofport->cfm);
}
if (ofport->bundle) {
}
if (ofport->bundle) {
@@
-2258,7
+2262,7
@@
facet_execute(struct ofproto_dpif *ofproto, struct facet *facet,
assert(ofpbuf_headroom(packet) >= sizeof(struct ofp_packet_in));
assert(ofpbuf_headroom(packet) >= sizeof(struct ofp_packet_in));
-
flow_extract_stats
(&facet->flow, packet, &stats);
+
dpif_flow_stats_extract
(&facet->flow, packet, &stats);
stats.used = time_msec();
if (execute_odp_actions(ofproto, &facet->flow,
facet->actions, facet->actions_len, packet)) {
stats.used = time_msec();
if (execute_odp_actions(ofproto, &facet->flow,
facet->actions, facet->actions_len, packet)) {
@@
-2923,7
+2927,7
@@
rule_modify_actions(struct rule *rule_)
complete_operation(rule);
}
\f
complete_operation(rule);
}
\f
-/* Sends 'packet' out of port 'odp_port' within '
p
'.
+/* Sends 'packet' out of port 'odp_port' within '
ofproto
'.
* Returns 0 if successful, otherwise a positive errno value. */
static int
send_packet(struct ofproto_dpif *ofproto, uint32_t odp_port,
* Returns 0 if successful, otherwise a positive errno value. */
static int
send_packet(struct ofproto_dpif *ofproto, uint32_t odp_port,