Lines Matching refs:addr
32 const struct mptcp_addr_info *addr) in mptcp_userspace_pm_lookup_addr() argument
37 if (mptcp_addresses_equal(&entry->addr, addr, false)) in mptcp_userspace_pm_lookup_addr()
58 addr_match = mptcp_addresses_equal(&e->addr, &entry->addr, true); in mptcp_userspace_pm_append_new_local_addr()
59 if (addr_match && entry->addr.id == 0 && needs_id) in mptcp_userspace_pm_append_new_local_addr()
60 entry->addr.id = e->addr.id; in mptcp_userspace_pm_append_new_local_addr()
61 id_match = (e->addr.id == entry->addr.id); in mptcp_userspace_pm_append_new_local_addr()
64 __set_bit(e->addr.id, id_bitmap); in mptcp_userspace_pm_append_new_local_addr()
77 if (!e->addr.id && needs_id) in mptcp_userspace_pm_append_new_local_addr()
78 e->addr.id = find_next_zero_bit(id_bitmap, in mptcp_userspace_pm_append_new_local_addr()
83 ret = e->addr.id; in mptcp_userspace_pm_append_new_local_addr()
85 ret = entry->addr.id; in mptcp_userspace_pm_append_new_local_addr()
99 struct mptcp_pm_addr_entry *addr) in mptcp_userspace_pm_delete_local_addr() argument
104 entry = mptcp_userspace_pm_lookup_addr(msk, &addr->addr); in mptcp_userspace_pm_delete_local_addr()
123 if (entry->addr.id == id) in mptcp_userspace_pm_lookup_addr_by_id()
137 entry = mptcp_userspace_pm_lookup_addr(msk, &skc->addr); in mptcp_userspace_pm_get_local_id()
140 return entry->addr.id; in mptcp_userspace_pm_get_local_id()
142 if (skc->addr.port == msk_sport) in mptcp_userspace_pm_get_local_id()
143 skc->addr.port = 0; in mptcp_userspace_pm_get_local_id()
191 struct nlattr *addr; in mptcp_pm_nl_announce_doit() local
204 addr = info->attrs[MPTCP_PM_ATTR_ADDR]; in mptcp_pm_nl_announce_doit()
205 err = mptcp_pm_parse_entry(addr, info, true, &addr_val); in mptcp_pm_nl_announce_doit()
209 if (addr_val.addr.id == 0) { in mptcp_pm_nl_announce_doit()
210 NL_SET_ERR_MSG_ATTR(info->extack, addr, "invalid addr id"); in mptcp_pm_nl_announce_doit()
216 NL_SET_ERR_MSG_ATTR(info->extack, addr, "invalid addr flags"); in mptcp_pm_nl_announce_doit()
223 NL_SET_ERR_MSG_ATTR(info->extack, addr, in mptcp_pm_nl_announce_doit()
231 if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) { in mptcp_pm_nl_announce_doit()
233 mptcp_pm_announce_addr(msk, &addr_val.addr, false); in mptcp_pm_nl_announce_doit()
284 if (mptcp_remove_anno_list_by_saddr(msk, &entry->addr)) in mptcp_pm_remove_addr_entry()
286 else if (!mptcp_lookup_subflow_by_saddr(&msk->conn_list, &entry->addr)) in mptcp_pm_remove_addr_entry()
289 alist.ids[alist.nr++] = entry->addr.id; in mptcp_pm_remove_addr_entry()
394 if (!mptcp_pm_addr_families_match(sk, &entry.addr, &addr_r)) { in mptcp_pm_nl_subflow_create_doit()
407 local.addr = entry.addr; in mptcp_pm_nl_subflow_create_doit()
452 if (issk->inet_saddr != local->addr.s_addr || in mptcp_nl_find_ssk()
453 issk->inet_daddr != remote->addr.s_addr) in mptcp_nl_find_ssk()
506 if (addr_l.addr.family == AF_INET && ipv6_addr_v4mapped(&addr_r.addr6)) { in mptcp_pm_nl_subflow_destroy_doit()
507 ipv6_addr_set_v4mapped(addr_l.addr.addr.s_addr, &addr_l.addr.addr6); in mptcp_pm_nl_subflow_destroy_doit()
508 addr_l.addr.family = AF_INET6; in mptcp_pm_nl_subflow_destroy_doit()
510 if (addr_r.family == AF_INET && ipv6_addr_v4mapped(&addr_l.addr.addr6)) { in mptcp_pm_nl_subflow_destroy_doit()
511 ipv6_addr_set_v4mapped(addr_r.addr.s_addr, &addr_r.addr6); in mptcp_pm_nl_subflow_destroy_doit()
515 if (addr_l.addr.family != addr_r.family) { in mptcp_pm_nl_subflow_destroy_doit()
521 if (!addr_l.addr.port) { in mptcp_pm_nl_subflow_destroy_doit()
534 ssk = mptcp_nl_find_ssk(msk, &addr_l.addr, &addr_r); in mptcp_pm_nl_subflow_destroy_doit()
576 if (local->addr.family == AF_UNSPEC) { in mptcp_userspace_pm_set_flags()
599 entry = mptcp_userspace_pm_lookup_addr(msk, &local->addr); in mptcp_userspace_pm_set_flags()
609 ret = mptcp_pm_mp_prio_send_ack(msk, &local->addr, &rem, bkup); in mptcp_userspace_pm_set_flags()
646 if (test_bit(entry->addr.id, bitmap->map)) in mptcp_userspace_pm_dump_addr()
652 __set_bit(entry->addr.id, bitmap->map); in mptcp_userspace_pm_dump_addr()
662 int mptcp_userspace_pm_get_addr(u8 id, struct mptcp_pm_addr_entry *addr, in mptcp_userspace_pm_get_addr() argument
680 *addr = *entry; in mptcp_userspace_pm_get_addr()