Skip to content

Commit

Permalink
lldp-structs: Fix use of list of lldpd_aa_isid_vlan_maps_tlv.
Browse files Browse the repository at this point in the history
A list of some type should have type "struct ovs_list", not some other
type that encapsulates it.

Signed-off-by: Ben Pfaff <blp@nicira.com>
  • Loading branch information
blp committed Mar 4, 2015
1 parent 02c842e commit 854560f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 25 deletions.
11 changes: 5 additions & 6 deletions lib/lldp/lldp.c
Expand Up @@ -276,7 +276,7 @@ lldp_send(struct lldpd *global OVS_UNUSED,
lldp_tlv_end(p, start);
}

if (!list_is_empty(&port->p_isid_vlan_maps.m_entries)) {
if (!list_is_empty(&port->p_isid_vlan_maps)) {
int j;

for (j = 0; j < LLDP_TLV_AA_ISID_VLAN_DIGEST_LENGTH; j++) {
Expand All @@ -290,7 +290,7 @@ lldp_send(struct lldpd *global OVS_UNUSED,

LIST_FOR_EACH (vlan_isid_map,
m_entries,
&hardware->h_lport.p_isid_vlan_maps.m_entries) {
&hardware->h_lport.p_isid_vlan_maps) {
u_int16_t status_vlan_word;
status_vlan_word =
(vlan_isid_map->isid_vlan_data.status << 12) |
Expand Down Expand Up @@ -358,7 +358,7 @@ lldp_decode(struct lldpd *cfg OVS_UNUSED, char *frame, int s,
list_init(&chassis->c_mgmt.m_entries);

port = xzalloc(sizeof *port);
list_init(&port->p_isid_vlan_maps.m_entries);
list_init(&port->p_isid_vlan_maps);

length = s;
pos = (u_int8_t*) frame;
Expand Down Expand Up @@ -563,9 +563,8 @@ lldp_decode(struct lldpd *cfg OVS_UNUSED, char *frame, int s,
PEEK_BYTES(isid, 3);
isid_vlan_map->isid_vlan_data.isid =
(isid[0] << 16) | (isid[1] << 8) | isid[2];
list_push_back(
(struct ovs_list *) &port->p_isid_vlan_maps,
(struct ovs_list *) isid_vlan_map);
list_push_back(&port->p_isid_vlan_maps,
&isid_vlan_map->m_entries);
isid_vlan_map = NULL;
}
break;
Expand Down
2 changes: 1 addition & 1 deletion lib/lldp/lldpd-structs.h
Expand Up @@ -101,7 +101,7 @@ struct lldpd_port {
char *p_descr;
u_int16_t p_mfs;
struct lldpd_aa_element_tlv p_element;
struct lldpd_aa_isid_vlan_maps_tlv p_isid_vlan_maps;
struct ovs_list p_isid_vlan_maps; /* Contains "struct lldpd_aa_isid_vlan_maps_tlv"s. */
};

/* Used to modify some port related settings */
Expand Down
17 changes: 7 additions & 10 deletions lib/ovs-lldp.c
Expand Up @@ -261,11 +261,11 @@ aa_print_isid_status_port_isid(struct lldp *lldp, struct lldpd_port *port)
{
struct lldpd_aa_isid_vlan_maps_tlv *mapping;

if (list_is_empty(&port->p_isid_vlan_maps.m_entries)) {
if (list_is_empty(&port->p_isid_vlan_maps)) {
return;
}

LIST_FOR_EACH (mapping, m_entries, &port->p_isid_vlan_maps.m_entries) {
LIST_FOR_EACH (mapping, m_entries, &port->p_isid_vlan_maps) {
uint32_t isid = mapping->isid_vlan_data.isid;
struct aa_mapping_internal *m = mapping_find_by_isid(lldp, isid);

Expand Down Expand Up @@ -405,8 +405,7 @@ update_mapping_on_lldp(struct lldp *lldp, struct lldpd_hardware *hardware,
lm->isid_vlan_data.isid = m->isid;
lm->isid_vlan_data.vlan = m->vlan;

list_push_back(&hardware->h_lport.p_isid_vlan_maps.m_entries,
&lm->m_entries);
list_push_back(&hardware->h_lport.p_isid_vlan_maps, &lm->m_entries);

/* TODO Should be done in the Auto Attach state machine when a mapping goes
* from "pending" to "active".
Expand Down Expand Up @@ -584,10 +583,8 @@ aa_mapping_unregister_mapping(struct lldp *lldp,
{
struct lldpd_aa_isid_vlan_maps_tlv *lm, *lm_next;

LIST_FOR_EACH_SAFE (lm,
lm_next,
m_entries,
&hw->h_lport.p_isid_vlan_maps.m_entries) {
LIST_FOR_EACH_SAFE (lm, lm_next, m_entries,
&hw->h_lport.p_isid_vlan_maps) {
uint32_t isid = lm->isid_vlan_data.isid;

if (isid == (uint32_t) m->isid) {
Expand Down Expand Up @@ -866,7 +863,7 @@ lldp_create(const struct netdev *netdev,
hw->h_lport.p_element.system_id.mlt_id[0] = 0;
hw->h_lport.p_element.system_id.mlt_id[1] = 0;

list_init(&hw->h_lport.p_isid_vlan_maps.m_entries);
list_init(&hw->h_lport.p_isid_vlan_maps);
list_init(&lldp->lldpd->g_hardware.h_entries);
list_push_back(&lldp->lldpd->g_hardware.h_entries, &hw->h_entries);

Expand Down Expand Up @@ -954,7 +951,7 @@ lldp_create_dummy(void)
hw->h_lport.p_element.system_id.mlt_id[0] = 0;
hw->h_lport.p_element.system_id.mlt_id[1] = 0;

list_init(&hw->h_lport.p_isid_vlan_maps.m_entries);
list_init(&hw->h_lport.p_isid_vlan_maps);
list_init(&lldp->lldpd->g_hardware.h_entries);
list_push_back(&lldp->lldpd->g_hardware.h_entries, &hw->h_entries);

Expand Down
13 changes: 5 additions & 8 deletions tests/test-aa.c
Expand Up @@ -106,11 +106,10 @@ check_received_aa(struct lldpd_port *sport,
sport->p_element.system_id.mlt_id[1]);

/* Should receive 2 mappings */
assert(!list_is_empty(&rport->p_isid_vlan_maps.m_entries));
assert(!list_is_empty(&rport->p_isid_vlan_maps));

/* For each received isid/vlan mapping */
LIST_FOR_EACH (received_map, m_entries,
&rport->p_isid_vlan_maps.m_entries) {
LIST_FOR_EACH (received_map, m_entries, &rport->p_isid_vlan_maps) {

/* Validate against mapping sent */
assert(smap[i].isid_vlan_data.status ==
Expand Down Expand Up @@ -260,11 +259,9 @@ test_aa_send(void)
map[1].isid_vlan_data.vlan = map_init[1].isid_vlan_data.vlan;
map[1].isid_vlan_data.isid = map_init[1].isid_vlan_data.isid;

list_init(&hw->h_lport.p_isid_vlan_maps.m_entries);
list_push_back(&hw->h_lport.p_isid_vlan_maps.m_entries,
&map[0].m_entries);
list_push_back(&hw->h_lport.p_isid_vlan_maps.m_entries,
&map[1].m_entries);
list_init(&hw->h_lport.p_isid_vlan_maps);
list_push_back(&hw->h_lport.p_isid_vlan_maps, &map[0].m_entries);
list_push_back(&hw->h_lport.p_isid_vlan_maps, &map[1].m_entries);

/* Construct LLDPPDU (including Ethernet header) */
eth_compose(&packet, eth_addr_lldp, eth_src, ETH_TYPE_LLDP, 0);
Expand Down

0 comments on commit 854560f

Please sign in to comment.