Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00a50076 authored by Marek Lindner's avatar Marek Lindner Committed by Antonio Quartulli
Browse files

batman-adv: add iface_disable() callback to routing API

parent d7d32ec0
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -52,6 +52,12 @@ static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
	batman_ogm_packet->ttvn = 0;
	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)
static void bat_iv_ogm_init_primary(struct hard_iface *hard_iface)
{
{
	struct batman_ogm_packet *batman_ogm_packet;
	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 = {
static struct bat_algo_ops batman_iv __read_mostly = {
	.name = "BATMAN IV",
	.name = "BATMAN IV",
	.bat_iface_enable = bat_iv_ogm_iface_enable,
	.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_init_primary = bat_iv_ogm_init_primary,
	.bat_ogm_update_mac = bat_iv_ogm_update_mac,
	.bat_ogm_update_mac = bat_iv_ogm_update_mac,
	.bat_ogm_schedule = bat_iv_ogm_schedule,
	.bat_ogm_schedule = bat_iv_ogm_schedule,
+1 −2
Original line number Original line Diff line number Diff line
@@ -397,8 +397,7 @@ void hardif_disable_interface(struct hard_iface *hard_iface)
			hardif_free_ref(new_if);
			hardif_free_ref(new_if);
	}
	}


	kfree(hard_iface->packet_buff);
	bat_priv->bat_algo_ops->bat_iface_disable(hard_iface);
	hard_iface->packet_buff = NULL;
	hard_iface->if_status = IF_NOT_IN_USE;
	hard_iface->if_status = IF_NOT_IN_USE;


	/* delete all references to this hard_iface */
	/* delete all references to this hard_iface */
+1 −0
Original line number Original line Diff line number Diff line
@@ -209,6 +209,7 @@ int bat_algo_register(struct bat_algo_ops *bat_algo_ops)


	/* all algorithms must implement all ops (for now) */
	/* all algorithms must implement all ops (for now) */
	if (!bat_algo_ops->bat_iface_enable ||
	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_init_primary ||
	    !bat_algo_ops->bat_ogm_update_mac ||
	    !bat_algo_ops->bat_ogm_update_mac ||
	    !bat_algo_ops->bat_ogm_schedule ||
	    !bat_algo_ops->bat_ogm_schedule ||
+2 −0
Original line number Original line Diff line number Diff line
@@ -379,6 +379,8 @@ struct bat_algo_ops {
	char *name;
	char *name;
	/* init routing info when hard-interface is enabled */
	/* init routing info when hard-interface is enabled */
	void (*bat_iface_enable)(struct hard_iface *hard_iface);
	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 */
	/* init primary OGM when primary interface is selected */
	void (*bat_ogm_init_primary)(struct hard_iface *hard_iface);
	void (*bat_ogm_init_primary)(struct hard_iface *hard_iface);
	/* init mac addresses of the OGM belonging to this hard-interface */
	/* init mac addresses of the OGM belonging to this hard-interface */