Lines Matching refs:flow

131 	struct iked_flow	*flow;  in pfkey_couple()  local
161 TAILQ_FOREACH(flow, &sa->sa_flows, flow_entry) { in pfkey_couple()
162 if (!flow->flow_loaded && couple) in pfkey_couple()
163 (void)pfkey_flow_add(env, flow); in pfkey_couple()
164 else if (flow->flow_loaded && !couple) in pfkey_couple()
165 (void)pfkey_flow_delete(env, flow); in pfkey_couple()
188 pfkey_flow(struct iked *env, uint8_t satype, uint8_t action, struct iked_flow *flow) in pfkey_flow() argument
205 flow_src = &flow->flow_src; in pfkey_flow()
206 flow_dst = &flow->flow_dst; in pfkey_flow()
208 if (flow->flow_prenat.addr_af == flow_src->addr_af) { in pfkey_flow()
209 if (flow->flow_dir == IPSP_DIRECTION_IN) in pfkey_flow()
210 flow_dst = &flow->flow_prenat; in pfkey_flow()
212 flow_src = &flow->flow_prenat; in pfkey_flow()
271 if (action != SADB_X_DELFLOW && flow->flow_local != NULL) { in pfkey_flow()
272 memcpy(&slocal, &flow->flow_local->addr, sizeof(slocal)); in pfkey_flow()
275 memcpy(&speer, &flow->flow_peer->addr, sizeof(speer)); in pfkey_flow()
290 sa_flowtype.sadb_protocol_direction = flow->flow_dir; in pfkey_flow()
297 sa_protocol.sadb_protocol_proto = flow->flow_ipproto; in pfkey_flow()
317 if (action != SADB_X_DELFLOW && flow->flow_local != NULL) { in pfkey_flow()
331 sa_srcid = pfkey_id2ident(IKESA_SRCID(flow->flow_ikesa), in pfkey_flow()
335 sa_dstid = pfkey_id2ident(IKESA_DSTID(flow->flow_ikesa), in pfkey_flow()
339 if (flow->flow_rdomain >= 0) { in pfkey_flow()
344 sa_rdomain.sadb_x_rdomain_dom1 = flow->flow_rdomain; in pfkey_flow()
368 if (action != SADB_X_DELFLOW && flow->flow_local != NULL) { in pfkey_flow()
441 if (flow->flow_rdomain >= 0) { in pfkey_flow()
1481 pfkey_flow_add(struct iked *env, struct iked_flow *flow) in pfkey_flow_add() argument
1485 if (flow->flow_loaded) in pfkey_flow_add()
1488 if (pfkey_map(pfkey_satype, flow->flow_saproto, &satype) == -1) in pfkey_flow_add()
1491 if (pfkey_flow(env, satype, SADB_X_ADDFLOW, flow) == -1) in pfkey_flow_add()
1494 flow->flow_loaded = 1; in pfkey_flow_add()
1500 pfkey_flow_delete(struct iked *env, struct iked_flow *flow) in pfkey_flow_delete() argument
1504 if (!flow->flow_loaded) in pfkey_flow_delete()
1507 if (pfkey_map(pfkey_satype, flow->flow_saproto, &satype) == -1) in pfkey_flow_delete()
1510 if (pfkey_flow(env, satype, SADB_X_DELFLOW, flow) == -1) in pfkey_flow_delete()
1513 flow->flow_loaded = 0; in pfkey_flow_delete()
1881 struct iked_flow flow; in pfkey_process() local
1902 bzero(&flow, sizeof(flow)); in pfkey_process()
1923 flow.flow_peer = &peer; in pfkey_process()
1963 flow.flow_src.addr_af = ssrc->sa_family; in pfkey_process()
1964 flow.flow_src.addr_port = htons(socket_getport(ssrc)); in pfkey_process()
1965 if ((slen = ssrc->sa_len) > sizeof(flow.flow_src.addr)) { in pfkey_process()
1969 memcpy(&flow.flow_src.addr, ssrc, slen); in pfkey_process()
1970 if (socket_af((struct sockaddr *)&flow.flow_src.addr, in pfkey_process()
1971 flow.flow_src.addr_port) == -1) { in pfkey_process()
1982 flow.flow_dst.addr_af = sdst->sa_family; in pfkey_process()
1983 flow.flow_dst.addr_port = htons(socket_getport(sdst)); in pfkey_process()
1984 if ((slen = sdst->sa_len) > sizeof(flow.flow_dst.addr)) { in pfkey_process()
1988 memcpy(&flow.flow_dst.addr, sdst, slen); in pfkey_process()
1989 if (socket_af((struct sockaddr *)&flow.flow_dst.addr, in pfkey_process()
1990 flow.flow_dst.addr_port) == -1) { in pfkey_process()
2003 flow.flow_src.addr_mask = in pfkey_process()
2005 if (flow.flow_src.addr_mask != 32) in pfkey_process()
2006 flow.flow_src.addr_net = 1; in pfkey_process()
2009 flow.flow_src.addr_mask = in pfkey_process()
2011 if (flow.flow_src.addr_mask != 128) in pfkey_process()
2012 flow.flow_src.addr_net = 1; in pfkey_process()
2027 flow.flow_dst.addr_mask = in pfkey_process()
2029 if (flow.flow_src.addr_mask != 32) in pfkey_process()
2030 flow.flow_src.addr_net = 1; in pfkey_process()
2033 flow.flow_dst.addr_mask = in pfkey_process()
2035 if (flow.flow_src.addr_mask != 128) in pfkey_process()
2036 flow.flow_src.addr_net = 1; in pfkey_process()
2045 flow.flow_saproto = IKEV2_SAPROTO_AH; in pfkey_process()
2048 flow.flow_saproto = IKEV2_SAPROTO_ESP; in pfkey_process()
2051 flow.flow_saproto = IKEV2_SAPROTO_IPCOMP; in pfkey_process()
2060 flow.flow_dir = sa_proto->sadb_protocol_direction; in pfkey_process()
2061 flow.flow_rdomain = -1; /* XXX get from kernel */ in pfkey_process()
2064 flow.flow_dir == IPSP_DIRECTION_IN ? "in" : "out", in pfkey_process()
2069 ret = ikev2_child_sa_acquire(env, &flow); in pfkey_process()