Lines Matching refs:bind
108 RCU_INIT_POINTER(peer->bind, NULL); in ovpn_peer_new()
142 struct ovpn_bind *bind; in ovpn_peer_reset_sockaddr() local
148 bind = ovpn_bind_from_sockaddr(ss); in ovpn_peer_reset_sockaddr()
149 if (IS_ERR(bind)) in ovpn_peer_reset_sockaddr()
150 return PTR_ERR(bind); in ovpn_peer_reset_sockaddr()
161 kfree(bind); in ovpn_peer_reset_sockaddr()
165 memcpy(&bind->local, local_ip, ip_len); in ovpn_peer_reset_sockaddr()
169 ovpn_bind_reset(peer, bind); in ovpn_peer_reset_sockaddr()
199 struct ovpn_bind *bind; in ovpn_peer_endpoints_update() local
204 bind = rcu_dereference_protected(peer->bind, in ovpn_peer_endpoints_update()
206 if (unlikely(!bind)) in ovpn_peer_endpoints_update()
212 if (unlikely(!ovpn_bind_skb_src_match(bind, skb))) { in ovpn_peer_endpoints_update()
229 if (unlikely(bind->local.ipv4.s_addr != ip_hdr(skb)->daddr)) { in ovpn_peer_endpoints_update()
232 peer->id, &bind->local.ipv4.s_addr, in ovpn_peer_endpoints_update()
234 bind->local.ipv4.s_addr = ip_hdr(skb)->daddr; in ovpn_peer_endpoints_update()
240 if (unlikely(!ovpn_bind_skb_src_match(bind, skb))) { in ovpn_peer_endpoints_update()
259 if (unlikely(!ipv6_addr_equal(&bind->local.ipv6, in ovpn_peer_endpoints_update()
263 peer->id, &bind->local.ipv6, in ovpn_peer_endpoints_update()
265 bind->local.ipv6 = ipv6_hdr(skb)->daddr; in ovpn_peer_endpoints_update()
296 bind = rcu_dereference_protected(peer->bind, in ovpn_peer_endpoints_update()
298 if (unlikely(!bind)) { in ovpn_peer_endpoints_update()
309 switch (bind->remote.in4.sin_family) { in ovpn_peer_endpoints_update()
322 &bind->remote, salen); in ovpn_peer_endpoints_update()
515 struct ovpn_bind *bind = rcu_dereference(peer->bind); in ovpn_peer_transp_match() local
519 if (unlikely(!bind)) in ovpn_peer_transp_match()
522 if (ss->ss_family != bind->remote.in4.sin_family) in ovpn_peer_transp_match()
528 if (sa4->sin_addr.s_addr != bind->remote.in4.sin_addr.s_addr) in ovpn_peer_transp_match()
530 if (sa4->sin_port != bind->remote.in4.sin_port) in ovpn_peer_transp_match()
536 &bind->remote.in6.sin6_addr)) in ovpn_peer_transp_match()
538 if (sa6->sin6_port != bind->remote.in6.sin6_port) in ovpn_peer_transp_match()
937 struct ovpn_bind *bind; in ovpn_peer_add_mp() local
951 bind = rcu_dereference_protected(peer->bind, true); in ovpn_peer_add_mp()
953 if (bind) { in ovpn_peer_add_mp()
954 switch (bind->remote.in4.sin_family) { in ovpn_peer_add_mp()
959 sa4->sin_addr.s_addr = bind->remote.in4.sin_addr.s_addr; in ovpn_peer_add_mp()
960 sa4->sin_port = bind->remote.in4.sin_port; in ovpn_peer_add_mp()
967 sa6->sin6_addr = bind->remote.in6.sin6_addr; in ovpn_peer_add_mp()
968 sa6->sin6_port = bind->remote.in6.sin6_port; in ovpn_peer_add_mp()