Lines Matching defs:mhp

642 key_msghdr_get_sockaddr(const struct sadb_msghdr *mhp, int idx)
645 return PFKEY_ADDR_SADDR(mhp->ext[idx]);
2137 key_gather_mbuf(struct mbuf *m, const struct sadb_msghdr *mhp,
2147 KASSERT(mhp != NULL);
2156 if (idx == SADB_EXT_RESERVED && mhp->msg == NULL)
2159 (mhp->ext[idx] == NULL || mhp->extlen[idx] == 0))
2171 len = mhp->extlen[idx];
2174 m_copydata(m, mhp->extoff[idx], mhp->extlen[idx],
2177 n = m_copym(m, mhp->extoff[idx], mhp->extlen[idx],
2206 const struct sadb_msghdr *mhp, struct secpolicy **_sp,
2218 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
2219 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL ||
2220 mhp->ext[SADB_X_EXT_POLICY] == NULL) {
2224 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
2225 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address) ||
2226 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) {
2230 if (mhp->ext[SADB_EXT_LIFETIME_HARD] != NULL) {
2231 if (mhp->extlen[SADB_EXT_LIFETIME_HARD] <
2236 lft = mhp->ext[SADB_EXT_LIFETIME_HARD];
2239 xpl0 = mhp->ext[SADB_X_EXT_POLICY];
2260 if (mhp->msg->sadb_msg_type != SADB_X_SPDSETIDX &&
2262 mhp->extlen[SADB_X_EXT_POLICY] <= sizeof(*xpl0)) {
2267 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
2268 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
2276 key_init_spidx_bymsghdr(&spidx, mhp);
2287 if (mhp->msg->sadb_msg_type == SADB_X_SPDUPDATE) {
2343 if (mhp->msg->sadb_msg_type == SADB_X_SPDUPDATE) {
2373 n = key_gather_mbuf(m, mhp, 2, 5, SADB_EXT_RESERVED,
2377 n = key_gather_mbuf(m, mhp, 2, 4, SADB_EXT_RESERVED,
2426 const struct sadb_msghdr *mhp)
2429 return key_spdadd(so, m, mhp, NULL, false);
2503 const struct sadb_msghdr *mhp)
2509 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
2510 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL ||
2511 mhp->ext[SADB_X_EXT_POLICY] == NULL) {
2515 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
2516 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address) ||
2517 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) {
2522 xpl0 = mhp->ext[SADB_X_EXT_POLICY];
2535 key_init_spidx_bymsghdr(&spidx, mhp);
2555 n = key_gather_mbuf(m, mhp, 1, 4, SADB_EXT_RESERVED,
2595 const struct sadb_msghdr *mhp, bool from_kernel)
2601 if (mhp->ext[SADB_X_EXT_POLICY] == NULL ||
2602 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) {
2607 xpl = mhp->ext[SADB_X_EXT_POLICY];
2640 n->m_next = m_copym(m, mhp->extoff[SADB_X_EXT_POLICY],
2641 mhp->extlen[SADB_X_EXT_POLICY], M_WAITOK);
2667 const struct sadb_msghdr *mhp)
2670 return key_spddelete2(so, m, mhp, false);
2700 const struct sadb_msghdr *mhp)
2707 if (mhp->ext[SADB_X_EXT_POLICY] == NULL ||
2708 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) {
2713 xpl = mhp->ext[SADB_X_EXT_POLICY];
2723 n = key_setdumpsp(sp, SADB_X_SPDGET, mhp->msg->sadb_msg_seq,
2724 mhp->msg->sadb_msg_pid);
2816 const struct sadb_msghdr *mhp)
2930 const struct sadb_msghdr *mhp)
2937 pid = mhp->msg->sadb_msg_pid;
2994 const struct sadb_msghdr *mhp)
3002 if (mhp->ext[SADB_X_EXT_NAT_T_TYPE] == NULL ||
3003 mhp->ext[SADB_X_EXT_NAT_T_SPORT] == NULL ||
3004 mhp->ext[SADB_X_EXT_NAT_T_DPORT] == NULL) {
3008 if ((mhp->extlen[SADB_X_EXT_NAT_T_TYPE] < sizeof(*type)) ||
3009 (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport)) ||
3010 (mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport))) {
3015 if ((mhp->ext[SADB_X_EXT_NAT_T_OAI] != NULL) &&
3016 (mhp->extlen[SADB_X_EXT_NAT_T_OAI] < sizeof(*iaddr))) {
3021 if ((mhp->ext[SADB_X_EXT_NAT_T_OAR] != NULL) &&
3022 (mhp->extlen[SADB_X_EXT_NAT_T_OAR] < sizeof(*raddr))) {
3027 if ((mhp->ext[SADB_X_EXT_NAT_T_FRAG] != NULL) &&
3028 (mhp->extlen[SADB_X_EXT_NAT_T_FRAG] < sizeof(*frag))) {
3033 type = mhp->ext[SADB_X_EXT_NAT_T_TYPE];
3034 sport = mhp->ext[SADB_X_EXT_NAT_T_SPORT];
3035 dport = mhp->ext[SADB_X_EXT_NAT_T_DPORT];
3036 iaddr = mhp->ext[SADB_X_EXT_NAT_T_OAI];
3037 raddr = mhp->ext[SADB_X_EXT_NAT_T_OAR];
3038 frag = mhp->ext[SADB_X_EXT_NAT_T_FRAG];
3196 * allocating a memory for new SA head, and copy from the values of mhp.
3279 * and copy the values of mhp into new buffer.
3290 key_newsav(struct mbuf *m, const struct sadb_msghdr *mhp,
3298 KASSERT(mhp != NULL);
3299 KASSERT(mhp->msg != NULL);
3303 switch (mhp->msg->sadb_msg_type) {
3309 if (mhp->msg->sadb_msg_seq == 0)
3314 newsav->seq = mhp->msg->sadb_msg_seq;
3319 if (mhp->ext[SADB_EXT_SA] == NULL) {
3324 xsa = mhp->ext[SADB_EXT_SA];
3326 newsav->seq = mhp->msg->sadb_msg_seq;
3334 if (mhp->msg->sadb_msg_type != SADB_GETSPI) {
3335 *errp = key_setsaval(newsav, m, mhp);
3348 newsav->pid = mhp->msg->sadb_msg_pid;
3615 const struct sadb_msghdr *mhp)
3621 KASSERT(mhp != NULL);
3622 KASSERT(mhp->msg != NULL);
3629 if (mhp->ext[SADB_EXT_SA] != NULL) {
3632 sa0 = mhp->ext[SADB_EXT_SA];
3633 if (mhp->extlen[SADB_EXT_SA] < sizeof(*sa0)) {
3655 if (mhp->ext[SADB_EXT_KEY_AUTH] != NULL) {
3659 key0 = mhp->ext[SADB_EXT_KEY_AUTH];
3660 len = mhp->extlen[SADB_EXT_KEY_AUTH];
3667 switch (mhp->msg->sadb_msg_satype) {
3690 if (mhp->ext[SADB_EXT_KEY_ENCRYPT] != NULL) {
3694 key0 = mhp->ext[SADB_EXT_KEY_ENCRYPT];
3695 len = mhp->extlen[SADB_EXT_KEY_ENCRYPT];
3702 switch (mhp->msg->sadb_msg_satype) {
3732 switch (mhp->msg->sadb_msg_satype) {
3751 mhp->msg->sadb_msg_satype, error);
3775 lft0 = mhp->ext[SADB_EXT_LIFETIME_HARD];
3777 if (mhp->extlen[SADB_EXT_LIFETIME_HARD] < sizeof(*lft0)) {
3784 lft0 = mhp->ext[SADB_EXT_LIFETIME_SOFT];
3786 if (mhp->extlen[SADB_EXT_LIFETIME_SOFT] < sizeof(*lft0)) {
5335 const struct sadb_msghdr *mhp)
5341 src0 = mhp->ext[SADB_EXT_ADDRESS_SRC];
5342 dst0 = mhp->ext[SADB_EXT_ADDRESS_DST];
5343 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
5344 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
5345 xpl0 = mhp->ext[SADB_X_EXT_POLICY];
5366 * IN: mhp: pointer to the pointer to each header.
5372 const struct sadb_msghdr *mhp)
5384 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
5385 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL) {
5389 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
5390 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) {
5394 if (mhp->ext[SADB_X_EXT_SA2] != NULL) {
5395 const struct sadb_x_sa2 *sa2 = mhp->ext[SADB_X_EXT_SA2];
5403 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
5404 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
5407 proto = key_satype2proto(mhp->msg->sadb_msg_satype);
5418 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
5423 spi = key_do_getnewspi(mhp->ext[SADB_EXT_SPIRANGE], &saidx);
5440 newsav = KEY_NEWSAV(m, mhp, &error, proto);
5463 if (mhp->msg->sadb_msg_seq != 0) {
5466 acq = key_getacqbyseq(mhp->msg->sadb_msg_seq);
5504 n->m_next = key_gather_mbuf(m, mhp, 0, 2, SADB_EXT_ADDRESS_SRC,
5592 const struct sadb_msghdr *mhp)
5600 if (mhp->ext[SADB_X_EXT_NAT_T_TYPE] == NULL ||
5601 mhp->ext[SADB_X_EXT_NAT_T_SPORT] == NULL ||
5602 mhp->ext[SADB_X_EXT_NAT_T_DPORT] == NULL)
5605 if (mhp->extlen[SADB_X_EXT_NAT_T_TYPE] < sizeof(*type)) {
5610 if (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport)) {
5615 if (mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) {
5620 if (mhp->ext[SADB_X_EXT_NAT_T_OAI] != NULL) {
5622 if (mhp->extlen[SADB_X_EXT_NAT_T_OAI] < sizeof(*iaddr)) {
5628 if (mhp->ext[SADB_X_EXT_NAT_T_OAR] != NULL) {
5630 if (mhp->extlen[SADB_X_EXT_NAT_T_OAR] < sizeof(*raddr)) {
5636 if (mhp->ext[SADB_X_EXT_NAT_T_FRAG] != NULL) {
5637 if (mhp->extlen[SADB_X_EXT_NAT_T_FRAG] < sizeof(*frag)) {
5643 type = mhp->ext[SADB_X_EXT_NAT_T_TYPE];
5644 sport = mhp->ext[SADB_X_EXT_NAT_T_SPORT];
5645 dport = mhp->ext[SADB_X_EXT_NAT_T_DPORT];
5646 iaddr = mhp->ext[SADB_X_EXT_NAT_T_OAI];
5647 raddr = mhp->ext[SADB_X_EXT_NAT_T_OAR];
5648 frag = mhp->ext[SADB_X_EXT_NAT_T_FRAG];
5673 const struct sadb_msghdr *mhp)
5675 if (mhp->ext[SADB_X_EXT_NAT_T_OAI] != NULL)
5677 if (mhp->ext[SADB_X_EXT_NAT_T_OAR] != NULL)
5680 if ((mhp->ext[SADB_X_EXT_NAT_T_TYPE] != NULL) &&
5681 (mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL) &&
5682 (mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL)) {
5687 if ((mhp->extlen[SADB_X_EXT_NAT_T_TYPE] < sizeof(*type)) ||
5688 (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport)) ||
5689 (mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport))) {
5694 type = mhp->ext[SADB_X_EXT_NAT_T_TYPE];
5695 sport = mhp->ext[SADB_X_EXT_NAT_T_SPORT];
5696 dport = mhp->ext[SADB_X_EXT_NAT_T_DPORT];
5725 key_api_update(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp)
5738 proto = key_satype2proto(mhp->msg->sadb_msg_satype);
5744 if (mhp->ext[SADB_EXT_SA] == NULL ||
5745 mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
5746 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL ||
5747 (mhp->msg->sadb_msg_satype == SADB_SATYPE_ESP &&
5748 mhp->ext[SADB_EXT_KEY_ENCRYPT] == NULL) ||
5749 (mhp->msg->sadb_msg_satype == SADB_SATYPE_AH &&
5750 mhp->ext[SADB_EXT_KEY_AUTH] == NULL) ||
5751 (mhp->ext[SADB_EXT_LIFETIME_HARD] != NULL &&
5752 mhp->ext[SADB_EXT_LIFETIME_SOFT] == NULL) ||
5753 (mhp->ext[SADB_EXT_LIFETIME_HARD] == NULL &&
5754 mhp->ext[SADB_EXT_LIFETIME_SOFT] != NULL)) {
5758 if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa) ||
5759 mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
5760 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) {
5764 if (mhp->ext[SADB_X_EXT_SA2] != NULL) {
5765 const struct sadb_x_sa2 *sa2 = mhp->ext[SADB_X_EXT_SA2];
5774 sa0 = mhp->ext[SADB_EXT_SA];
5775 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
5776 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
5782 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
5795 error = key_setident(sah, m, mhp);
5801 if (mhp->msg->sadb_msg_seq != 0) {
5802 sav = key_getsavbyseq(sah, mhp->msg->sadb_msg_seq);
5806 mhp->msg->sadb_msg_seq);
5837 if (sav->pid != mhp->msg->sadb_msg_pid) {
5839 sav->pid, mhp->msg->sadb_msg_pid);
5861 error = key_setsaval(newsav, m, mhp);
5867 error = key_handle_natt_info(newsav, mhp);
5911 /* set msg buf from mhp */
5912 n = key_getmsgbuf_x1(m, mhp);
5981 const struct sadb_msghdr *mhp)
5994 proto = key_satype2proto(mhp->msg->sadb_msg_satype);
6000 if (mhp->ext[SADB_EXT_SA] == NULL ||
6001 mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
6002 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL ||
6003 (mhp->msg->sadb_msg_satype == SADB_SATYPE_ESP &&
6004 mhp->ext[SADB_EXT_KEY_ENCRYPT] == NULL) ||
6005 (mhp->msg->sadb_msg_satype == SADB_SATYPE_AH &&
6006 mhp->ext[SADB_EXT_KEY_AUTH] == NULL) ||
6007 (mhp->ext[SADB_EXT_LIFETIME_HARD] != NULL &&
6008 mhp->ext[SADB_EXT_LIFETIME_SOFT] == NULL) ||
6009 (mhp->ext[SADB_EXT_LIFETIME_HARD] == NULL &&
6010 mhp->ext[SADB_EXT_LIFETIME_SOFT] != NULL)) {
6014 if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa) ||
6015 mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
6016 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) {
6021 if (mhp->ext[SADB_X_EXT_SA2] != NULL) {
6022 const struct sadb_x_sa2 *sa2 = mhp->ext[SADB_X_EXT_SA2];
6030 sa0 = mhp->ext[SADB_EXT_SA];
6031 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
6032 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
6038 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
6055 error = key_setident(sah, m, mhp);
6073 newsav = KEY_NEWSAV(m, mhp, &error, proto);
6078 error = key_handle_natt_info(newsav, mhp);
6111 /* set msg buf from mhp */
6112 n = key_getmsgbuf_x1(m, mhp);
6129 const struct sadb_msghdr *mhp)
6137 KASSERT(mhp != NULL);
6138 KASSERT(mhp->msg != NULL);
6155 if (mhp->ext[SADB_EXT_IDENTITY_SRC] == NULL &&
6156 mhp->ext[SADB_EXT_IDENTITY_DST] == NULL) {
6162 if (mhp->ext[SADB_EXT_IDENTITY_SRC] == NULL ||
6163 mhp->ext[SADB_EXT_IDENTITY_DST] == NULL) {
6168 idsrc = mhp->ext[SADB_EXT_IDENTITY_SRC];
6169 iddst = mhp->ext[SADB_EXT_IDENTITY_DST];
6170 idsrclen = mhp->extlen[SADB_EXT_IDENTITY_SRC];
6171 iddstlen = mhp->extlen[SADB_EXT_IDENTITY_DST];
6214 key_getmsgbuf_x1(struct mbuf *m, const struct sadb_msghdr *mhp)
6219 KASSERT(mhp != NULL);
6220 KASSERT(mhp->msg != NULL);
6223 n = key_gather_mbuf(m, mhp, 1, 15, SADB_EXT_RESERVED,
6257 const struct sadb_msghdr *mhp)
6268 proto = key_satype2proto(mhp->msg->sadb_msg_satype);
6274 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
6275 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL) {
6280 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
6281 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) {
6286 if (mhp->ext[SADB_EXT_SA] == NULL) {
6293 return key_delete_all(so, m, mhp, proto);
6294 } else if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa)) {
6299 sa0 = mhp->ext[SADB_EXT_SA];
6300 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
6301 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
6307 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
6332 n = key_gather_mbuf(m, mhp, 1, 4, SADB_EXT_RESERVED,
6346 const struct sadb_msghdr *mhp, u_int16_t proto)
6355 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
6356 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
6362 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
6389 n = key_gather_mbuf(m, mhp, 1, 3, SADB_EXT_RESERVED,
6412 const struct sadb_msghdr *mhp)
6422 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) {
6427 if (mhp->ext[SADB_EXT_SA] == NULL ||
6428 mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
6429 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL) {
6433 if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa) ||
6434 mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
6435 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) {
6440 sa0 = mhp->ext[SADB_EXT_SA];
6441 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
6442 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
6448 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
6482 n = key_setdumpsa(sav, SADB_GET, satype, mhp->msg->sadb_msg_seq,
6483 mhp->msg->sadb_msg_pid);
7139 const struct sadb_msghdr *mhp)
7152 if (mhp->msg->sadb_msg_len == PFKEY_UNIT64(sizeof(struct sadb_msg))) {
7157 if (mhp->msg->sadb_msg_seq == 0) {
7164 acq = key_getacqbyseq(mhp->msg->sadb_msg_seq);
7189 proto = key_satype2proto(mhp->msg->sadb_msg_satype);
7195 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL ||
7196 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL ||
7197 mhp->ext[SADB_EXT_PROPOSAL] == NULL) {
7202 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) ||
7203 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address) ||
7204 mhp->extlen[SADB_EXT_PROPOSAL] < sizeof(struct sadb_prop)) {
7210 src = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_SRC);
7211 dst = key_msghdr_get_sockaddr(mhp, SADB_EXT_ADDRESS_DST);
7217 error = key_set_natt_ports(&saidx.src, &saidx.dst, mhp);
7260 const struct sadb_msghdr *mhp)
7265 if (mhp->msg->sadb_msg_satype >= __arraycount(key_misc.reglist))
7269 if (mhp->msg->sadb_msg_satype == SADB_SATYPE_UNSPEC)
7277 LIST_FOREACH(reg, &key_misc.reglist[mhp->msg->sadb_msg_satype], chain) {
7290 LIST_INSERT_HEAD(&key_misc.reglist[mhp->msg->sadb_msg_satype], newreg, chain);
7541 const struct sadb_msghdr *mhp)
7551 proto = key_satype2proto(mhp->msg->sadb_msg_satype);
7560 if (mhp->msg->sadb_msg_satype != SADB_SATYPE_UNSPEC &&
7702 const struct sadb_msghdr *mhp)
7710 satype = mhp->msg->sadb_msg_satype;
7729 n = key_setdump_chain(satype, &error, &len, mhp->msg->sadb_msg_pid);
7773 const struct sadb_msghdr *mhp)
7777 olen = PFKEY_UNUNIT64(mhp->msg->sadb_msg_len);
7791 mhp->msg->sadb_msg_errno = 0;
7792 switch (mhp->msg->sadb_msg_satype) {
7795 kp->kp_promisc = mhp->msg->sadb_msg_satype;
7802 mhp->msg->sadb_msg_errno = 0;
8108 key_align(struct mbuf *m, struct sadb_msghdr *mhp)
8117 KASSERT(mhp != NULL);
8121 memset(mhp, 0, sizeof(*mhp));
8123 mhp->msg = mtod(m, struct sadb_msg *);
8124 mhp->ext[0] = mhp->msg; /*XXX backward compat */
8126 end = PFKEY_UNUNIT64(mhp->msg->sadb_msg_len);
8167 if (mhp->ext[ext->sadb_ext_type] != NULL) {
8199 mhp->ext[ext->sadb_ext_type] = ext;
8200 mhp->extoff[ext->sadb_ext_type] = off;
8201 mhp->extlen[ext->sadb_ext_type] = extlen;