batman-adv: add iface_disable() callback to routing API
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
This commit is contained in:
Родитель
d7d32ec0f1
Коммит
00a50076a3
|
@ -52,6 +52,12 @@ static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
|
|||
batman_ogm_packet->ttvn = 0;
|
||||
}
|
||||
|
||||
static void bat_iv_ogm_iface_disable(struct hard_iface *hard_iface)
|
||||
{
|
||||
kfree(hard_iface->packet_buff);
|
||||
hard_iface->packet_buff = NULL;
|
||||
}
|
||||
|
||||
static void bat_iv_ogm_init_primary(struct hard_iface *hard_iface)
|
||||
{
|
||||
struct batman_ogm_packet *batman_ogm_packet;
|
||||
|
@ -1175,6 +1181,7 @@ static void bat_iv_ogm_receive(struct hard_iface *if_incoming,
|
|||
static struct bat_algo_ops batman_iv __read_mostly = {
|
||||
.name = "BATMAN IV",
|
||||
.bat_iface_enable = bat_iv_ogm_iface_enable,
|
||||
.bat_iface_disable = bat_iv_ogm_iface_disable,
|
||||
.bat_ogm_init_primary = bat_iv_ogm_init_primary,
|
||||
.bat_ogm_update_mac = bat_iv_ogm_update_mac,
|
||||
.bat_ogm_schedule = bat_iv_ogm_schedule,
|
||||
|
|
|
@ -397,8 +397,7 @@ void hardif_disable_interface(struct hard_iface *hard_iface)
|
|||
hardif_free_ref(new_if);
|
||||
}
|
||||
|
||||
kfree(hard_iface->packet_buff);
|
||||
hard_iface->packet_buff = NULL;
|
||||
bat_priv->bat_algo_ops->bat_iface_disable(hard_iface);
|
||||
hard_iface->if_status = IF_NOT_IN_USE;
|
||||
|
||||
/* delete all references to this hard_iface */
|
||||
|
|
|
@ -209,6 +209,7 @@ int bat_algo_register(struct bat_algo_ops *bat_algo_ops)
|
|||
|
||||
/* all algorithms must implement all ops (for now) */
|
||||
if (!bat_algo_ops->bat_iface_enable ||
|
||||
!bat_algo_ops->bat_iface_disable ||
|
||||
!bat_algo_ops->bat_ogm_init_primary ||
|
||||
!bat_algo_ops->bat_ogm_update_mac ||
|
||||
!bat_algo_ops->bat_ogm_schedule ||
|
||||
|
|
|
@ -379,6 +379,8 @@ struct bat_algo_ops {
|
|||
char *name;
|
||||
/* init routing info when hard-interface is enabled */
|
||||
void (*bat_iface_enable)(struct hard_iface *hard_iface);
|
||||
/* de-init routing info when hard-interface is disabled */
|
||||
void (*bat_iface_disable)(struct hard_iface *hard_iface);
|
||||
/* init primary OGM when primary interface is selected */
|
||||
void (*bat_ogm_init_primary)(struct hard_iface *hard_iface);
|
||||
/* init mac addresses of the OGM belonging to this hard-interface */
|
||||
|
|
Загрузка…
Ссылка в новой задаче