• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/kernel/power/

Lines Matching refs:fin

333 ipf_send_reset(fr_info_t *fin)
343 tcp = fin->fin_dp;
347 if (ipf_checkl4sum(fin) == -1)
350 tlen = fin->fin_dlen - (TCP_OFF(tcp) << 2) +
355 hlen = (fin->fin_v == 6) ? sizeof(ip6_t) : sizeof(ip_t);
403 if (fin->fin_v == 6) {
404 ip6->ip6_flow = ((ip6_t *)fin->fin_ip)->ip6_flow;
408 ip6->ip6_src = fin->fin_dst6.in6;
409 ip6->ip6_dst = fin->fin_src6.in6;
412 return (ipf_send_ip(fin, m));
417 ip->ip_src.s_addr = fin->fin_daddr;
418 ip->ip_dst.s_addr = fin->fin_saddr;
421 return (ipf_send_ip(fin, m));
429 ipf_send_ip(fr_info_t *fin, mb_t *m)
437 fnew.fin_main_soft = fin->fin_main_soft;
439 IP_V_A(ip, fin->fin_v);
440 switch (fin->fin_v)
443 oip = fin->fin_ip;
450 ip->ip_id = fin->fin_ip->ip_id;
477 fnew.fin_ifp = fin->fin_ifp;
491 ipf_send_icmp_err(int type, fr_info_t *fin, int dst)
507 code = fin->fin_icode;
514 if (ipf_checkl4sum(fin) == -1)
529 ifp = fin->fin_ifp;
530 if (fin->fin_v == 4) {
531 if ((fin->fin_p == IPPROTO_ICMP) && !(fin->fin_flx & FI_SHORT))
532 switch (ntohs(fin->fin_data[0]) >> 8)
552 dst4.s_addr = fin->fin_daddr;
555 ohlen = fin->fin_hlen;
557 if (fin->fin_hlen < fin->fin_plen)
558 xtra = MIN(fin->fin_dlen, 8);
564 else if (fin->fin_v == 6) {
572 if (iclen + max_linkhdr + fin->fin_plen > avail) {
579 xtra = MIN(fin->fin_plen, avail - iclen - max_linkhdr);
588 dst6 = fin->fin_dst6;
613 icmp->icmp_code = fin->fin_icode;
616 if (type == ICMP_UNREACH && fin->fin_icode == ICMP_UNREACH_NEEDFRAG) {
617 if (fin->fin_mtu != 0) {
618 icmp->icmp_nextmtu = htons(fin->fin_mtu);
624 icmp->icmp_nextmtu = htons(fin->fin_plen - 20);
629 bcopy((char *)fin->fin_ip, (char *)ip2, ohlen);
633 if (fin->fin_v == 6) {
634 ip6->ip6_flow = ((ip6_t *)fin->fin_ip)->ip6_flow;
639 ip6->ip6_dst = fin->fin_src6.in6;
641 bcopy((char *)fin->fin_ip + ohlen,
650 ip->ip_dst.s_addr = fin->fin_saddr;
653 bcopy((char *)fin->fin_ip + ohlen,
660 err = ipf_send_ip(fin, m);
672 ipf_fastroute(mb_t *m0, mb_t **mpp, fr_info_t *fin, frdest_t *fdp)
714 if (fin->fin_v == 6) {
723 hlen = fin->fin_hlen;
737 fr = fin->fin_fr;
740 if (ipf_dstlist_select_node(fin, fdp->fd_ptr, NULL, &node) == 0)
747 ifp = fin->fin_ifp;
782 if ((fdp != &fr->fr_dif) && (fin->fin_out == 0)) {
783 sifp = fin->fin_ifp;
784 fin->fin_ifp = ifp;
785 fin->fin_out = 1;
786 (void) ipf_acctpkt(fin, NULL);
787 fin->fin_fr = NULL;
791 (void) ipf_state_check(fin, &pass);
794 switch (ipf_nat_checkout(fin, NULL))
807 fin->fin_ifp = sifp;
808 fin->fin_out = 0;
911 sifp = fin->fin_ifp;
912 code = fin->fin_icode;
913 fin->fin_icode = ICMP_UNREACH_NEEDFRAG;
914 fin->fin_ifp = ifp;
915 (void) ipf_send_icmp_err(ICMP_UNREACH, fin, 1);
916 fin->fin_ifp = sifp;
917 fin->fin_icode = code;
925 ipf_verifysrc(fr_info_t *fin)
930 nh = fib4_lookup(RT_DEFAULT_FIB, fin->fin_src, 0, NHR_NONE, 0);
933 return (fin->fin_ifp == nh->nh_ifp);
1010 ipf_newisn(fr_info_t *fin)
1019 ipf_checkv4sum(fr_info_t *fin)
1027 if ((fin->fin_flx & FI_NOCKSUM) != 0)
1030 if ((fin->fin_flx & FI_SHORT) != 0)
1033 if (fin->fin_cksum != FI_CK_NEEDED)
1034 return (fin->fin_cksum > FI_CK_NEEDED) ? 0 : -1;
1036 m = fin->fin_m;
1041 ip = fin->fin_ip;
1045 fin->fin_cksum = FI_CK_BAD;
1046 fin->fin_flx |= FI_BAD;
1047 DT2(ipf_fi_bad_checkv4sum_csum_ip_checked, fr_info_t *, fin, u_int, m->m_pkthdr.csum_flags & (CSUM_IP_CHECKED|CSUM_IP_VALID));
1052 if (fin->fin_p == IPPROTO_UDP && (fin->fin_flx &
1054 udphdr_t *udp = fin->fin_dp;
1062 fin->fin_cksum = 1;
1072 fin->fin_dlen + fin->fin_p));
1075 fin->fin_cksum = FI_CK_BAD;
1076 fin->fin_flx |= FI_BAD;
1077 DT2(ipf_fi_bad_checkv4sum_sum, fr_info_t *, fin, u_int, sum);
1079 fin->fin_cksum = FI_CK_SUMOK;
1084 fin->fin_cksum = FI_CK_L4FULL;
1089 fin->fin_cksum = FI_CK_L4PART;
1097 if (ipf_checkl4sum(fin) == -1) {
1098 fin->fin_flx |= FI_BAD;
1099 DT2(ipf_fi_bad_checkv4sum_manual, fr_info_t *, fin, u_int, manual);
1104 if (ipf_checkl4sum(fin) == -1) {
1105 fin->fin_flx |= FI_BAD;
1106 DT2(ipf_fi_bad_checkv4sum_checkl4sum, fr_info_t *, fin, u_int, -1);
1116 ipf_checkv6sum(fr_info_t *fin)
1118 if ((fin->fin_flx & FI_NOCKSUM) != 0) {
1123 if ((fin->fin_flx & FI_SHORT) != 0) {
1128 if (fin->fin_cksum != FI_CK_NEEDED) {
1130 return (fin->fin_cksum > FI_CK_NEEDED) ? 0 : -1;
1133 if (ipf_checkl4sum(fin) == -1) {
1134 fin->fin_flx |= FI_BAD;
1135 DT2(ipf_fi_bad_checkv6sum_checkl4sum, fr_info_t *, fin, u_int, -1);
1164 /* fin(I) - pointer to packet information */
1175 /* of buffers that starts at *fin->fin_mp. */
1178 ipf_pullup(mb_t *xmin, fr_info_t *fin, int len)
1187 ip = fin->fin_ip;
1188 if ((fin->fin_flx & FI_COALESCE) != 0)
1191 ipoff = fin->fin_ipoff;
1192 if (fin->fin_dp != NULL)
1193 dpoff = (char *)fin->fin_dp - (char *)ip;
1198 mb_t *n = *fin->fin_mp;
1226 FREE_MB_T(*fin->fin_mp);
1244 FREE_MB_T(*fin->fin_mp);
1247 *fin->fin_mp = NULL;
1248 fin->fin_m = NULL;
1253 *fin->fin_mp = m;
1258 fin->fin_m = m;
1261 fin->fin_ip = ip;
1262 if (fin->fin_dp != NULL)
1263 fin->fin_dp = (char *)fin->fin_ip + dpoff;
1264 if (fin->fin_fraghdr != NULL)
1265 fin->fin_fraghdr = (char *)ip +
1266 ((char *)fin->fin_fraghdr -
1267 (char *)fin->fin_ip);
1270 if (len == fin->fin_plen)
1271 fin->fin_flx |= FI_COALESCE;
1277 ipf_inject(fr_info_t *fin, mb_t *m)
1283 if (fin->fin_out == 0) {
1286 fin->fin_ip->ip_len = ntohs(fin->fin_ip->ip_len);
1287 fin->fin_ip->ip_off = ntohs(fin->fin_ip->ip_off);
1394 ipf_pcksum(fr_info_t *fin, int hlen, u_int sum)
1400 m = fin->fin_m;
1401 off = (char *)fin->fin_dp - (char *)fin->fin_ip;
1404 sum2 = in_cksum(fin->fin_m, fin->fin_plen - off);
1452 return (ipf_pcksum(fin, off, sum));