• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/net/ipv4/

Lines Matching refs:icmp_param

313 	struct icmp_bxm *icmp_param = (struct icmp_bxm *)from;
316 csum = skb_copy_and_csum_bits(icmp_param->skb,
317 icmp_param->offset + offset,
321 if (icmp_pointers[icmp_param->data.icmph.type].error)
322 nf_ct_attach(skb, icmp_param->skb);
326 static void icmp_push_reply(struct icmp_bxm *icmp_param,
333 if (ip_append_data(sk, icmp_glue_bits, icmp_param,
334 icmp_param->data_len+icmp_param->head_len,
335 icmp_param->head_len,
347 csum = csum_partial_copy_nocheck((void *)&icmp_param->data,
349 icmp_param->head_len, csum);
360 static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb)
369 if (ip_options_echo(&icmp_param->replyopts, skb))
377 icmp_param->data.icmph.checksum = 0;
383 if (icmp_param->replyopts.optlen) {
384 ipc.opt = &icmp_param->replyopts;
386 daddr = icmp_param->replyopts.faddr;
398 if (icmpv4_xrlim_allow(net, rt, icmp_param->data.icmph.type,
399 icmp_param->data.icmph.code))
400 icmp_push_reply(icmp_param, &ipc, &rt);
422 struct icmp_bxm icmp_param;
524 if (ip_options_echo(&icmp_param.replyopts, skb_in))
532 icmp_param.data.icmph.type = type;
533 icmp_param.data.icmph.code = code;
534 icmp_param.data.icmph.un.gateway = info;
535 icmp_param.data.icmph.checksum = 0;
536 icmp_param.skb = skb_in;
537 icmp_param.offset = skb_network_offset(skb_in);
540 ipc.opt = &icmp_param.replyopts;
547 .daddr = icmp_param.replyopts.srr ?
548 icmp_param.replyopts.faddr :
637 room -= sizeof(struct iphdr) + icmp_param.replyopts.optlen;
640 icmp_param.data_len = skb_in->len - icmp_param.offset;
641 if (icmp_param.data_len > room)
642 icmp_param.data_len = room;
643 icmp_param.head_len = sizeof(struct icmphdr);
645 icmp_push_reply(&icmp_param, &ipc, &rt);
833 struct icmp_bxm icmp_param;
835 icmp_param.data.icmph = *icmp_hdr(skb);
836 icmp_param.data.icmph.type = ICMP_ECHOREPLY;
837 icmp_param.skb = skb;
838 icmp_param.offset = 0;
839 icmp_param.data_len = skb->len;
840 icmp_param.head_len = sizeof(struct icmphdr);
841 icmp_reply(&icmp_param, skb);
855 struct icmp_bxm icmp_param;
866 icmp_param.data.times[1] = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC +
868 icmp_param.data.times[2] = icmp_param.data.times[1];
869 if (skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4))
871 icmp_param.data.icmph = *icmp_hdr(skb);
872 icmp_param.data.icmph.type = ICMP_TIMESTAMPREPLY;
873 icmp_param.data.icmph.code = 0;
874 icmp_param.skb = skb;
875 icmp_param.offset = 0;
876 icmp_param.data_len = 0;
877 icmp_param.head_len = sizeof(struct icmphdr) + 12;
878 icmp_reply(&icmp_param, skb);