Lines Matching refs:hh
154 struct hh_cache hh; member
441 static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb) in neigh_hh_bridge() argument
446 seq = read_seqbegin(&hh->hh_lock); in neigh_hh_bridge()
448 memcpy(skb->data - hh_alen, hh->hh_data, ETH_ALEN + hh_alen - ETH_HLEN); in neigh_hh_bridge()
449 } while (read_seqretry(&hh->hh_lock, seq)); in neigh_hh_bridge()
454 static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb) in neigh_hh_output() argument
460 seq = read_seqbegin(&hh->hh_lock); in neigh_hh_output()
461 hh_len = hh->hh_len; in neigh_hh_output()
464 memcpy(skb->data - HH_DATA_MOD, hh->hh_data, HH_DATA_MOD); in neigh_hh_output()
468 memcpy(skb->data - hh_alen, hh->hh_data, hh_alen); in neigh_hh_output()
470 } while (read_seqretry(&hh->hh_lock, seq)); in neigh_hh_output()
478 const struct hh_cache *hh = &n->hh; in neigh_output() local
480 if ((n->nud_state & NUD_CONNECTED) && hh->hh_len) in neigh_output()
481 return neigh_hh_output(hh, skb); in neigh_output()