taglinefilesource code
sopt98include/net/ip.hextern int    ip_options_echo(struct options * dopt, struct options * sopt,
sopt143include/net/ip.hextern int ip_options_echo(struct options *dopt, struct options *sopt, __u32 daddr, __u32 saddr, struct sk_buff *skb);
sopt73net/ipv4/ip_options.cint ip_options_echo(struct options * dopt, struct options * sopt,
sopt85net/ipv4/ip_options.cif (!sopt)
sopt86net/ipv4/ip_options.csopt = (struct options*)skb->proto_priv;
sopt88net/ipv4/ip_options.cif (sopt->optlen == 0) 
sopt94net/ipv4/ip_options.csptr = (sopt->is_data ? sopt->__data - sizeof(struct iphdr) :
sopt98net/ipv4/ip_options.cif (sopt->rr) 
sopt100net/ipv4/ip_options.coptlen  = sptr[sopt->rr+1];
sopt101net/ipv4/ip_options.csoffset = sptr[sopt->rr+2];
sopt103net/ipv4/ip_options.cmemcpy(dptr, sptr+sopt->rr, optlen);
sopt104net/ipv4/ip_options.cif (sopt->rr_needaddr && soffset <= optlen) {
sopt113net/ipv4/ip_options.cif (sopt->ts) 
sopt115net/ipv4/ip_options.coptlen = sptr[sopt->ts+1];
sopt116net/ipv4/ip_options.csoffset = sptr[sopt->ts+2];
sopt118net/ipv4/ip_options.cmemcpy(dptr, sptr+sopt->ts, optlen);
sopt121net/ipv4/ip_options.cif (sopt->ts_needaddr) 
sopt128net/ipv4/ip_options.cif (sopt->ts_needtime) 
sopt151net/ipv4/ip_options.cif (sopt->srr) 
sopt153net/ipv4/ip_options.cunsigned char * start = sptr+sopt->srr;
sopt183net/ipv4/ip_options.cdopt->is_strictroute = sopt->is_strictroute;