Skip to content

Commit

Permalink
dpif: Generalize test for dummy dpifs beyond the name.
Browse files Browse the repository at this point in the history
When --enable-dummy=system or --enable-dummy=override is in use, dpifs
other than "dummy" are actually dummy dpifs, so use a more reliable test.

Signed-off-by: Ben Pfaff <[email protected]>
Acked-by: Alex Wang <[email protected]>
  • Loading branch information
blp committed Jun 16, 2015
1 parent 81de18e commit c4ea752
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
9 changes: 8 additions & 1 deletion lib/dpif-netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -519,10 +519,17 @@ emc_cache_slow_sweep(struct emc_cache *flow_cache)
flow_cache->sweep_idx = (flow_cache->sweep_idx + 1) & EM_FLOW_HASH_MASK;
}

/* Returns true if 'dpif' is a netdev or dummy dpif, false otherwise. */
bool
dpif_is_netdev(const struct dpif *dpif)
{
return dpif->dpif_class->open == dpif_netdev_open;
}

static struct dpif_netdev *
dpif_netdev_cast(const struct dpif *dpif)
{
ovs_assert(dpif->dpif_class->open == dpif_netdev_open);
ovs_assert(dpif_is_netdev(dpif));
return CONTAINER_OF(dpif, struct dpif_netdev, dpif);
}

Expand Down
4 changes: 3 additions & 1 deletion lib/dpif-netdev.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -40,6 +40,8 @@ static inline void dp_packet_pad(struct dp_packet *p)
}
}

bool dpif_is_netdev(const struct dpif *);

#define NR_QUEUE 1
#define NR_PMD_THREADS 1

Expand Down
6 changes: 3 additions & 3 deletions lib/dpif.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -26,6 +26,7 @@
#include "coverage.h"
#include "dpctl.h"
#include "dp-packet.h"
#include "dpif-netdev.h"
#include "dynamic-string.h"
#include "flow.h"
#include "netdev.h"
Expand Down Expand Up @@ -1705,6 +1706,5 @@ log_flow_get_message(const struct dpif *dpif, const struct dpif_flow_get *get,
bool
dpif_supports_tnl_push_pop(const struct dpif *dpif)
{
return !strcmp(dpif->dpif_class->type, "netdev") ||
!strcmp(dpif->dpif_class->type, "dummy");
return dpif_is_netdev(dpif);
}

0 comments on commit c4ea752

Please sign in to comment.