Skip to content

Commit

Permalink
ovs-vswitchd: Remove inline OpenFlow descriptions
Browse files Browse the repository at this point in the history
Replace inline OpenFlow descriptions with #define.  Also, start work to
support setting them dynamically.

(This was originally working with the config file version of vswitchd,
but needs to be updated to work with the config db.)
  • Loading branch information
Justin Pettit committed Feb 20, 2010
1 parent ce64033 commit 23ff282
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 5 deletions.
10 changes: 5 additions & 5 deletions ofproto/ofproto.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,11 +299,11 @@ ofproto_create(const char *datapath, const char *datapath_type,
p = xzalloc(sizeof *p);
p->fallback_dpid = pick_fallback_dpid();
p->datapath_id = p->fallback_dpid;
p->manufacturer = xstrdup("Nicira Networks, Inc.");
p->hardware = xstrdup("Reference Implementation");
p->software = xstrdup(VERSION BUILDNR);
p->serial = xstrdup("None");
p->dp_desc = xstrdup("None");
p->manufacturer = xstrdup(DEFAULT_MFR_DESC);
p->hardware = xstrdup(DEFAULT_HW_DESC);
p->software = xstrdup(DEFAULT_SW_DESC);
p->serial = xstrdup(DEFAULT_SERIAL_DESC);
p->dp_desc = xstrdup(DEFAULT_DP_DESC);

/* Initialize datapath. */
p->dpif = dpif;
Expand Down
6 changes: 6 additions & 0 deletions ofproto/ofproto.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ struct ofproto_sflow_options {
char *control_ip;
};

#define DEFAULT_MFR_DESC "Nicira Networks, Inc."
#define DEFAULT_HW_DESC "Open vSwitch"
#define DEFAULT_SW_DESC VERSION BUILDNR
#define DEFAULT_SERIAL_DESC "None"
#define DEFAULT_DP_DESC "None"

int ofproto_create(const char *datapath, const char *datapath_type,
const struct ofhooks *, void *aux,
struct ofproto **ofprotop);
Expand Down
78 changes: 78 additions & 0 deletions vswitchd/bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,13 @@ struct bridge {
/* OpenFlow switch processing. */
struct ofproto *ofproto; /* OpenFlow switch. */

/* Description strings. */
char *mfr_desc; /* Manufacturer. */
char *hw_desc; /* Hardware. */
char *sw_desc; /* Software version. */
char *serial_desc; /* Serial number. */
char *dp_desc; /* Datapath description. */

/* Kernel datapath information. */
struct dpif *dpif; /* Datapath. */
struct port_array ifaces; /* Indexed by kernel datapath port number. */
Expand Down Expand Up @@ -1298,6 +1305,75 @@ check_duplicate_ifaces(struct bridge *br, struct iface *iface, void *ifaces_)
}
}

static void
bridge_update_desc(struct bridge *br)
{
#if 0
bool changed = false;
const char *desc;

desc = cfg_get_string(0, "bridge.%s.mfr-desc", br->name);
if (desc != br->mfr_desc) {
free(br->mfr_desc);
if (desc) {
br->mfr_desc = xstrdup(desc);
} else {
br->mfr_desc = xstrdup(DEFAULT_MFR_DESC);
}
changed = true;
}

desc = cfg_get_string(0, "bridge.%s.hw-desc", br->name);
if (desc != br->hw_desc) {
free(br->hw_desc);
if (desc) {
br->hw_desc = xstrdup(desc);
} else {
br->hw_desc = xstrdup(DEFAULT_HW_DESC);
}
changed = true;
}

desc = cfg_get_string(0, "bridge.%s.sw-desc", br->name);
if (desc != br->sw_desc) {
free(br->sw_desc);
if (desc) {
br->sw_desc = xstrdup(desc);
} else {
br->sw_desc = xstrdup(DEFAULT_SW_DESC);
}
changed = true;
}

desc = cfg_get_string(0, "bridge.%s.serial-desc", br->name);
if (desc != br->serial_desc) {
free(br->serial_desc);
if (desc) {
br->serial_desc = xstrdup(desc);
} else {
br->serial_desc = xstrdup(DEFAULT_SERIAL_DESC);
}
changed = true;
}

desc = cfg_get_string(0, "bridge.%s.dp-desc", br->name);
if (desc != br->dp_desc) {
free(br->dp_desc);
if (desc) {
br->dp_desc = xstrdup(desc);
} else {
br->dp_desc = xstrdup(DEFAULT_DP_DESC);
}
changed = true;
}

if (changed) {
ofproto_set_desc(br->ofproto, br->mfr_desc, br->hw_desc,
br->sw_desc, br->serial_desc, br->dp_desc);
}
#endif
}

static void
bridge_reconfigure_one(const struct ovsrec_open_vswitch *ovs_cfg,
struct bridge *br)
Expand Down Expand Up @@ -1436,6 +1512,8 @@ bridge_reconfigure_one(const struct ovsrec_open_vswitch *ovs_cfg,
#endif

mirror_reconfigure(br);

bridge_update_desc(br);
}

static void
Expand Down

0 comments on commit 23ff282

Please sign in to comment.