Lines Matching refs:hard_iface
345 batadv_iv_ogm_neigh_new(struct batadv_hard_iface *hard_iface, in batadv_iv_ogm_neigh_new() argument
353 hard_iface, neigh_addr); in batadv_iv_ogm_neigh_new()
363 static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_iface_enable() argument
371 atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno); in batadv_iv_ogm_iface_enable()
373 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN; in batadv_iv_ogm_iface_enable()
374 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC); in batadv_iv_ogm_iface_enable()
378 hard_iface->bat_iv.ogm_buff = ogm_buff; in batadv_iv_ogm_iface_enable()
391 static void batadv_iv_ogm_iface_disable(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_iface_disable() argument
393 kfree(hard_iface->bat_iv.ogm_buff); in batadv_iv_ogm_iface_disable()
394 hard_iface->bat_iv.ogm_buff = NULL; in batadv_iv_ogm_iface_disable()
397 static void batadv_iv_ogm_iface_update_mac(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_iface_update_mac() argument
400 unsigned char *ogm_buff = hard_iface->bat_iv.ogm_buff; in batadv_iv_ogm_iface_update_mac()
404 hard_iface->net_dev->dev_addr); in batadv_iv_ogm_iface_update_mac()
406 hard_iface->net_dev->dev_addr); in batadv_iv_ogm_iface_update_mac()
410 batadv_iv_ogm_primary_iface_set(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_primary_iface_set() argument
413 unsigned char *ogm_buff = hard_iface->bat_iv.ogm_buff; in batadv_iv_ogm_primary_iface_set()
471 struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_send_to_if() argument
473 struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface); in batadv_iv_ogm_send_to_if()
481 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_iv_ogm_send_to_if()
496 forw_packet->if_incoming == hard_iface) in batadv_iv_ogm_send_to_if()
514 hard_iface->net_dev->name, in batadv_iv_ogm_send_to_if()
515 hard_iface->net_dev->dev_addr); in batadv_iv_ogm_send_to_if()
530 batadv_send_broadcast_skb(skb, hard_iface); in batadv_iv_ogm_send_to_if()
885 batadv_iv_ogm_slide_own_bcast_window(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_slide_own_bcast_window() argument
887 struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface); in batadv_iv_ogm_slide_own_bcast_window()
903 word_index = hard_iface->if_num * BATADV_NUM_WORDS; in batadv_iv_ogm_slide_own_bcast_window()
907 if_num = hard_iface->if_num; in batadv_iv_ogm_slide_own_bcast_window()
916 static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_schedule() argument
918 struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface); in batadv_iv_ogm_schedule()
919 unsigned char **ogm_buff = &hard_iface->bat_iv.ogm_buff; in batadv_iv_ogm_schedule()
922 int *ogm_buff_len = &hard_iface->bat_iv.ogm_buff_len; in batadv_iv_ogm_schedule()
927 if ((hard_iface->if_status == BATADV_IF_NOT_IN_USE) || in batadv_iv_ogm_schedule()
928 (hard_iface->if_status == BATADV_IF_TO_BE_REMOVED)) in batadv_iv_ogm_schedule()
937 if (hard_iface->if_status == BATADV_IF_TO_BE_ACTIVATED) in batadv_iv_ogm_schedule()
938 hard_iface->if_status = BATADV_IF_ACTIVE; in batadv_iv_ogm_schedule()
942 if (hard_iface == primary_if) { in batadv_iv_ogm_schedule()
956 seqno = (u32)atomic_read(&hard_iface->bat_iv.ogm_seqno); in batadv_iv_ogm_schedule()
958 atomic_inc(&hard_iface->bat_iv.ogm_seqno); in batadv_iv_ogm_schedule()
960 batadv_iv_ogm_slide_own_bcast_window(hard_iface); in batadv_iv_ogm_schedule()
964 if (hard_iface != primary_if) { in batadv_iv_ogm_schedule()
969 hard_iface, hard_iface, 1, send_time); in batadv_iv_ogm_schedule()
978 if (tmp_hard_iface->soft_iface != hard_iface->soft_iface) in batadv_iv_ogm_schedule()
985 *ogm_buff_len, hard_iface, in batadv_iv_ogm_schedule()
1628 struct batadv_hard_iface *hard_iface; in batadv_iv_ogm_process() local
1672 list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, list) { in batadv_iv_ogm_process()
1673 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_iv_ogm_process()
1676 if (hard_iface->soft_iface != if_incoming->soft_iface) in batadv_iv_ogm_process()
1680 hard_iface->net_dev->dev_addr)) in batadv_iv_ogm_process()
1684 hard_iface->net_dev->dev_addr)) in batadv_iv_ogm_process()
1688 hard_iface->net_dev->dev_addr)) in batadv_iv_ogm_process()
1761 list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, list) { in batadv_iv_ogm_process()
1762 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_iv_ogm_process()
1765 if (hard_iface->soft_iface != bat_priv->soft_iface) in batadv_iv_ogm_process()
1768 if (!kref_get_unless_zero(&hard_iface->refcount)) in batadv_iv_ogm_process()
1772 if_incoming, hard_iface); in batadv_iv_ogm_process()
1774 batadv_hardif_put(hard_iface); in batadv_iv_ogm_process()
2217 struct batadv_hard_iface *hard_iface; in batadv_iv_neigh_print() local
2223 list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, list) { in batadv_iv_neigh_print()
2224 if (hard_iface->soft_iface != net_dev) in batadv_iv_neigh_print()
2228 &hard_iface->neigh_list, list) { in batadv_iv_neigh_print()
2341 struct batadv_hard_iface *hard_iface, in batadv_iv_ogm_neigh_dump_hardif() argument
2348 &hard_iface->neigh_list, list) { in batadv_iv_ogm_neigh_dump_hardif()
2375 struct batadv_hard_iface *hard_iface; in batadv_iv_ogm_neigh_dump() local
2392 list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, in batadv_iv_ogm_neigh_dump()
2394 if (hard_iface->soft_iface != bat_priv->soft_iface) in batadv_iv_ogm_neigh_dump()
2403 hard_iface, &idx)) { in batadv_iv_ogm_neigh_dump()
2470 static void batadv_iv_iface_activate(struct batadv_hard_iface *hard_iface) in batadv_iv_iface_activate() argument
2473 batadv_iv_ogm_schedule(hard_iface); in batadv_iv_iface_activate()