On Tuesday 12 October 2010, John Fastabend wrote:
> On 9/28/2010 8:10 AM, Jens Osterkamp wrote:
> > This patch contains the first part of an initial implementation of the
> > IEEE 802.1Qbg standard: it implements code for the exchange of EVB
> > capabilities between a host with virtual machines and an adjacent switch.
> > For this it adds a new EVB TLV to LLDP.
> >
> > Exchange of EVB TLV may be enabled or disabled on a per port basis.
> > Information about the information negotiated by the protocol can be
> > queried on the commandline with lldptool.
> >
> > This patch adds support for querying and setting parameters used in
> > the exchange of EVB TLV messages.
> > The parameters that can be set are:
> >
> > - forwarding mode
> > - host protocol capabilities (RTE, ECP, VDP)
> > - no. of supported VSIs
> > - retransmission timer exponent (RTE)
> >
> > The parameters are implemented as a local policy: all frames received by
> > an adjacent switch are validated against this policy and taken over where
> > appropriate. Negotiated parameters are stored in lldpads config, picked up
> > again and used at the next start.
> >
> > The patch applies to lldpad 0.9.38 and still contains code to log protocol
> > activity more verbosely than it would be necessary in the final version.
> >
> > Signed-off-by: Jens Osterkamp <[email protected]>
> > ---
> > Makefile.am | 10 +-
> > include/lldp.h | 19 ++
> > include/lldp_evb.h | 80 ++++++
> > include/lldp_evb_clif.h | 51 ++++
> > include/lldp_evb_cmds.h | 31 +++
> > include/lldp_tlv.h | 1 +
> > lldp_evb.c | 638
> > +++++++++++++++++++++++++++++++++++++++++++++++
> > lldp_evb_clif.c | 226 +++++++++++++++++
> > lldp_evb_cmds.c | 512 +++++++++++++++++++++++++++++++++++++
> > lldpad.c | 2 +
> > lldptool.c | 2 +
> > 11 files changed, 1568 insertions(+), 4 deletions(-)
> > create mode 100644 include/lldp_evb.h
> > create mode 100644 include/lldp_evb_clif.h
> > create mode 100644 include/lldp_evb_cmds.h
> > create mode 100644 lldp_evb.c
> > create mode 100644 lldp_evb_clif.c
> > create mode 100644 lldp_evb_cmds.c
> >
[snip]
> > +void evb_ifup(char *ifname)
> > +{
> > + struct evb_data *ed;
> > + struct evb_user_data *ud;
> > +
> > + ed = evb_data(ifname);
> > + if (ed) {
> > + fprintf(stderr, "### %s:%s exists\n", __func__, ifname);
> > + goto out_err;
> > + }
> > +
> > + /* not found, alloc/init per-port tlv data */
> > + ed = (struct evb_data *) calloc(1, sizeof(struct evb_data));
> > + if (!ed) {
> > + fprintf(stderr, "### %s:%s malloc %ld failed\n",
> > + __func__, ifname, sizeof(*ed));
> > + goto out_err;
> > + }
> > + strncpy(ed->ifname, ifname, IFNAMSIZ);
> > +
> > + if (!init_cfg()) {
> > + fprintf(stderr, "### %s:%s init_cfg failed\n", __func__,
> > ifname);
>
> Need to free(ed) here too it looks like. Otherwise looks good.
Thank you for spotting this ! I fixed it in my code and will include it my next
posting of the series.
Jens
--
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/virtualization