Lines Matching defs:inp
178 udp6_notify(struct inpcb *inp, int errno)
180 inp->inp_socket->so_error = errno;
181 sorwakeup(inp->inp_socket);
182 sowwakeup(inp->inp_socket);
305 struct inpcb *inp;
336 inp = sotoinpcb(so);
346 inp->inp_flags &= ~IN6P_ESPINUDP;
350 inp->inp_flags |= IN6P_ESPINUDP;
381 struct inpcb *inp;
385 inp = sotoinpcb(so);
386 KASSERT(inp != NULL);
389 if (ipsec_used && ipsec_in_reject(m, inp)) {
398 if (inp->inp_flags & IN6P_CONTROLOPTS ||
399 SOOPT_TIMESTAMP(inp->inp_socket->so_options)) {
401 ip6_savecontrol(inp, &opts, ip6, n);
423 struct inpcb *inp;
470 TAILQ_FOREACH(inp, &udbtable.inpt_queue, inp_queue) {
471 if (inp->inp_af != AF_INET6)
474 if (inp->inp_lport != dport)
476 if (!IN6_IS_ADDR_UNSPECIFIED(&in6p_laddr(inp))) {
477 if (!IN6_ARE_ADDR_EQUAL(&in6p_laddr(inp),
482 (inp->inp_flags & IN6P_IPV6_V6ONLY))
485 if (!IN6_IS_ADDR_UNSPECIFIED(&in6p_faddr(inp))) {
486 if (!IN6_ARE_ADDR_EQUAL(&in6p_faddr(inp),
487 &src6) || inp->inp_fport != sport)
491 (inp->inp_flags & IN6P_IPV6_V6ONLY))
495 udp6_sendup(m, off, sin6tosa(src), inp->inp_socket);
506 if ((inp->inp_socket->so_options &
514 inp = in6pcb_lookup(&udbtable, &src6, sport, dst6,
516 if (inp == NULL) {
518 inp = in6pcb_lookup_bound(&udbtable, dst6, dport, 0);
519 if (inp == NULL)
525 if (inp->inp_flags & IN6P_ESPINUDP) {
549 if (inp->inp_overudp_cb != NULL) {
551 ret = inp->inp_overudp_cb(mp, off, inp->inp_socket,
552 sin6tosa(src), inp->inp_overudp_arg);
575 udp6_sendup(m, off, sin6tosa(src), inp->inp_socket);
734 udp6_output(struct inpcb * const inp, struct mbuf *m,
793 in6p_outputopts(inp), l->l_cred, IPPROTO_UDP)) != 0)
797 optp = in6p_outputopts(inp);
813 if (!IN6_IS_ADDR_UNSPECIFIED(&in6p_faddr(inp))) {
823 if ((inp->inp_flags & IN6P_IPV6_V6ONLY)) {
837 if (!IN6_IS_ADDR_UNSPECIFIED(&in6p_laddr(inp)) &&
838 !IN6_IS_ADDR_V4MAPPED(&in6p_laddr(inp))) {
857 in6p_moptions(inp),
858 &inp->inp_route,
859 &in6p_laddr(inp), &oifp, &psref, &_laddr);
880 if (IN6_IS_ADDR_UNSPECIFIED(&in6p_laddr(inp))) {
890 ia4 = in_selectsrc(&sin_dst, &inp->inp_route,
891 inp->inp_socket->so_options, NULL,
909 laddr = &in6p_laddr(inp); /* XXX */
917 if (inp->inp_lport == 0) {
924 *((const struct sockaddr_in6 *)inp->inp_socket->so_proto->pr_domain->dom_sa_any);
930 error = in6pcb_set_port(&lsin6, inp, l);
933 in6p_laddr(inp) = in6addr_any;
938 if (IN6_IS_ADDR_UNSPECIFIED(&in6p_faddr(inp))) {
942 if (IN6_IS_ADDR_V4MAPPED(&in6p_faddr(inp))) {
943 if ((inp->inp_flags & IN6P_IPV6_V6ONLY))
959 laddr = &in6p_laddr(inp);
960 faddr = &in6p_faddr(inp);
961 fport = inp->inp_fport;
981 udp6->uh_sport = inp->inp_lport; /* lport is always set in the PCB */
992 ip6->ip6_flow = in6p_flowinfo(inp) & IPV6_FLOWINFO_MASK;
999 ip6->ip6_hlim = in6pcb_selecthlim_rt(inp);
1009 error = ip6_output(m, optp, &inp->inp_route, 0,
1010 in6p_moptions(inp), inp, NULL);
1028 flags = (inp->inp_socket->so_options &
1037 ip->ip_ttl = in6pcb_selecthlim(inp, NULL); /* XXX */
1041 error = ip_output(m, NULL, &inp->inp_route, flags /* XXX */,
1042 inp->inp_moptions, NULL);
1066 struct inpcb *inp;
1088 inp = sotoinpcb(so);
1089 in6p_cksum(inp) = -1; /* just to be sure */
1098 struct inpcb *inp = sotoinpcb(so);
1102 KASSERT(inp != NULL);
1105 inpcb_destroy(inp);
1120 struct inpcb *inp = sotoinpcb(so);
1126 KASSERT(inp != NULL);
1129 error = in6pcb_bind(inp, sin6, l);
1145 struct inpcb *inp = sotoinpcb(so);
1150 KASSERT(inp != NULL);
1152 if (!IN6_IS_ADDR_UNSPECIFIED(&in6p_faddr(inp)))
1155 error = in6pcb_connect(inp, (struct sockaddr_in6 *)nam, l);
1174 struct inpcb *inp = sotoinpcb(so);
1178 KASSERT(inp != NULL);
1180 if (IN6_IS_ADDR_UNSPECIFIED(&in6p_faddr(inp)))
1184 in6pcb_disconnect(inp);
1185 memset((void *)&in6p_laddr(inp), 0, sizeof(in6p_laddr(inp)));
1189 in6pcb_set_state(inp, INP_BOUND); /* XXX */
1288 struct inpcb *inp = sotoinpcb(so);
1293 KASSERT(inp != NULL);
1297 error = udp6_output(inp, m, (struct sockaddr_in6 *)nam, control, l);