Lines Matching refs:icmp_param

353 	struct icmp_bxm *icmp_param = (struct icmp_bxm *)from;  in icmp_glue_bits()  local
356 csum = skb_copy_and_csum_bits(icmp_param->skb, in icmp_glue_bits()
357 icmp_param->offset + offset, in icmp_glue_bits()
361 if (icmp_pointers[icmp_param->data.icmph.type].error) in icmp_glue_bits()
362 nf_ct_attach(skb, icmp_param->skb); in icmp_glue_bits()
366 static void icmp_push_reply(struct icmp_bxm *icmp_param, in icmp_push_reply() argument
374 if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, in icmp_push_reply()
375 icmp_param->data_len+icmp_param->head_len, in icmp_push_reply()
376 icmp_param->head_len, in icmp_push_reply()
385 csum = csum_partial_copy_nocheck((void *)&icmp_param->data, in icmp_push_reply()
387 icmp_param->head_len); in icmp_push_reply()
401 static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb) in icmp_reply() argument
411 int type = icmp_param->data.icmph.type; in icmp_reply()
412 int code = icmp_param->data.icmph.code; in icmp_reply()
414 if (ip_options_echo(net, &icmp_param->replyopts.opt.opt, skb)) in icmp_reply()
429 icmp_param->data.icmph.checksum = 0; in icmp_reply()
437 if (icmp_param->replyopts.opt.opt.optlen) { in icmp_reply()
438 ipc.opt = &icmp_param->replyopts.opt; in icmp_reply()
440 daddr = icmp_param->replyopts.opt.opt.faddr; in icmp_reply()
455 icmp_push_reply(icmp_param, &fl4, &ipc, &rt); in icmp_reply()
596 struct icmp_bxm icmp_param; in __icmp_send() local
720 if (__ip_options_echo(net, &icmp_param.replyopts.opt.opt, skb_in, opt)) in __icmp_send()
728 icmp_param.data.icmph.type = type; in __icmp_send()
729 icmp_param.data.icmph.code = code; in __icmp_send()
730 icmp_param.data.icmph.un.gateway = info; in __icmp_send()
731 icmp_param.data.icmph.checksum = 0; in __icmp_send()
732 icmp_param.skb = skb_in; in __icmp_send()
733 icmp_param.offset = skb_network_offset(skb_in); in __icmp_send()
737 ipc.opt = &icmp_param.replyopts.opt; in __icmp_send()
741 type, code, &icmp_param); in __icmp_send()
754 room -= sizeof(struct iphdr) + icmp_param.replyopts.opt.opt.optlen; in __icmp_send()
757 icmp_param.data_len = skb_in->len - icmp_param.offset; in __icmp_send()
758 if (icmp_param.data_len > room) in __icmp_send()
759 icmp_param.data_len = room; in __icmp_send()
760 icmp_param.head_len = sizeof(struct icmphdr); in __icmp_send()
769 icmp_push_reply(&icmp_param, &fl4, &ipc, &rt); in __icmp_send()
996 struct icmp_bxm icmp_param; in icmp_echo() local
1004 icmp_param.data.icmph = *icmp_hdr(skb); in icmp_echo()
1005 icmp_param.skb = skb; in icmp_echo()
1006 icmp_param.offset = 0; in icmp_echo()
1007 icmp_param.data_len = skb->len; in icmp_echo()
1008 icmp_param.head_len = sizeof(struct icmphdr); in icmp_echo()
1010 if (icmp_param.data.icmph.type == ICMP_ECHO) in icmp_echo()
1011 icmp_param.data.icmph.type = ICMP_ECHOREPLY; in icmp_echo()
1012 else if (!icmp_build_probe(skb, &icmp_param.data.icmph)) in icmp_echo()
1015 icmp_reply(&icmp_param, skb); in icmp_echo()
1136 struct icmp_bxm icmp_param; in icmp_timestamp() local
1146 icmp_param.data.times[1] = inet_current_timestamp(); in icmp_timestamp()
1147 icmp_param.data.times[2] = icmp_param.data.times[1]; in icmp_timestamp()
1149 BUG_ON(skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4)); in icmp_timestamp()
1151 icmp_param.data.icmph = *icmp_hdr(skb); in icmp_timestamp()
1152 icmp_param.data.icmph.type = ICMP_TIMESTAMPREPLY; in icmp_timestamp()
1153 icmp_param.data.icmph.code = 0; in icmp_timestamp()
1154 icmp_param.skb = skb; in icmp_timestamp()
1155 icmp_param.offset = 0; in icmp_timestamp()
1156 icmp_param.data_len = 0; in icmp_timestamp()
1157 icmp_param.head_len = sizeof(struct icmphdr) + 12; in icmp_timestamp()
1158 icmp_reply(&icmp_param, skb); in icmp_timestamp()