randomly to one of the interface (so a neighbor may be affected to the
wrong interface).
-On 2.6.27, we are able to receive packets on real interface for bonded
+On 2.6.27, we are able to receive packets on real interface for enslaved
devices. This allows one to get neighbor information on active/backup
bonds. Without the 2.6.27, lldpd won't receive any information on
inactive slaves. Here are the patchs (thanks to Joe Eykholt):
if (!master) return -1;
- log_debug("interfaces", "initialize bonded device %s",
+ log_debug("interfaces", "initialize enslaved device %s",
hardware->h_ifname);
/* First, we get a socket to the raw physical interface */
interfaces_setup_multicast(cfg, hardware->h_ifname, 0);
/* Then, we open a raw interface for the master */
- log_debug("interfaces", "bonded device %s has master %s(%d)",
+ log_debug("interfaces", "enslaved device %s has master %s(%d)",
hardware->h_ifname, master->name, master->index);
if ((fd = priv_iface_init(master->index, master->name)) == -1) {
close(hardware->h_sendfd);
socklen_t fromlen;
struct bond_master *master = hardware->h_data;
- log_debug("interfaces", "receive PDU from bonded device %s",
+ log_debug("interfaces", "receive PDU from enslaved device %s",
hardware->h_ifname);
fromlen = sizeof(from);
if ((n = recvfrom(fd, buffer, size, 0,
iface_bond_close(struct lldpd *cfg, struct lldpd_hardware *hardware)
{
struct bond_master *master = hardware->h_data;
- log_debug("interfaces", "closing bonded device %s",
+ log_debug("interfaces", "closing enslaved device %s",
hardware->h_ifname);
interfaces_setup_multicast(cfg, hardware->h_ifname, 1);
interfaces_setup_multicast(cfg, master->name, 1);
if (!iface->upper || !(iface->upper->type & IFACE_BOND_T)) continue;
master = iface->upper;
- log_debug("interfaces", "%s is an acceptable bonded device (master=%s)",
+ log_debug("interfaces", "%s is an acceptable enslaved device (master=%s)",
iface->name, master->name);
if ((hardware = lldpd_get_hardware(cfg,
iface->name,
TAILQ_REMOVE(&cfg->g_hardware, hardware, h_entries);
lldpd_remote_cleanup(hardware, notify_clients_deletion, 1);
lldpd_hardware_cleanup(cfg, hardware);
- } else
+ } else {
lldpd_remote_cleanup(hardware, notify_clients_deletion,
!(hardware->h_flags & IFF_RUNNING));
+ }
}
levent_schedule_cleanup(cfg);