mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 20:48:49 +08:00
batman-adv: refactoring API: find generalized name for bat_ogm_update_mac callback
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
This commit is contained in:
parent
edbf12ba56
commit
c32293983d
@ -93,16 +93,7 @@ static void bat_iv_ogm_iface_disable(struct hard_iface *hard_iface)
|
||||
hard_iface->packet_buff = NULL;
|
||||
}
|
||||
|
||||
static void bat_iv_ogm_primary_iface_set(struct hard_iface *hard_iface)
|
||||
{
|
||||
struct batman_ogm_packet *batman_ogm_packet;
|
||||
|
||||
batman_ogm_packet = (struct batman_ogm_packet *)hard_iface->packet_buff;
|
||||
batman_ogm_packet->flags = PRIMARIES_FIRST_HOP;
|
||||
batman_ogm_packet->header.ttl = TTL;
|
||||
}
|
||||
|
||||
static void bat_iv_ogm_update_mac(struct hard_iface *hard_iface)
|
||||
static void bat_iv_ogm_iface_update_mac(struct hard_iface *hard_iface)
|
||||
{
|
||||
struct batman_ogm_packet *batman_ogm_packet;
|
||||
|
||||
@ -113,6 +104,15 @@ static void bat_iv_ogm_update_mac(struct hard_iface *hard_iface)
|
||||
hard_iface->net_dev->dev_addr, ETH_ALEN);
|
||||
}
|
||||
|
||||
static void bat_iv_ogm_primary_iface_set(struct hard_iface *hard_iface)
|
||||
{
|
||||
struct batman_ogm_packet *batman_ogm_packet;
|
||||
|
||||
batman_ogm_packet = (struct batman_ogm_packet *)hard_iface->packet_buff;
|
||||
batman_ogm_packet->flags = PRIMARIES_FIRST_HOP;
|
||||
batman_ogm_packet->header.ttl = TTL;
|
||||
}
|
||||
|
||||
/* when do we schedule our own ogm to be sent */
|
||||
static unsigned long bat_iv_ogm_emit_send_time(const struct bat_priv *bat_priv)
|
||||
{
|
||||
@ -1236,8 +1236,8 @@ 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_iface_update_mac = bat_iv_ogm_iface_update_mac,
|
||||
.bat_primary_iface_set = bat_iv_ogm_primary_iface_set,
|
||||
.bat_ogm_update_mac = bat_iv_ogm_update_mac,
|
||||
.bat_ogm_schedule = bat_iv_ogm_schedule,
|
||||
.bat_ogm_emit = bat_iv_ogm_emit,
|
||||
};
|
||||
|
@ -228,7 +228,7 @@ static void hardif_activate_interface(struct hard_iface *hard_iface)
|
||||
|
||||
bat_priv = netdev_priv(hard_iface->soft_iface);
|
||||
|
||||
bat_priv->bat_algo_ops->bat_ogm_update_mac(hard_iface);
|
||||
bat_priv->bat_algo_ops->bat_iface_update_mac(hard_iface);
|
||||
hard_iface->if_status = IF_TO_BE_ACTIVATED;
|
||||
|
||||
/**
|
||||
@ -524,7 +524,7 @@ static int hard_if_event(struct notifier_block *this,
|
||||
check_known_mac_addr(hard_iface->net_dev);
|
||||
|
||||
bat_priv = netdev_priv(hard_iface->soft_iface);
|
||||
bat_priv->bat_algo_ops->bat_ogm_update_mac(hard_iface);
|
||||
bat_priv->bat_algo_ops->bat_iface_update_mac(hard_iface);
|
||||
|
||||
primary_if = primary_if_get_selected(bat_priv);
|
||||
if (!primary_if)
|
||||
|
@ -329,8 +329,8 @@ 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_iface_update_mac ||
|
||||
!bat_algo_ops->bat_primary_iface_set ||
|
||||
!bat_algo_ops->bat_ogm_update_mac ||
|
||||
!bat_algo_ops->bat_ogm_schedule ||
|
||||
!bat_algo_ops->bat_ogm_emit) {
|
||||
pr_info("Routing algo '%s' does not implement required ops\n",
|
||||
|
@ -381,10 +381,12 @@ struct bat_algo_ops {
|
||||
int (*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);
|
||||
/* (re-)init mac addresses of the protocol information
|
||||
* belonging to this hard-interface
|
||||
*/
|
||||
void (*bat_iface_update_mac)(struct hard_iface *hard_iface);
|
||||
/* called when primary interface is selected / changed */
|
||||
void (*bat_primary_iface_set)(struct hard_iface *hard_iface);
|
||||
/* init mac addresses of the OGM belonging to this hard-interface */
|
||||
void (*bat_ogm_update_mac)(struct hard_iface *hard_iface);
|
||||
/* prepare a new outgoing OGM for the send queue */
|
||||
void (*bat_ogm_schedule)(struct hard_iface *hard_iface,
|
||||
int tt_num_changes);
|
||||
|
Loading…
Reference in New Issue
Block a user