ipo 840 net/pfkeyv2.c struct ipsec_policy *ipo, *tmpipo; ipo 1398 net/pfkeyv2.c for (ipo = TAILQ_FIRST(&ipsec_policy_head); ipo 1399 net/pfkeyv2.c ipo != NULL; ipo = tmpipo) { ipo 1400 net/pfkeyv2.c tmpipo = TAILQ_NEXT(ipo, ipo_list); ipo 1401 net/pfkeyv2.c if (!(ipo->ipo_flags & IPSP_POLICY_SOCKET)) ipo 1402 net/pfkeyv2.c ipsec_delete_policy(ipo); ipo 1549 net/pfkeyv2.c ipo = ((struct sockaddr_encap *) re.re_rt->rt_gateway)->sen_ipsp; ipo 1553 net/pfkeyv2.c if (bcmp(&ipo->ipo_addr, &encapdst, ipo 1555 net/pfkeyv2.c bcmp(&ipo->ipo_mask, &encapnetmask, ipo 1557 net/pfkeyv2.c ipo = NULL; /* Fall through */ ipo 1561 net/pfkeyv2.c ipo = NULL; ipo 1567 net/pfkeyv2.c if (exists && (ipo->ipo_flags & IPSP_POLICY_STATIC)) { ipo 1578 net/pfkeyv2.c rval = ipsec_delete_policy(ipo); ipo 1598 net/pfkeyv2.c ipo = pool_get(&ipsec_policy_pool, 0); ipo 1599 net/pfkeyv2.c if (ipo == NULL) { ipo 1605 net/pfkeyv2.c bzero(ipo, sizeof(struct ipsec_policy)); ipo 1606 net/pfkeyv2.c ipo->ipo_ref_count = 1; ipo 1607 net/pfkeyv2.c TAILQ_INIT(&ipo->ipo_acquires); ipo 1613 net/pfkeyv2.c encapgw.sen_ipsp = ipo; ipo 1616 net/pfkeyv2.c bcopy(&encapdst, &ipo->ipo_addr, ipo 1618 net/pfkeyv2.c bcopy(&encapnetmask, &ipo->ipo_mask, ipo 1624 net/pfkeyv2.c ipo->ipo_type = IPSP_IPSEC_USE; ipo 1628 net/pfkeyv2.c ipo->ipo_type = IPSP_IPSEC_ACQUIRE; ipo 1632 net/pfkeyv2.c ipo->ipo_type = IPSP_IPSEC_REQUIRE; ipo 1636 net/pfkeyv2.c ipo->ipo_type = IPSP_DENY; ipo 1640 net/pfkeyv2.c ipo->ipo_type = IPSP_PERMIT; ipo 1644 net/pfkeyv2.c ipo->ipo_type = IPSP_IPSEC_DONTACQ; ipo 1649 net/pfkeyv2.c pool_put(&ipsec_policy_pool, ipo); ipo 1651 net/pfkeyv2.c ipsec_delete_policy(ipo); ipo 1659 net/pfkeyv2.c ipo->ipo_flags |= IPSP_POLICY_STATIC; ipo 1662 net/pfkeyv2.c bcopy(sunionp, &ipo->ipo_dst, ipo 1665 net/pfkeyv2.c bzero(&ipo->ipo_dst, sizeof(union sockaddr_union)); ipo 1668 net/pfkeyv2.c bcopy(ssrc, &ipo->ipo_src, ipo 1671 net/pfkeyv2.c bzero(&ipo->ipo_src, sizeof(union sockaddr_union)); ipo 1673 net/pfkeyv2.c ipo->ipo_sproto = SADB_X_GETSPROTO(smsg->sadb_msg_satype); ipo 1675 net/pfkeyv2.c if (ipo->ipo_srcid) { ipo 1676 net/pfkeyv2.c ipsp_reffree(ipo->ipo_srcid); ipo 1677 net/pfkeyv2.c ipo->ipo_srcid = NULL; ipo 1680 net/pfkeyv2.c if (ipo->ipo_dstid) { ipo 1681 net/pfkeyv2.c ipsp_reffree(ipo->ipo_dstid); ipo 1682 net/pfkeyv2.c ipo->ipo_dstid = NULL; ipo 1689 net/pfkeyv2.c MALLOC(ipo->ipo_srcid, struct ipsec_ref *, clen + ipo 1691 net/pfkeyv2.c if (ipo->ipo_srcid == NULL) { ipo 1693 net/pfkeyv2.c ipsec_delete_policy(ipo); ipo 1695 net/pfkeyv2.c pool_put(&ipsec_policy_pool, ipo); ipo 1700 net/pfkeyv2.c ipo->ipo_srcid->ref_type = sid->sadb_ident_type; ipo 1701 net/pfkeyv2.c ipo->ipo_srcid->ref_len = clen; ipo 1702 net/pfkeyv2.c ipo->ipo_srcid->ref_count = 1; ipo 1703 net/pfkeyv2.c ipo->ipo_srcid->ref_malloctype = M_CREDENTIALS; ipo 1704 net/pfkeyv2.c bcopy(sid + 1, ipo->ipo_srcid + 1, ipo->ipo_srcid->ref_len); ipo 1711 net/pfkeyv2.c MALLOC(ipo->ipo_dstid, struct ipsec_ref *, ipo 1714 net/pfkeyv2.c if (ipo->ipo_dstid == NULL) { ipo 1716 net/pfkeyv2.c ipsec_delete_policy(ipo); ipo 1718 net/pfkeyv2.c if (ipo->ipo_dstid) ipo 1719 net/pfkeyv2.c ipsp_reffree(ipo->ipo_dstid); ipo 1720 net/pfkeyv2.c pool_put(&ipsec_policy_pool, ipo); ipo 1727 net/pfkeyv2.c ipo->ipo_dstid->ref_type = sid->sadb_ident_type; ipo 1728 net/pfkeyv2.c ipo->ipo_dstid->ref_len = clen; ipo 1729 net/pfkeyv2.c ipo->ipo_dstid->ref_count = 1; ipo 1730 net/pfkeyv2.c ipo->ipo_dstid->ref_malloctype = M_CREDENTIALS; ipo 1731 net/pfkeyv2.c bcopy(sid + 1, ipo->ipo_dstid + 1, ipo 1732 net/pfkeyv2.c ipo->ipo_dstid->ref_len); ipo 1745 net/pfkeyv2.c if (ipo->ipo_tdb) ipo 1746 net/pfkeyv2.c TAILQ_REMOVE(&ipo->ipo_tdb->tdb_policy_head, ipo 1747 net/pfkeyv2.c ipo, ipo_tdb_next); ipo 1749 net/pfkeyv2.c if (ipo->ipo_srcid) ipo 1750 net/pfkeyv2.c ipsp_reffree(ipo->ipo_srcid); ipo 1751 net/pfkeyv2.c if (ipo->ipo_dstid) ipo 1752 net/pfkeyv2.c ipsp_reffree(ipo->ipo_dstid); ipo 1753 net/pfkeyv2.c pool_put(&ipsec_policy_pool, ipo); ipo 1759 net/pfkeyv2.c TAILQ_INSERT_HEAD(&ipsec_policy_head, ipo, ipo_list); ipo 1762 net/pfkeyv2.c ipo->ipo_last_searched = ipo->ipo_flags = 0; ipo 1858 net/pfkeyv2.c pfkeyv2_acquire(struct ipsec_policy *ipo, union sockaddr_union *gw, ipo 1881 net/pfkeyv2.c PADUP(SA_LEN(&ipo->ipo_src.sa))) + ipo 1885 net/pfkeyv2.c if (ipo->ipo_srcid) ipo 1886 net/pfkeyv2.c i += sizeof(struct sadb_ident) + PADUP(ipo->ipo_srcid->ref_len); ipo 1888 net/pfkeyv2.c if (ipo->ipo_dstid) ipo 1889 net/pfkeyv2.c i += sizeof(struct sadb_ident) + PADUP(ipo->ipo_dstid->ref_len); ipo 1891 net/pfkeyv2.c if (ipo->ipo_local_cred) ipo 1892 net/pfkeyv2.c i += sizeof(struct sadb_x_cred) + PADUP(ipo->ipo_local_cred->ref_len); ipo 1894 net/pfkeyv2.c if (ipo->ipo_local_auth) ipo 1895 net/pfkeyv2.c i += sizeof(struct sadb_x_cred) + PADUP(ipo->ipo_local_auth->ref_len); ipo 1917 net/pfkeyv2.c if (ipo->ipo_sproto == IPPROTO_ESP) ipo 1919 net/pfkeyv2.c else if (ipo->ipo_sproto == IPPROTO_AH) ipo 1921 net/pfkeyv2.c else if (ipo->ipo_sproto == IPPROTO_IPCOMP) ipo 1943 net/pfkeyv2.c if (ipo->ipo_srcid) { ipo 1945 net/pfkeyv2.c p += sizeof(struct sadb_ident) + PADUP(ipo->ipo_srcid->ref_len); ipo 1948 net/pfkeyv2.c PADUP(ipo->ipo_srcid->ref_len)) / sizeof(u_int64_t); ipo 1949 net/pfkeyv2.c srcid->sadb_ident_type = ipo->ipo_srcid->ref_type; ipo 1950 net/pfkeyv2.c bcopy(ipo->ipo_srcid + 1, headers[SADB_EXT_IDENTITY_SRC] + ipo 1951 net/pfkeyv2.c sizeof(struct sadb_ident), ipo->ipo_srcid->ref_len); ipo 1954 net/pfkeyv2.c if (ipo->ipo_dstid) { ipo 1956 net/pfkeyv2.c p += sizeof(struct sadb_ident) + PADUP(ipo->ipo_dstid->ref_len); ipo 1959 net/pfkeyv2.c PADUP(ipo->ipo_dstid->ref_len)) / sizeof(u_int64_t); ipo 1960 net/pfkeyv2.c dstid->sadb_ident_type = ipo->ipo_dstid->ref_type; ipo 1961 net/pfkeyv2.c bcopy(ipo->ipo_dstid + 1, headers[SADB_EXT_IDENTITY_DST] + ipo 1962 net/pfkeyv2.c sizeof(struct sadb_ident), ipo->ipo_dstid->ref_len); ipo 1965 net/pfkeyv2.c if (ipo->ipo_local_cred) { ipo 1967 net/pfkeyv2.c p += sizeof(struct sadb_x_cred) + PADUP(ipo->ipo_local_cred->ref_len); ipo 1970 net/pfkeyv2.c PADUP(ipo->ipo_local_cred->ref_len)) / sizeof(u_int64_t); ipo 1971 net/pfkeyv2.c switch (ipo->ipo_local_cred->ref_type) { ipo 1979 net/pfkeyv2.c bcopy(ipo->ipo_local_cred + 1, headers[SADB_X_EXT_LOCAL_CREDENTIALS] + ipo 1980 net/pfkeyv2.c sizeof(struct sadb_x_cred), ipo->ipo_local_cred->ref_len); ipo 1983 net/pfkeyv2.c if (ipo->ipo_local_auth) { ipo 1985 net/pfkeyv2.c p += sizeof(struct sadb_x_cred) + PADUP(ipo->ipo_local_auth->ref_len); ipo 1988 net/pfkeyv2.c PADUP(ipo->ipo_local_auth->ref_len)) / sizeof(u_int64_t); ipo 1989 net/pfkeyv2.c switch (ipo->ipo_local_auth->ref_type) { ipo 1998 net/pfkeyv2.c bcopy(ipo->ipo_local_auth + 1, headers[SADB_X_EXT_LOCAL_AUTH] + ipo 1999 net/pfkeyv2.c sizeof(struct sadb_x_cred), ipo->ipo_local_auth->ref_len); ipo 2020 net/pfkeyv2.c if (ipo->ipo_sproto == IPPROTO_ESP) { ipo 2057 net/pfkeyv2.c } else if (ipo->ipo_sproto == IPPROTO_IPCOMP) { ipo 2281 net/pfkeyv2.c pfkeyv2_dump_policy(struct ipsec_policy *ipo, void **headers, void **buffer, ipo 2292 net/pfkeyv2.c switch (ipo->ipo_addr.sen_type) { ipo 2310 net/pfkeyv2.c switch (ipo->ipo_src.sa.sa_family) { ipo 2330 net/pfkeyv2.c switch (ipo->ipo_dst.sa.sa_family) { ipo 2349 net/pfkeyv2.c if (ipo->ipo_srcid) ipo 2350 net/pfkeyv2.c i += sizeof(struct sadb_ident) + PADUP(ipo->ipo_srcid->ref_len); ipo 2351 net/pfkeyv2.c if (ipo->ipo_dstid) ipo 2352 net/pfkeyv2.c i += sizeof(struct sadb_ident) + PADUP(ipo->ipo_dstid->ref_len); ipo 2371 net/pfkeyv2.c if (ipo->ipo_src.sa.sa_family) { ipo 2373 net/pfkeyv2.c export_address(&p, (struct sockaddr *)&ipo->ipo_src); ipo 2377 net/pfkeyv2.c if (ipo->ipo_dst.sa.sa_family) { ipo 2379 net/pfkeyv2.c export_address(&p, (struct sockaddr *)&ipo->ipo_dst); ipo 2383 net/pfkeyv2.c export_flow(&p, ipo->ipo_type, &ipo->ipo_addr, &ipo->ipo_mask, ipo 2388 net/pfkeyv2.c if (perm == 0 && ipo->ipo_srcid) { ipo 2390 net/pfkeyv2.c p += sizeof(struct sadb_ident) + PADUP(ipo->ipo_srcid->ref_len); ipo 2393 net/pfkeyv2.c PADUP(ipo->ipo_srcid->ref_len)) / sizeof(uint64_t); ipo 2394 net/pfkeyv2.c ident->sadb_ident_type = ipo->ipo_srcid->ref_type; ipo 2395 net/pfkeyv2.c bcopy(ipo->ipo_srcid + 1, headers[SADB_EXT_IDENTITY_SRC] + ipo 2396 net/pfkeyv2.c sizeof(struct sadb_ident), ipo->ipo_srcid->ref_len); ipo 2398 net/pfkeyv2.c if (perm == 0 && ipo->ipo_dstid) { ipo 2400 net/pfkeyv2.c p += sizeof(struct sadb_ident) + PADUP(ipo->ipo_dstid->ref_len); ipo 2403 net/pfkeyv2.c PADUP(ipo->ipo_dstid->ref_len)) / sizeof(uint64_t); ipo 2404 net/pfkeyv2.c ident->sadb_ident_type = ipo->ipo_dstid->ref_type; ipo 2405 net/pfkeyv2.c bcopy(ipo->ipo_dstid + 1, headers[SADB_EXT_IDENTITY_DST] + ipo 2406 net/pfkeyv2.c sizeof(struct sadb_ident), ipo->ipo_dstid->ref_len); ipo 2421 net/pfkeyv2.c struct ipsec_policy *ipo; ipo 2423 net/pfkeyv2.c TAILQ_FOREACH(ipo, &ipsec_policy_head, ipo_list) ipo 2424 net/pfkeyv2.c rval = walker(ipo, (void *)arg); ipo 2429 net/pfkeyv2.c pfkeyv2_sysctl_policydumper(struct ipsec_policy *ipo, void *arg) ipo 2436 net/pfkeyv2.c if (ipo->ipo_flags & IPSP_POLICY_SOCKET) ipo 2444 net/pfkeyv2.c if ((error = pfkeyv2_dump_policy(ipo, headers, &buffer, ipo 2454 net/pfkeyv2.c if (ipo->ipo_sproto == IPPROTO_ESP) ipo 2456 net/pfkeyv2.c else if (ipo->ipo_sproto == IPPROTO_AH) ipo 2458 net/pfkeyv2.c else if (ipo->ipo_sproto == IPPROTO_IPCOMP) ipo 2460 net/pfkeyv2.c else if (ipo->ipo_sproto == IPPROTO_IPIP) ipo 2478 net/pfkeyv2.c if ((error = pfkeyv2_dump_policy(ipo, NULL, NULL, ipo 277 netinet/ip_ether.c struct ip *ipo; ipo 365 netinet/ip_ether.c ipo = mtod(m, struct ip *); ipo 367 netinet/ip_ether.c ipo->ip_v = IPVERSION; ipo 368 netinet/ip_ether.c ipo->ip_hl = 5; ipo 369 netinet/ip_ether.c ipo->ip_len = htons(m->m_pkthdr.len); ipo 370 netinet/ip_ether.c ipo->ip_ttl = ip_defttl; ipo 371 netinet/ip_ether.c ipo->ip_p = IPPROTO_ETHERIP; ipo 372 netinet/ip_ether.c ipo->ip_tos = 0; ipo 373 netinet/ip_ether.c ipo->ip_off = 0; ipo 374 netinet/ip_ether.c ipo->ip_sum = 0; ipo 375 netinet/ip_ether.c ipo->ip_id = htons(ip_randomid()); ipo 382 netinet/ip_ether.c ipo->ip_src = tdb->tdb_src.sin.sin_addr; ipo 383 netinet/ip_ether.c ipo->ip_dst = tdb->tdb_dst.sin.sin_addr; ipo 144 netinet/ip_ipip.c struct ip *ipo; ipo 186 netinet/ip_ipip.c ipo = mtod(m, struct ip *); ipo 192 netinet/ip_ipip.c otos = ipo->ip_tos; ipo 255 netinet/ip_ipip.c ipo = mtod(m, struct ip *); ipo 256 netinet/ip_ipip.c nxt = ipo->ip_p; ipo 257 netinet/ip_ipip.c if (!ip_ecn_egress(ECN_ALLOWED, &otos, &ipo->ip_tos)) { ipo 265 netinet/ip_ipip.c ip6 = (struct ip6_hdr *) ipo; ipo 287 netinet/ip_ipip.c if (ipo) { ipo 295 netinet/ip_ipip.c ipo->ip_src.s_addr) { ipo 384 netinet/ip_ipip.c struct ip *ipo; ipo 421 netinet/ip_ipip.c ipo = mtod(m, struct ip *); ipo 423 netinet/ip_ipip.c ipo->ip_v = IPVERSION; ipo 424 netinet/ip_ipip.c ipo->ip_hl = 5; ipo 425 netinet/ip_ipip.c ipo->ip_len = htons(m->m_pkthdr.len); ipo 426 netinet/ip_ipip.c ipo->ip_ttl = ip_defttl; ipo 427 netinet/ip_ipip.c ipo->ip_sum = 0; ipo 428 netinet/ip_ipip.c ipo->ip_src = tdb->tdb_src.sin.sin_addr; ipo 429 netinet/ip_ipip.c ipo->ip_dst = tdb->tdb_dst.sin.sin_addr; ipo 435 netinet/ip_ipip.c ipo->ip_id = htons(ip_randomid()); ipo 444 netinet/ip_ipip.c ipo->ip_p = IPPROTO_IPIP; ipo 452 netinet/ip_ipip.c sizeof(u_int16_t), (caddr_t) &ipo->ip_off); ipo 453 netinet/ip_ipip.c NTOHS(ipo->ip_off); ipo 454 netinet/ip_ipip.c ipo->ip_off &= ~(IP_DF | IP_MF | IP_OFFMASK); ipo 455 netinet/ip_ipip.c HTONS(ipo->ip_off); ipo 466 netinet/ip_ipip.c ipo->ip_p = IPPROTO_IPV6; ipo 467 netinet/ip_ipip.c ipo->ip_off = 0; ipo 479 netinet/ip_ipip.c ipo->ip_tos = otos; ipo 802 netinet/ip_ipsp.c struct ipsec_policy *ipo; ipo 824 netinet/ip_ipsp.c for (ipo = TAILQ_FIRST(&tdbp->tdb_policy_head); ipo; ipo 825 netinet/ip_ipsp.c ipo = TAILQ_FIRST(&tdbp->tdb_policy_head)) { ipo 826 netinet/ip_ipsp.c TAILQ_REMOVE(&tdbp->tdb_policy_head, ipo, ipo_tdb_next); ipo 827 netinet/ip_ipsp.c ipo->ipo_tdb = NULL; ipo 828 netinet/ip_ipsp.c ipo->ipo_last_searched = 0; /* Force a re-search. */ ipo 86 netinet/ip_spd.c struct ipsec_policy *ipo; ipo 255 netinet/ip_spd.c ipo = ((struct sockaddr_encap *) (re->re_rt->rt_gateway))->sen_ipsp; ipo 257 netinet/ip_spd.c if (ipo == NULL) { ipo 263 netinet/ip_spd.c switch (ipo->ipo_type) { ipo 267 netinet/ip_spd.c inp, ipo); ipo 286 netinet/ip_spd.c switch (ipo->ipo_dst.sa.sa_family) { ipo 289 netinet/ip_spd.c if ((ipo->ipo_dst.sin.sin_addr.s_addr == INADDR_ANY) || ipo 290 netinet/ip_spd.c (ipo->ipo_dst.sin.sin_addr.s_addr == INADDR_BROADCAST)) ipo 297 netinet/ip_spd.c if ((IN6_IS_ADDR_UNSPECIFIED(&ipo->ipo_dst.sin6.sin6_addr)) || ipo 298 netinet/ip_spd.c (bcmp(&ipo->ipo_dst.sin6.sin6_addr, &in6mask128, ipo 306 netinet/ip_spd.c switch (ipo->ipo_src.sa.sa_family) { ipo 309 netinet/ip_spd.c if (ipo->ipo_src.sin.sin_addr.s_addr == INADDR_ANY) ipo 316 netinet/ip_spd.c if (IN6_IS_ADDR_UNSPECIFIED(&ipo->ipo_src.sin6.sin6_addr)) ipo 323 netinet/ip_spd.c if ((ipo->ipo_tdb) && (ipo->ipo_tdb->tdb_flags & TDBF_INVALID)) { ipo 324 netinet/ip_spd.c TAILQ_REMOVE(&ipo->ipo_tdb->tdb_policy_head, ipo, ipo 326 netinet/ip_spd.c ipo->ipo_tdb = NULL; ipo 343 netinet/ip_spd.c !bcmp(&sdst, &ipo->ipo_dst, sdst.sa.sa_len)) { ipo 350 netinet/ip_spd.c if (ipo->ipo_tdb) { ipo 351 netinet/ip_spd.c if ((ipo->ipo_last_searched <= ipsec_last_added) || ipo 352 netinet/ip_spd.c (ipo->ipo_sproto != ipo->ipo_tdb->tdb_sproto) || ipo 353 netinet/ip_spd.c bcmp(dignore ? &sdst : &ipo->ipo_dst, ipo 354 netinet/ip_spd.c &ipo->ipo_tdb->tdb_dst, ipo 355 netinet/ip_spd.c ipo->ipo_tdb->tdb_dst.sa.sa_len)) ipo 358 netinet/ip_spd.c if (!ipsp_aux_match(ipo->ipo_tdb, ipo 359 netinet/ip_spd.c ipo->ipo_srcid, ipo->ipo_dstid, ipo 360 netinet/ip_spd.c ipo->ipo_local_cred, NULL, ipo 361 netinet/ip_spd.c &ipo->ipo_addr, &ipo->ipo_mask)) ipo 367 netinet/ip_spd.c tdbp, inp, ipo); ipo 371 netinet/ip_spd.c TAILQ_REMOVE(&ipo->ipo_tdb->tdb_policy_head, ipo, ipo 373 netinet/ip_spd.c ipo->ipo_tdb = NULL; ipo 374 netinet/ip_spd.c ipo->ipo_last_searched = 0; ipo 386 netinet/ip_spd.c if (ipo->ipo_last_searched <= ipsec_last_added) { ipo 389 netinet/ip_spd.c ipo->ipo_last_searched = time_second; ipo 392 netinet/ip_spd.c ipo->ipo_tdb = ipo 393 netinet/ip_spd.c gettdbbyaddr(dignore ? &sdst : &ipo->ipo_dst, ipo 394 netinet/ip_spd.c ipo->ipo_sproto, ipo->ipo_srcid, ipo 395 netinet/ip_spd.c ipo->ipo_dstid, ipo->ipo_local_cred, m, af, ipo 396 netinet/ip_spd.c &ipo->ipo_addr, &ipo->ipo_mask); ipo 397 netinet/ip_spd.c if (ipo->ipo_tdb) { ipo 398 netinet/ip_spd.c TAILQ_INSERT_TAIL(&ipo->ipo_tdb->tdb_policy_head, ipo 399 netinet/ip_spd.c ipo, ipo_tdb_next); ipo 402 netinet/ip_spd.c direction, tdbp, inp, ipo); ipo 407 netinet/ip_spd.c switch (ipo->ipo_type) { ipo 410 netinet/ip_spd.c if (ipsp_acquire_sa(ipo, ipo 411 netinet/ip_spd.c dignore ? &sdst : &ipo->ipo_dst, ipo 412 netinet/ip_spd.c signore ? NULL : &ipo->ipo_src, ddst, m) != 0) { ipo 424 netinet/ip_spd.c ipsp_acquire_sa(ipo, dignore ? &sdst : &ipo->ipo_dst, ipo 425 netinet/ip_spd.c signore ? NULL : &ipo->ipo_src, ddst, NULL); ipo 431 netinet/ip_spd.c tdbp, inp, ipo); ipo 436 netinet/ip_spd.c if (ipo->ipo_tdb == tdbp) { ipo 439 netinet/ip_spd.c direction, tdbp, inp, ipo); ipo 442 netinet/ip_spd.c if (bcmp(dignore ? &ssrc : &ipo->ipo_dst, ipo 444 netinet/ip_spd.c (ipo->ipo_sproto != tdbp->tdb_sproto)) ipo 448 netinet/ip_spd.c if (ipo->ipo_srcid) { ipo 450 netinet/ip_spd.c !ipsp_ref_match(ipo->ipo_srcid, ipo 456 netinet/ip_spd.c if (ipo->ipo_dstid) { ipo 458 netinet/ip_spd.c !ipsp_ref_match(ipo->ipo_dstid, ipo 464 netinet/ip_spd.c if (ipo->ipo_tdb) ipo 465 netinet/ip_spd.c TAILQ_REMOVE(&ipo->ipo_tdb->tdb_policy_head, ipo 466 netinet/ip_spd.c ipo, ipo_tdb_next); ipo 467 netinet/ip_spd.c ipo->ipo_tdb = tdbp; ipo 468 netinet/ip_spd.c TAILQ_INSERT_TAIL(&tdbp->tdb_policy_head, ipo, ipo 472 netinet/ip_spd.c tdbp, inp, ipo); ipo 479 netinet/ip_spd.c if (ipo->ipo_tdb) { ipo 487 netinet/ip_spd.c if (ipo->ipo_sproto == ipo->ipo_tdb->tdb_sproto && ipo 488 netinet/ip_spd.c !bcmp(&ipo->ipo_tdb->tdb_src, ipo 489 netinet/ip_spd.c dignore ? &ssrc : &ipo->ipo_dst, ipo 490 netinet/ip_spd.c ipo->ipo_tdb->tdb_src.sa.sa_len)) ipo 494 netinet/ip_spd.c TAILQ_REMOVE(&ipo->ipo_tdb->tdb_policy_head, ipo, ipo 496 netinet/ip_spd.c ipo->ipo_last_searched = 0; ipo 497 netinet/ip_spd.c ipo->ipo_tdb = NULL; ipo 501 netinet/ip_spd.c if (ipo->ipo_last_searched <= ipsec_last_added) { ipo 503 netinet/ip_spd.c ipo->ipo_last_searched = time_second; ipo 505 netinet/ip_spd.c ipo->ipo_tdb = ipo 506 netinet/ip_spd.c gettdbbysrc(dignore ? &ssrc : &ipo->ipo_dst, ipo 507 netinet/ip_spd.c ipo->ipo_sproto, ipo->ipo_srcid, ipo 508 netinet/ip_spd.c ipo->ipo_dstid, m, af, &ipo->ipo_addr, ipo 509 netinet/ip_spd.c &ipo->ipo_mask); ipo 510 netinet/ip_spd.c if (ipo->ipo_tdb) ipo 511 netinet/ip_spd.c TAILQ_INSERT_TAIL(&ipo->ipo_tdb->tdb_policy_head, ipo 512 netinet/ip_spd.c ipo, ipo_tdb_next); ipo 516 netinet/ip_spd.c switch (ipo->ipo_type) { ipo 519 netinet/ip_spd.c if (ipo->ipo_tdb) { ipo 525 netinet/ip_spd.c if ((*error = ipsp_acquire_sa(ipo, ipo 526 netinet/ip_spd.c dignore ? &ssrc : &ipo->ipo_dst, ipo 527 netinet/ip_spd.c signore ? NULL : &ipo->ipo_src, ddst, m)) != 0) ipo 538 netinet/ip_spd.c if (ipo->ipo_tdb) { ipo 541 netinet/ip_spd.c direction, tdbp, inp, ipo); ipo 545 netinet/ip_spd.c ipsp_acquire_sa(ipo, dignore ? &ssrc : &ipo->ipo_dst, ipo 546 netinet/ip_spd.c signore ? NULL : &ipo->ipo_src, ddst, NULL); ipo 552 netinet/ip_spd.c tdbp, inp, ipo); ipo 565 netinet/ip_spd.c ipsec_delete_policy(struct ipsec_policy *ipo) ipo 570 netinet/ip_spd.c if (--ipo->ipo_ref_count > 0) ipo 574 netinet/ip_spd.c if (!(ipo->ipo_flags & IPSP_POLICY_SOCKET)) ipo 575 netinet/ip_spd.c err = rtrequest(RTM_DELETE, (struct sockaddr *) &ipo->ipo_addr, ipo 577 netinet/ip_spd.c (struct sockaddr *) &ipo->ipo_mask, ipo 580 netinet/ip_spd.c if (ipo->ipo_tdb != NULL) ipo 581 netinet/ip_spd.c TAILQ_REMOVE(&ipo->ipo_tdb->tdb_policy_head, ipo, ipo 584 netinet/ip_spd.c while ((ipa = TAILQ_FIRST(&ipo->ipo_acquires)) != NULL) ipo 587 netinet/ip_spd.c TAILQ_REMOVE(&ipsec_policy_head, ipo, ipo_list); ipo 589 netinet/ip_spd.c if (ipo->ipo_srcid) ipo 590 netinet/ip_spd.c ipsp_reffree(ipo->ipo_srcid); ipo 591 netinet/ip_spd.c if (ipo->ipo_dstid) ipo 592 netinet/ip_spd.c ipsp_reffree(ipo->ipo_dstid); ipo 593 netinet/ip_spd.c if (ipo->ipo_local_cred) ipo 594 netinet/ip_spd.c ipsp_reffree(ipo->ipo_local_cred); ipo 595 netinet/ip_spd.c if (ipo->ipo_local_auth) ipo 596 netinet/ip_spd.c ipsp_reffree(ipo->ipo_local_auth); ipo 598 netinet/ip_spd.c pool_put(&ipsec_policy_pool, ipo); ipo 600 netinet/ip_spd.c if (!(ipo->ipo_flags & IPSP_POLICY_SOCKET)) ipo 729 netinet/ip_spd.c ipsp_pending_acquire(struct ipsec_policy *ipo, union sockaddr_union *gw) ipo 733 netinet/ip_spd.c TAILQ_FOREACH (ipa, &ipo->ipo_acquires, ipa_ipo_next) { ipo 746 netinet/ip_spd.c ipsp_acquire_sa(struct ipsec_policy *ipo, union sockaddr_union *gw, ipo 759 netinet/ip_spd.c if (ipo->ipo_flags & IPSP_POLICY_SOCKET && ipo 760 netinet/ip_spd.c ipo->ipo_local_auth == NULL) ipo 764 netinet/ip_spd.c if ((ipa = ipsp_pending_acquire(ipo, gw)) != NULL) ipo 787 netinet/ip_spd.c switch (ipo->ipo_addr.sen_type) { ipo 791 netinet/ip_spd.c ipa->ipa_info.sen_direction = ipo->ipo_addr.sen_direction; ipo 792 netinet/ip_spd.c ipa->ipa_mask.sen_direction = ipo->ipo_mask.sen_direction; ipo 794 netinet/ip_spd.c if (ipo->ipo_mask.sen_ip_src.s_addr == INADDR_ANY || ipo 795 netinet/ip_spd.c ipo->ipo_addr.sen_ip_src.s_addr == INADDR_ANY || ipo 796 netinet/ip_spd.c ipsp_is_unspecified(ipo->ipo_dst)) { ipo 800 netinet/ip_spd.c ipa->ipa_info.sen_ip_src = ipo->ipo_addr.sen_ip_src; ipo 801 netinet/ip_spd.c ipa->ipa_mask.sen_ip_src = ipo->ipo_mask.sen_ip_src; ipo 804 netinet/ip_spd.c if (ipo->ipo_mask.sen_ip_dst.s_addr == INADDR_ANY || ipo 805 netinet/ip_spd.c ipo->ipo_addr.sen_ip_dst.s_addr == INADDR_ANY || ipo 806 netinet/ip_spd.c ipsp_is_unspecified(ipo->ipo_dst)) { ipo 810 netinet/ip_spd.c ipa->ipa_info.sen_ip_dst = ipo->ipo_addr.sen_ip_dst; ipo 811 netinet/ip_spd.c ipa->ipa_mask.sen_ip_dst = ipo->ipo_mask.sen_ip_dst; ipo 814 netinet/ip_spd.c ipa->ipa_info.sen_proto = ipo->ipo_addr.sen_proto; ipo 815 netinet/ip_spd.c ipa->ipa_mask.sen_proto = ipo->ipo_mask.sen_proto; ipo 817 netinet/ip_spd.c if (ipo->ipo_addr.sen_proto) { ipo 818 netinet/ip_spd.c ipa->ipa_info.sen_sport = ipo->ipo_addr.sen_sport; ipo 819 netinet/ip_spd.c ipa->ipa_mask.sen_sport = ipo->ipo_mask.sen_sport; ipo 821 netinet/ip_spd.c ipa->ipa_info.sen_dport = ipo->ipo_addr.sen_dport; ipo 822 netinet/ip_spd.c ipa->ipa_mask.sen_dport = ipo->ipo_mask.sen_dport; ipo 831 netinet/ip_spd.c ipo->ipo_addr.sen_ip6_direction; ipo 833 netinet/ip_spd.c ipo->ipo_mask.sen_ip6_direction; ipo 835 netinet/ip_spd.c if (IN6_IS_ADDR_UNSPECIFIED(&ipo->ipo_mask.sen_ip6_src) || ipo 836 netinet/ip_spd.c IN6_IS_ADDR_UNSPECIFIED(&ipo->ipo_addr.sen_ip6_src) || ipo 837 netinet/ip_spd.c ipsp_is_unspecified(ipo->ipo_dst)) { ipo 841 netinet/ip_spd.c ipa->ipa_info.sen_ip6_src = ipo->ipo_addr.sen_ip6_src; ipo 842 netinet/ip_spd.c ipa->ipa_mask.sen_ip6_src = ipo->ipo_mask.sen_ip6_src; ipo 845 netinet/ip_spd.c if (IN6_IS_ADDR_UNSPECIFIED(&ipo->ipo_mask.sen_ip6_dst) || ipo 846 netinet/ip_spd.c IN6_IS_ADDR_UNSPECIFIED(&ipo->ipo_addr.sen_ip6_dst) || ipo 847 netinet/ip_spd.c ipsp_is_unspecified(ipo->ipo_dst)) { ipo 851 netinet/ip_spd.c ipa->ipa_info.sen_ip6_dst = ipo->ipo_addr.sen_ip6_dst; ipo 852 netinet/ip_spd.c ipa->ipa_mask.sen_ip6_dst = ipo->ipo_mask.sen_ip6_dst; ipo 855 netinet/ip_spd.c ipa->ipa_info.sen_ip6_proto = ipo->ipo_addr.sen_ip6_proto; ipo 856 netinet/ip_spd.c ipa->ipa_mask.sen_ip6_proto = ipo->ipo_mask.sen_ip6_proto; ipo 858 netinet/ip_spd.c if (ipo->ipo_mask.sen_ip6_proto) { ipo 860 netinet/ip_spd.c ipo->ipo_addr.sen_ip6_sport; ipo 862 netinet/ip_spd.c ipo->ipo_mask.sen_ip6_sport; ipo 864 netinet/ip_spd.c ipo->ipo_addr.sen_ip6_dport; ipo 866 netinet/ip_spd.c ipo->ipo_mask.sen_ip6_dport; ipo 879 netinet/ip_spd.c TAILQ_INSERT_TAIL(&ipo->ipo_acquires, ipa, ipa_ipo_next); ipo 880 netinet/ip_spd.c ipa->ipa_policy = ipo; ipo 883 netinet/ip_spd.c return pfkeyv2_acquire(ipo, gw, laddr, &ipa->ipa_seq, ddst); ipo 891 netinet/ip_spd.c struct tdb *tdbp, struct inpcb *inp, struct ipsec_policy *ipo) ipo 1043 netinet/ip_spd.c if (ipo != NULL && m != NULL && ipo 1044 netinet/ip_spd.c ipo->ipo_tdb != NULL && ipo 1045 netinet/ip_spd.c ipo->ipo_tdb != inp->inp_tdb_out) { ipo 1092 netinet/ip_spd.c if (ipo != NULL && ipo->ipo_tdb != NULL && ipo 1093 netinet/ip_spd.c ipo->ipo_tdb != inp->inp_tdb_out && m != NULL) ipo 1151 netinet/ip_spd.c tdbi->spi = ipo->ipo_tdb->tdb_spi; ipo 1152 netinet/ip_spd.c tdbi->proto = ipo->ipo_tdb->tdb_sproto; ipo 1153 netinet/ip_spd.c bcopy(&ipo->ipo_tdb->tdb_dst, &tdbi->dst, ipo 1154 netinet/ip_spd.c ipo->ipo_tdb->tdb_dst.sa.sa_len); ipo 1159 netinet/ip_spd.c if (ipo != NULL) ipo 1160 netinet/ip_spd.c return ipo->ipo_tdb;