Lines Matching refs:addr

27 	struct mptcp_addr_info	addr;
33 struct mptcp_addr_info addr;
63 addr_equals = a->addr.s_addr == b->addr.s_addr;
77 static bool address_zero(const struct mptcp_addr_info *addr)
82 zero.family = addr->family;
84 return addresses_equal(addr, &zero, false);
88 struct mptcp_addr_info *addr)
90 addr->port = 0;
91 addr->family = skc->skc_family;
92 if (addr->family == AF_INET)
93 addr->addr.s_addr = skc->skc_rcv_saddr;
95 else if (addr->family == AF_INET6)
96 addr->addr6 = skc->skc_v6_rcv_saddr;
101 struct mptcp_addr_info *addr)
103 addr->family = skc->skc_family;
104 addr->port = skc->skc_dport;
105 if (addr->family == AF_INET)
106 addr->addr.s_addr = skc->skc_daddr;
108 else if (addr->family == AF_INET6)
109 addr->addr6 = skc->skc_v6_daddr;
140 if (!(entry->addr.flags & MPTCP_PM_ADDR_FLAG_SUBFLOW))
146 if (entry->addr.family == ((struct sock *)msk)->sk_family &&
147 !lookup_subflow_by_saddr(&msk->conn_list, &entry->addr) &&
148 !lookup_subflow_by_saddr(&msk->join_list, &entry->addr)) {
171 if (!(entry->addr.flags & MPTCP_PM_ADDR_FLAG_SIGNAL))
192 struct mptcp_addr_info *addr)
197 if (addresses_equal(&entry->addr, addr, false))
218 if (!entry->addr.id)
229 pr_debug("retransmit ADD_ADDR id=%d", entry->addr.id);
230 mptcp_pm_announce_addr(msk, &entry->addr, false);
245 struct mptcp_addr_info *addr)
251 entry = lookup_anno_list_by_saddr(msk, addr);
268 if (lookup_anno_list_by_saddr(msk, &entry->addr))
277 add_entry->addr = entry->addr;
327 mptcp_pm_announce_addr(msk, &local->addr, false);
348 __mptcp_subflow_connect(sk, &local->addr, &remote);
473 return (entry->addr.flags &
497 if (addresses_equal(&cur->addr, &entry->addr,
503 if (entry->addr.flags & MPTCP_PM_ADDR_FLAG_SIGNAL)
505 if (entry->addr.flags & MPTCP_PM_ADDR_FLAG_SUBFLOW)
508 entry->addr.id = pernet->next_id++;
511 ret = entry->addr.id;
530 * addr
544 if (addresses_equal(&entry->addr, &skc_local, false)) {
545 ret = entry->addr.id;
558 entry->addr = skc_local;
559 entry->addr.ifindex = 0;
560 entry->addr.flags = 0;
649 entry->addr.family = nla_get_u16(tb[MPTCP_PM_ADDR_ATTR_FAMILY]);
650 if (entry->addr.family != AF_INET
652 && entry->addr.family != AF_INET6
659 addr_addr = mptcp_pm_family_to_addr(entry->addr.family);
667 if (entry->addr.family == AF_INET6)
668 entry->addr.addr6 = nla_get_in6_addr(tb[addr_addr]);
671 entry->addr.addr.s_addr = nla_get_in_addr(tb[addr_addr]);
677 entry->addr.ifindex = val;
681 entry->addr.id = nla_get_u8(tb[MPTCP_PM_ADDR_ATTR_ID]);
684 entry->addr.flags = nla_get_u32(tb[MPTCP_PM_ADDR_ATTR_FLAGS]);
698 struct mptcp_pm_addr_entry addr, *entry;
701 ret = mptcp_pm_parse_addr(attr, info, true, &addr);
707 GENL_SET_ERR_MSG(info, "can't allocate addr");
711 *entry = addr;
728 if (entry->addr.id == id)
735 struct mptcp_addr_info *addr)
739 entry = mptcp_pm_del_add_timer(msk, addr);
750 struct mptcp_addr_info *addr,
755 ret = remove_anno_list_by_saddr(msk, addr);
758 mptcp_pm_remove_addr(msk, addr->id);
765 struct mptcp_addr_info *addr)
770 pr_debug("remove_id=%d", addr->id);
777 mptcp_pm_remove_anno_addr(msk, addr, false);
782 remove_subflow = lookup_subflow_by_saddr(&msk->conn_list, addr);
783 mptcp_pm_remove_anno_addr(msk, addr, remove_subflow);
785 mptcp_pm_remove_subflow(msk, addr->id);
800 struct mptcp_pm_addr_entry addr, *entry;
803 ret = mptcp_pm_parse_addr(attr, info, false, &addr);
808 entry = __lookup_addr_by_id(pernet, addr.addr.id);
814 if (entry->addr.flags & MPTCP_PM_ADDR_FLAG_SIGNAL)
816 if (entry->addr.flags & MPTCP_PM_ADDR_FLAG_SUBFLOW)
823 mptcp_nl_remove_subflow_and_signal_addr(sock_net(skb->sk), &entry->addr);
863 struct mptcp_addr_info *addr = &entry->addr;
870 if (nla_put_u16(skb, MPTCP_PM_ADDR_ATTR_FAMILY, addr->family))
872 if (nla_put_u8(skb, MPTCP_PM_ADDR_ATTR_ID, addr->id))
874 if (nla_put_u32(skb, MPTCP_PM_ADDR_ATTR_FLAGS, entry->addr.flags))
876 if (entry->addr.ifindex &&
877 nla_put_s32(skb, MPTCP_PM_ADDR_ATTR_IF_IDX, entry->addr.ifindex))
880 if (addr->family == AF_INET &&
882 addr->addr.s_addr))
885 else if (addr->family == AF_INET6 &&
886 nla_put_in6_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR6, &addr->addr6))
901 struct mptcp_pm_addr_entry addr, *entry;
906 ret = mptcp_pm_parse_addr(attr, info, false, &addr);
923 entry = __lookup_addr_by_id(pernet, addr.addr.id);
960 if (entry->addr.id <= id)
974 id = entry->addr.id;