mirror of
https://github.com/openvswitch/ovs
synced 2025-10-15 14:17:18 +00:00
ovs-vswitchd: Remove inline OpenFlow descriptions
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.)
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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. */
|
||||
@@ -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)
|
||||
@@ -1436,6 +1512,8 @@ bridge_reconfigure_one(const struct ovsrec_open_vswitch *ovs_cfg,
|
||||
#endif
|
||||
|
||||
mirror_reconfigure(br);
|
||||
|
||||
bridge_update_desc(br);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user