Lines Matching refs:sav

213 	struct secasvar *sav;
219 for (sav = LIST_FIRST(&(*sah)->savtree[state]);
220 sav != NULL;
221 sav = nextsav) {
222 nextsav = LIST_NEXT(sav, chain);
223 if (sav->state == SADB_SASTATE_LARVAL ||
224 sav->state == SADB_SASTATE_DEAD) {
228 if (sav->utun_pcb) {
229 sav->utun_pcb = NULL;
230 sav->utun_is_keepalive_fn = NULL;
231 sav->utun_in_fn = NULL;
232 sav->refcnt--; // unlinked from pcb
237 key_sa_chgstate(sav, SADB_SASTATE_DEAD);
238 key_freesav(sav, KEY_SADB_LOCKED);
296 struct secasvar **sav,
317 if (*sav) {
335 if ((*sav = key_newsav2(sah,
356 (*sav)->utun_pcb = (__typeof__((*sav)->utun_pcb))pcb;
357 (*sav)->utun_is_keepalive_fn = (__typeof__((*sav)->utun_is_keepalive_fn))utun_pkt_is_ipsec_keepalive;
358 (*sav)->utun_in_fn = (__typeof__((*sav)->utun_in_fn))utun_pkt_ipsec_input;
359 (*sav)->refcnt++; // for the pcb
367 utun_ipsec_free_sav (struct secasvar **sav)
370 if ((*sav)->utun_pcb) {
371 (*sav)->utun_pcb = NULL;
372 (*sav)->utun_is_keepalive_fn = NULL;
373 (*sav)->utun_in_fn = NULL;
375 (*sav)->refcnt--; // unlinked from pcb
376 key_sa_chgstate(*sav, SADB_SASTATE_DEAD);
377 key_freesav(*sav, KEY_SADB_LOCKED);
379 *sav = NULL;
386 struct secasvar *sav;
393 for (sav = LIST_FIRST(&(*sah)->savtree[state]);
394 sav != NULL;
395 sav = nextsav) {
396 nextsav = LIST_NEXT(sav, chain);
397 if (sav->state == SADB_SASTATE_LARVAL ||
398 sav->state == SADB_SASTATE_DYING ||
399 sav->state == SADB_SASTATE_DEAD) {
403 if (sav->utun_pcb) {
700 struct secasvar *sav;
710 (sav = IF_UTUN_GET_CRYPTO_KEYS_IPSEC_SAV(crypto_keys)) &&
711 sav->state == SADB_SASTATE_MATURE) {
745 if ((err = ipsec4_encapsulate(new, sav))) {
754 if ((err = ipsec4_encapsulate_utun_esp_keepalive(pkt, sav))) {
764 ro = &sav->sah->sa_route;
811 if ((err = esp4_output(new, sav))) {
841 if ((err = ipsec6_encapsulate(new, sav))) {
850 if ((err = ipsec6_encapsulate_utun_esp_keepalive(pkt, sav))) {
860 ro = &sav->sah->sa_route;
908 if ((err = esp6_output(new, mtod(new, u_char *), new->m_next, sav))) {