summaryrefslogtreecommitdiff
path: root/ofproto
diff options
context:
space:
mode:
authorBen Pfaff <blp@ovn.org>2018-05-24 10:32:59 -0700
committerBen Pfaff <blp@ovn.org>2018-05-25 13:36:05 -0700
commitfa37affad362df15fc59db00aa96ee79cd5eebd9 (patch)
treef539cdab21f0951aa8bb7c8b6984d9854d33112d /ofproto
parent3d62892884d88cf1d0d02f58b3317e6ec0ca8971 (diff)
downloadopenvswitch-fa37affad362df15fc59db00aa96ee79cd5eebd9.tar.gz
Embrace anonymous unions.
Several OVS structs contain embedded named unions, like this: struct { ... union { ... } u; }; C11 standardized a feature that many compilers already implemented anyway, where an embedded union may be unnamed, like this: struct { ... union { ... }; }; This is more convenient because it allows the programmer to omit "u." in many places. OVS already used this feature in several places. This commit embraces it in several others. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Justin Pettit <jpettit@ovn.org> Tested-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'ofproto')
-rw-r--r--ofproto/ofproto-dpif-upcall.c66
-rw-r--r--ofproto/ofproto.c12
2 files changed, 39 insertions, 39 deletions
diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
index d26f201f4..d80a10d31 100644
--- a/ofproto/ofproto-dpif-upcall.c
+++ b/ofproto/ofproto-dpif-upcall.c
@@ -1553,15 +1553,15 @@ handle_upcalls(struct udpif *udpif, struct upcall *upcalls,
op = &ops[n_ops++];
op->ukey = NULL;
op->dop.type = DPIF_OP_EXECUTE;
- op->dop.u.execute.packet = CONST_CAST(struct dp_packet *, packet);
- op->dop.u.execute.flow = upcall->flow;
+ op->dop.execute.packet = CONST_CAST(struct dp_packet *, packet);
+ op->dop.execute.flow = upcall->flow;
odp_key_to_dp_packet(upcall->key, upcall->key_len,
- op->dop.u.execute.packet);
- op->dop.u.execute.actions = upcall->odp_actions.data;
- op->dop.u.execute.actions_len = upcall->odp_actions.size;
- op->dop.u.execute.needs_help = (upcall->xout.slow & SLOW_ACTION) != 0;
- op->dop.u.execute.probe = false;
- op->dop.u.execute.mtu = upcall->mru;
+ op->dop.execute.packet);
+ op->dop.execute.actions = upcall->odp_actions.data;
+ op->dop.execute.actions_len = upcall->odp_actions.size;
+ op->dop.execute.needs_help = (upcall->xout.slow & SLOW_ACTION) != 0;
+ op->dop.execute.probe = false;
+ op->dop.execute.mtu = upcall->mru;
}
}
@@ -2265,12 +2265,12 @@ delete_op_init__(struct udpif *udpif, struct ukey_op *op,
{
op->ukey = NULL;
op->dop.type = DPIF_OP_FLOW_DEL;
- op->dop.u.flow_del.key = flow->key;
- op->dop.u.flow_del.key_len = flow->key_len;
- op->dop.u.flow_del.ufid = flow->ufid_present ? &flow->ufid : NULL;
- op->dop.u.flow_del.pmd_id = flow->pmd_id;
- op->dop.u.flow_del.stats = &op->stats;
- op->dop.u.flow_del.terse = udpif_use_ufid(udpif);
+ op->dop.flow_del.key = flow->key;
+ op->dop.flow_del.key_len = flow->key_len;
+ op->dop.flow_del.ufid = flow->ufid_present ? &flow->ufid : NULL;
+ op->dop.flow_del.pmd_id = flow->pmd_id;
+ op->dop.flow_del.stats = &op->stats;
+ op->dop.flow_del.terse = udpif_use_ufid(udpif);
}
static void
@@ -2278,12 +2278,12 @@ delete_op_init(struct udpif *udpif, struct ukey_op *op, struct udpif_key *ukey)
{
op->ukey = ukey;
op->dop.type = DPIF_OP_FLOW_DEL;
- op->dop.u.flow_del.key = ukey->key;
- op->dop.u.flow_del.key_len = ukey->key_len;
- op->dop.u.flow_del.ufid = ukey->ufid_present ? &ukey->ufid : NULL;
- op->dop.u.flow_del.pmd_id = ukey->pmd_id;
- op->dop.u.flow_del.stats = &op->stats;
- op->dop.u.flow_del.terse = udpif_use_ufid(udpif);
+ op->dop.flow_del.key = ukey->key;
+ op->dop.flow_del.key_len = ukey->key_len;
+ op->dop.flow_del.ufid = ukey->ufid_present ? &ukey->ufid : NULL;
+ op->dop.flow_del.pmd_id = ukey->pmd_id;
+ op->dop.flow_del.stats = &op->stats;
+ op->dop.flow_del.terse = udpif_use_ufid(udpif);
}
static void
@@ -2292,16 +2292,16 @@ put_op_init(struct ukey_op *op, struct udpif_key *ukey,
{
op->ukey = ukey;
op->dop.type = DPIF_OP_FLOW_PUT;
- op->dop.u.flow_put.flags = flags;
- op->dop.u.flow_put.key = ukey->key;
- op->dop.u.flow_put.key_len = ukey->key_len;
- op->dop.u.flow_put.mask = ukey->mask;
- op->dop.u.flow_put.mask_len = ukey->mask_len;
- op->dop.u.flow_put.ufid = ukey->ufid_present ? &ukey->ufid : NULL;
- op->dop.u.flow_put.pmd_id = ukey->pmd_id;
- op->dop.u.flow_put.stats = NULL;
- ukey_get_actions(ukey, &op->dop.u.flow_put.actions,
- &op->dop.u.flow_put.actions_len);
+ op->dop.flow_put.flags = flags;
+ op->dop.flow_put.key = ukey->key;
+ op->dop.flow_put.key_len = ukey->key_len;
+ op->dop.flow_put.mask = ukey->mask;
+ op->dop.flow_put.mask_len = ukey->mask_len;
+ op->dop.flow_put.ufid = ukey->ufid_present ? &ukey->ufid : NULL;
+ op->dop.flow_put.pmd_id = ukey->pmd_id;
+ op->dop.flow_put.stats = NULL;
+ ukey_get_actions(ukey, &op->dop.flow_put.actions,
+ &op->dop.flow_put.actions_len);
}
/* Executes datapath operations 'ops' and attributes stats retrieved from the
@@ -2322,7 +2322,7 @@ push_dp_ops(struct udpif *udpif, struct ukey_op *ops, size_t n_ops)
struct ukey_op *op = &ops[i];
struct dpif_flow_stats *push, *stats, push_buf;
- stats = op->dop.u.flow_del.stats;
+ stats = op->dop.flow_del.stats;
push = &push_buf;
if (op->dop.type != DPIF_OP_FLOW_DEL) {
@@ -2353,8 +2353,8 @@ push_dp_ops(struct udpif *udpif, struct ukey_op *ops, size_t n_ops)
}
if (push->n_packets || netflow_exists()) {
- const struct nlattr *key = op->dop.u.flow_del.key;
- size_t key_len = op->dop.u.flow_del.key_len;
+ const struct nlattr *key = op->dop.flow_del.key;
+ size_t key_len = op->dop.flow_del.key_len;
struct netflow *netflow;
struct reval_context ctx = {
.netflow = &netflow,
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index b9d53dfdd..829ccd866 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -152,7 +152,7 @@ struct learned_cookie {
/* In 'dead_cookies' list when removed from hmap. */
struct ovs_list list_node;
- } u;
+ };
/* Key. */
ovs_be64 cookie OVS_GUARDED_BY(ofproto_mutex);
@@ -3099,14 +3099,14 @@ learned_cookies_update_one__(struct ofproto *ofproto,
uint32_t hash = hash_learned_cookie(learn->cookie, learn->table_id);
struct learned_cookie *c;
- HMAP_FOR_EACH_WITH_HASH (c, u.hmap_node, hash, &ofproto->learned_cookies) {
+ HMAP_FOR_EACH_WITH_HASH (c, hmap_node, hash, &ofproto->learned_cookies) {
if (c->cookie == learn->cookie && c->table_id == learn->table_id) {
c->n += delta;
ovs_assert(c->n >= 0);
if (!c->n) {
- hmap_remove(&ofproto->learned_cookies, &c->u.hmap_node);
- ovs_list_push_back(dead_cookies, &c->u.list_node);
+ hmap_remove(&ofproto->learned_cookies, &c->hmap_node);
+ ovs_list_push_back(dead_cookies, &c->list_node);
}
return;
@@ -3115,7 +3115,7 @@ learned_cookies_update_one__(struct ofproto *ofproto,
ovs_assert(delta > 0);
c = xmalloc(sizeof *c);
- hmap_insert(&ofproto->learned_cookies, &c->u.hmap_node, hash);
+ hmap_insert(&ofproto->learned_cookies, &c->hmap_node, hash);
c->cookie = learn->cookie;
c->table_id = learn->table_id;
c->n = delta;
@@ -3183,7 +3183,7 @@ learned_cookies_flush(struct ofproto *ofproto, struct ovs_list *dead_cookies)
struct minimatch match;
minimatch_init_catchall(&match);
- LIST_FOR_EACH_POP (c, u.list_node, dead_cookies) {
+ LIST_FOR_EACH_POP (c, list_node, dead_cookies) {
struct rule_criteria criteria;
struct rule_collection rules;
rule_criteria_init(&criteria, c->table_id, &match, 0, OVS_VERSION_MAX,