Lines Matching refs:ip6rd
189 ipv6_addr_set(&t->ip6rd.prefix, htonl(0x20020000), 0, 0, 0);
190 t->ip6rd.relay_prefix = 0;
191 t->ip6rd.prefixlen = 16;
192 t->ip6rd.relay_prefixlen = 0;
195 memcpy(&t->ip6rd, &t0->ip6rd, sizeof(t->ip6rd));
627 prefix_len = tunnel->ip6rd.prefixlen + 32
628 - tunnel->ip6rd.relay_prefixlen;
808 if (ipv6_prefix_equal(v6dst, &tunnel->ip6rd.prefix,
809 tunnel->ip6rd.prefixlen)) {
814 pbw0 = tunnel->ip6rd.prefixlen >> 5;
815 pbi0 = tunnel->ip6rd.prefixlen & 0x1f;
817 d = tunnel->ip6rd.relay_prefixlen < 32 ?
819 tunnel->ip6rd.relay_prefixlen : 0;
821 pbi1 = pbi0 - tunnel->ip6rd.relay_prefixlen;
826 *v4dst = tunnel->ip6rd.relay_prefix | htonl(d);
1164 struct ip_tunnel_6rd *ip6rd)
1169 if (ip6rd->relay_prefixlen > 32 ||
1170 ip6rd->prefixlen + (32 - ip6rd->relay_prefixlen) > 64)
1173 ipv6_addr_prefix(&prefix, &ip6rd->prefix, ip6rd->prefixlen);
1174 if (!ipv6_addr_equal(&prefix, &ip6rd->prefix))
1176 if (ip6rd->relay_prefixlen)
1177 relay_prefix = ip6rd->relay_prefix &
1179 (32 - ip6rd->relay_prefixlen));
1182 if (relay_prefix != ip6rd->relay_prefix)
1185 t->ip6rd.prefix = prefix;
1186 t->ip6rd.relay_prefix = relay_prefix;
1187 t->ip6rd.prefixlen = ip6rd->prefixlen;
1188 t->ip6rd.relay_prefixlen = ip6rd->relay_prefixlen;
1198 struct ip_tunnel_6rd ip6rd;
1209 ip6rd.prefix = t->ip6rd.prefix;
1210 ip6rd.relay_prefix = t->ip6rd.relay_prefix;
1211 ip6rd.prefixlen = t->ip6rd.prefixlen;
1212 ip6rd.relay_prefixlen = t->ip6rd.relay_prefixlen;
1213 if (copy_to_user(ifr->ifr_ifru.ifru_data, &ip6rd, sizeof(ip6rd)))
1222 struct ip_tunnel_6rd ip6rd;
1227 if (copy_from_user(&ip6rd, ifr->ifr_ifru.ifru_data, sizeof(ip6rd)))
1231 err = ipip6_tunnel_update_6rd(t, &ip6rd);
1575 struct ip_tunnel_6rd *ip6rd)
1578 memset(ip6rd, 0, sizeof(*ip6rd));
1585 ip6rd->prefix = nla_get_in6_addr(data[IFLA_IPTUN_6RD_PREFIX]);
1590 ip6rd->relay_prefix =
1596 ip6rd->prefixlen = nla_get_u16(data[IFLA_IPTUN_6RD_PREFIXLEN]);
1601 ip6rd->relay_prefixlen =
1617 struct ip_tunnel_6rd ip6rd;
1647 if (ipip6_netlink_6rd_parms(data, &ip6rd)) {
1648 err = ipip6_tunnel_update_6rd(nt, &ip6rd);
1667 struct ip_tunnel_6rd ip6rd;
1698 if (ipip6_netlink_6rd_parms(data, &ip6rd))
1699 return ipip6_tunnel_update_6rd(t, &ip6rd);
1766 &tunnel->ip6rd.prefix) ||
1768 tunnel->ip6rd.relay_prefix) ||
1770 tunnel->ip6rd.prefixlen) ||
1772 tunnel->ip6rd.relay_prefixlen))