taglinefilesource code
iph113arch/alpha/lib/checksum.cunsigned short ip_fast_csum(unsigned char * iph, unsigned int ihl)
iph115arch/alpha/lib/checksum.creturn ~do_csum(iph,ihl*4);
iph1146drivers/net/ppp.cstruct iphdr *iph = (struct iphdr *) c;
iph1148drivers/net/ppp.ciph->saddr, iph->daddr, count))
iph1793drivers/net/ppp.cstruct iphdr *iph = (struct iphdr *)skb->data;
iph1795drivers/net/ppp.cdev->name, (int) proto, (int) len, (int) iph->saddr,
iph1796drivers/net/ppp.c(int) iph->daddr, (int) iph->protocol))
iph125drivers/net/tunnel.cstruct iphdr *iph;    /* Our new IP header */
iph161drivers/net/tunnel.ciph=(struct iphdr *)skb->data;
iph162drivers/net/tunnel.cif ( iph->version != 4 ) 
iph167drivers/net/tunnel.cprintk("%s: Bad IP packet: ip version %d\n", dev->name, iph->version);
iph178drivers/net/tunnel.cif ( iph->protocol == IPPROTO_IPIP && iph->saddr == dev->pa_addr ) 
iph189drivers/net/tunnel.cif ( iph->daddr == dev->pa_addr ) 
iph199drivers/net/tunnel.cprint_ip(iph);
iph219drivers/net/tunnel.ciph=skb2->h.iph=(struct iphdr *)skb2->data;
iph220drivers/net/tunnel.cmemcpy(skb2->h.iph, skb->data, ip_header_len );
iph226drivers/net/tunnel.c++iph->ttl;  /* Note: ip_forward() decrements ttl, so compensate */
iph227drivers/net/tunnel.ciph->saddr = dev->pa_addr;
iph228drivers/net/tunnel.ciph->daddr = dev->pa_dstaddr;
iph229drivers/net/tunnel.ciph->protocol = IPPROTO_IPIP;
iph230drivers/net/tunnel.ciph->ihl = 5;
iph231drivers/net/tunnel.ciph->tot_len = htons(skb2->len);
iph232drivers/net/tunnel.ciph->frag_off = 0;
iph236drivers/net/tunnel.ciph->check = 0;
iph237drivers/net/tunnel.ciph->check = ip_fast_csum((unsigned char *)iph, iph->ihl);
iph241drivers/net/tunnel.cprint_ip(iph);
iph247drivers/net/tunnel.cif(ip_forward(skb2, dev, 0, iph->daddr, 0))
iph9include/asm-alpha/checksum.hextern unsigned short ip_fast_csum(unsigned char * iph, unsigned int ihl);
iph45include/asm-i386/checksum.hstatic inline unsigned short ip_fast_csum(unsigned char * iph,
iph68include/asm-i386/checksum.h: "=&r" (sum), "=&r" (iph), "=&r" (ihl)
iph69include/asm-i386/checksum.h: "1" (iph), "2" (ihl));
iph54include/linux/skbuff.hstruct iphdr  *iph;
iph64include/net/ip.hstruct iphdr  *iph;    /* pointer to IP header      */
iph104net/ipv4/icmp.cstruct iphdr *iph;
iph116net/ipv4/icmp.ciph = (struct iphdr *) skb_in->data;
iph129net/ipv4/icmp.catype=ip_chk_addr(iph->daddr);
iph137net/ipv4/icmp.cif(ntohs(iph->frag_off)&IP_OFFSET)
iph151net/ipv4/icmp.cif(iph->protocol==IPPROTO_ICMP)
iph153net/ipv4/icmp.cicmph = (struct icmphdr *) ((char *) iph +
iph154net/ipv4/icmp.c4 * iph->ihl);
iph230net/ipv4/icmp.cif (iph->daddr != our_addr && ip_chk_addr(iph->daddr) == IS_MYADDR)
iph231net/ipv4/icmp.cour_addr = iph->daddr;
iph232net/ipv4/icmp.coffset = ip_build_header(skb, our_addr, iph->saddr,
iph260net/ipv4/icmp.cmemcpy(icmph + 1, iph, sizeof(struct iphdr) + 8);
iph279net/ipv4/icmp.cstruct iphdr *iph;
iph284net/ipv4/icmp.ciph = (struct iphdr *) (icmph + 1);
iph295net/ipv4/icmp.cin_ntoa(iph->daddr), ntohs(iph->protocol));
iph303net/ipv4/icmp.cin_ntoa(iph->daddr));
iph308net/ipv4/icmp.cprintk("ICMP: %s: Source Route Failed.\n", in_ntoa(iph->daddr));
iph319net/ipv4/icmp.chash = iph->protocol & (MAX_INET_PROTOS -1);
iph335net/ipv4/icmp.cif (iph->protocol == ipprot->protocol && ipprot->err_handler) 
iph338net/ipv4/icmp.ciph->daddr, iph->saddr, ipprot);
iph357net/ipv4/icmp.cstruct iphdr *iph;
iph364net/ipv4/icmp.ciph = (struct iphdr *) (icmph + 1);
iph365net/ipv4/icmp.cip = iph->daddr;
iph218net/ipv4/ip.cstruct iphdr *iph;
iph312net/ipv4/ip.ciph=(struct iphdr *)skb_put(skb,sizeof(struct iphdr));
iph314net/ipv4/ip.ciph->version  = 4;
iph315net/ipv4/ip.ciph->ihl      = 5;
iph316net/ipv4/ip.ciph->tos      = tos;
iph317net/ipv4/ip.ciph->frag_off = 0;
iph318net/ipv4/ip.ciph->ttl      = ttl;
iph319net/ipv4/ip.ciph->daddr    = daddr;
iph320net/ipv4/ip.ciph->saddr    = saddr;
iph321net/ipv4/ip.ciph->protocol = type;
iph322net/ipv4/ip.cskb->ip_hdr   = iph;
iph332net/ipv4/ip.cvoid ip_send_check(struct iphdr *iph)
iph334net/ipv4/ip.ciph->check = 0;
iph335net/ipv4/ip.ciph->check = ip_fast_csum((unsigned char *)iph, iph->ihl);
iph380net/ipv4/ip.cstatic struct ipq *ip_find(struct iphdr *iph)
iph389net/ipv4/ip.cif (iph->id== qp->iph->id && iph->saddr == qp->iph->saddr &&
iph390net/ipv4/ip.ciph->daddr == qp->iph->daddr && iph->protocol == qp->iph->protocol)
iph447net/ipv4/ip.ckfree_s(qp->iph, 64 + 8);
iph490net/ipv4/ip.cstatic struct ipq *ip_create(struct sk_buff *skb, struct iphdr *iph, struct device *dev)
iph508net/ipv4/ip.cihlen = iph->ihl * 4;
iph509net/ipv4/ip.cqp->iph = (struct iphdr *) kmalloc(64 + 8, GFP_ATOMIC);
iph510net/ipv4/ip.cif (qp->iph == NULL)
iph517net/ipv4/ip.cmemcpy(qp->iph, iph, ihlen + 8);
iph581net/ipv4/ip.cstruct iphdr *iph;
iph606net/ipv4/ip.cmemcpy(ptr, ((unsigned char *) qp->iph), qp->ihlen);
iph632net/ipv4/ip.ciph = skb->h.iph;
iph633net/ipv4/ip.ciph->frag_off = 0;
iph634net/ipv4/ip.ciph->tot_len = htons((iph->ihl * 4) + count);
iph635net/ipv4/ip.cskb->ip_hdr = iph;
iph646net/ipv4/ip.cstatic struct sk_buff *ip_defrag(struct iphdr *iph, struct sk_buff *skb, struct device *dev)
iph659net/ipv4/ip.cqp = ip_find(iph);
iph662net/ipv4/ip.coffset = ntohs(iph->frag_off);
iph693net/ipv4/ip.cif ((qp = ip_create(skb, iph, dev)) == NULL)
iph706net/ipv4/ip.cihl = iph->ihl * 4;
iph707net/ipv4/ip.cend = offset + ntohs(iph->tot_len) - ihl;
iph842net/ipv4/ip.cstruct iphdr *iph;
iph855net/ipv4/ip.ciph = (struct iphdr *) (raw + dev->hard_header_len);
iph857net/ipv4/ip.cskb->ip_hdr = iph;
iph863net/ipv4/ip.chlen = iph->ihl * 4;
iph864net/ipv4/ip.cleft = ntohs(iph->tot_len) - hlen;  /* Space per frame */
iph873net/ipv4/ip.cif (ntohs(iph->frag_off) & IP_DF)
iph907net/ipv4/ip.coffset = (ntohs(iph->frag_off) & IP_OFFSET) << 3;
iph982net/ipv4/ip.ciph = (struct iphdr *)(skb2->h.raw/*+dev->hard_header_len*/);
iph983net/ipv4/ip.ciph->frag_off = htons((offset >> 3));
iph989net/ipv4/ip.ciph->frag_off |= htons(IP_MF);
iph1015net/ipv4/ip.cstruct iphdr *iph;  /* Our header */
iph1031net/ipv4/ip.cfw_res=ip_fw_chk(skb->h.iph, dev, ip_fw_fwd_chain, ip_fw_fwd_policy, 0);
iph1057net/ipv4/ip.ciph = skb->h.iph;
iph1058net/ipv4/ip.ciph->ttl--;
iph1066net/ipv4/ip.ciph->check = ntohs(iph->check) + 0x0100;
iph1067net/ipv4/ip.cif ((iph->check & 0xFF00) == 0)
iph1068net/ipv4/ip.ciph->check++;    /* carry overflow */
iph1069net/ipv4/ip.ciph->check = htons(iph->check);
iph1071net/ipv4/ip.cif (iph->ttl <= 0)
iph1149net/ipv4/ip.cif (dev == dev2 && !((iph->saddr^iph->daddr)&dev->pa_mask) && (rt->rt_flags&RTF_MODIFIED))
iph1225net/ipv4/ip.cip_fw_chk(iph,dev,ip_acct_chain,IP_FW_F_ACCEPT,1);
iph1233net/ipv4/ip.cif(iph->tos & IPTOS_LOWDELAY)
iph1235net/ipv4/ip.celse if(iph->tos & IPTOS_THROUGHPUT)
iph1265net/ipv4/ip.cstruct iphdr *iph = skb->h.iph;
iph1284net/ipv4/ip.cskb->ip_hdr = iph;
iph1299net/ipv4/ip.cif (skb->len<sizeof(struct iphdr) || iph->ihl<5 || iph->version != 4 || ip_fast_csum((unsigned char *)iph, iph->ihl) !=0
iph1300net/ipv4/ip.c|| skb->len < ntohs(iph->tot_len))
iph1313net/ipv4/ip.cskb_trim(skb,ntohs(iph->tot_len));
iph1321net/ipv4/ip.cif ((err=ip_fw_chk(iph,dev,ip_fw_blk_chain,ip_fw_blk_policy, 0))<1)
iph1337net/ipv4/ip.ctarget_addr = iph->daddr;
iph1339net/ipv4/ip.cif (iph->ihl != 5)
iph1351net/ipv4/ip.cint opt_space=4*(iph->ihl-5);
iph1393net/ipv4/ip.cif (iph->daddr!=skb->dev->pa_addr && (brd = ip_chk_addr(iph->daddr)) == 0) 
iph1397net/ipv4/ip.cif(ip_chk_addr(iph->daddr))
iph1413net/ipv4/ip.cif(ip_chk_addr(iph->daddr))
iph1442net/ipv4/ip.cif(iph->frag_off)
iph1444net/ipv4/ip.cif (iph->frag_off & htons(IP_MF))
iph1450net/ipv4/ip.cif (iph->frag_off & htons(IP_OFFSET))
iph1466net/ipv4/ip.cif ( iph->daddr == skb->dev->pa_addr || (brd = ip_chk_addr(iph->daddr)) != 0)
iph1470net/ipv4/ip.cif(brd==IS_MULTICAST && iph->daddr!=IGMP_ALL_HOSTS && !(dev->flags&IFF_LOOPBACK))
iph1483net/ipv4/ip.cif(ip_mc->multiaddr==iph->daddr)
iph1497net/ipv4/ip.cstruct iphdr *iph=skb->h.iph;
iph1498net/ipv4/ip.cif(ip_forward(skb, dev, is_frag|4, iph->daddr, 0))
iph1509net/ipv4/ip.cip_fw_chk(iph,dev,ip_acct_chain,IP_FW_F_ACCEPT,1);
iph1519net/ipv4/ip.cskb=ip_defrag(iph,skb,dev);
iph1523net/ipv4/ip.ciph=skb->h.iph;
iph1530net/ipv4/ip.cskb->ip_hdr = iph;
iph1531net/ipv4/ip.cskb->h.raw += iph->ihl*4;
iph1539net/ipv4/ip.chash = iph->protocol & (SOCK_ARRAY_SIZE-1);
iph1549net/ipv4/ip.craw_sk=get_sock_raw(raw_sk, hash,  iph->saddr, iph->daddr);
iph1555net/ipv4/ip.csknext=get_sock_raw(raw_sk->next, hash, iph->saddr, iph->daddr);
iph1561net/ipv4/ip.craw_rcv(raw_sk, skb1, dev, iph->saddr,iph->daddr);
iph1580net/ipv4/ip.chash = iph->protocol & (MAX_INET_PROTOS -1);
iph1585net/ipv4/ip.cif (ipprot->protocol != iph->protocol)
iph1612net/ipv4/ip.cipprot->handler(skb2, dev, NULL, iph->daddr,
iph1613net/ipv4/ip.c(ntohs(iph->tot_len) - (iph->ihl * 4)),
iph1614net/ipv4/ip.ciph->saddr, 0, ipprot);
iph1626net/ipv4/ip.craw_rcv(raw_sk, skb, dev, iph->saddr, iph->daddr);
iph1725net/ipv4/ip.cstruct iphdr *iph;
iph1755net/ipv4/ip.ciph = (struct iphdr *)ptr;
iph1756net/ipv4/ip.cskb->ip_hdr = iph;
iph1757net/ipv4/ip.ciph->tot_len = ntohs(skb->len-dev->hard_header_len);
iph1760net/ipv4/ip.cif(ip_fw_chk(iph, dev, ip_fw_blk_chain, ip_fw_blk_policy, 0) != 1)
iph1770net/ipv4/ip.ciph->id      = htons(ip_id_count++);
iph1798net/ipv4/ip.cip_send_check(iph);
iph1862net/ipv4/ip.cip_fw_chk(iph,dev,ip_acct_chain,IP_FW_F_ACCEPT,1);
iph1871net/ipv4/ip.cif (MULTICAST(iph->daddr) && !(dev->flags&IFF_LOOPBACK))
iph1875net/ipv4/ip.cif(iph->daddr==IGMP_ALL_HOSTS)
iph1882net/ipv4/ip.cif(imc->multiaddr==iph->daddr)
iph1900net/ipv4/ip.cif((dev->flags&IFF_BROADCAST) && (iph->daddr==dev->pa_brdaddr||iph->daddr==0xFFFFFFFF) && !(dev->flags&IFF_LOOPBACK))
iph2347net/ipv4/ip.cstruct iphdr *iph;
iph2460net/ipv4/ip.cskb->ip_hdr=iph=(struct iphdr *)skb_put(skb,length);
iph2463net/ipv4/ip.ciph->version=4;
iph2464net/ipv4/ip.ciph->ihl=5;
iph2465net/ipv4/ip.ciph->tos=sk->ip_tos;
iph2466net/ipv4/ip.ciph->tot_len = htons(length);
iph2467net/ipv4/ip.ciph->id=htons(ip_id_count++);
iph2468net/ipv4/ip.ciph->frag_off = 0;
iph2469net/ipv4/ip.ciph->ttl=sk->ip_ttl;
iph2470net/ipv4/ip.ciph->protocol=type;
iph2471net/ipv4/ip.ciph->saddr=saddr;
iph2472net/ipv4/ip.ciph->daddr=daddr;
iph2473net/ipv4/ip.ciph->check=0;
iph2474net/ipv4/ip.ciph->check = ip_fast_csum((unsigned char *)iph, iph->ihl);
iph2475net/ipv4/ip.cgetfrag(frag,saddr,(void *)(iph+1),0, length-20);
iph2478net/ipv4/ip.cgetfrag(frag,saddr,(void *)iph,0,length);
iph2598net/ipv4/ip.cskb->ip_hdr = iph = (struct iphdr *)data;
iph2607net/ipv4/ip.ciph->version = 4;
iph2608net/ipv4/ip.ciph->ihl = 5; /* ugh */
iph2609net/ipv4/ip.ciph->tos = sk->ip_tos;
iph2610net/ipv4/ip.ciph->tot_len = htons(fraglen - fragheaderlen + iph->ihl*4);
iph2611net/ipv4/ip.ciph->id = id;
iph2612net/ipv4/ip.ciph->frag_off = htons(offset>>3);
iph2613net/ipv4/ip.ciph->frag_off |= mf;
iph2616net/ipv4/ip.ciph->ttl = sk->ip_mc_ttl;
iph2619net/ipv4/ip.ciph->ttl = sk->ip_ttl;
iph2620net/ipv4/ip.ciph->protocol = type;
iph2621net/ipv4/ip.ciph->check = 0;
iph2622net/ipv4/ip.ciph->saddr = saddr;
iph2623net/ipv4/ip.ciph->daddr = daddr;
iph2624net/ipv4/ip.ciph->check = ip_fast_csum((unsigned char *)iph, iph->ihl);
iph2625net/ipv4/ip.cdata += iph->ihl*4;
iph2646net/ipv4/ip.cip_fw_chk(iph, dev, ip_acct_chain, IP_FW_F_ACCEPT, 1);
iph520net/ipv4/ip_fw.cstruct iphdr *iph = skb->h.iph;
iph521net/ipv4/ip_fw.cstruct tcphdr *th = (struct tcphdr *)&(((char *)iph)[iph->ihl*4]);
iph580net/ipv4/ip_fw.cms->dst      = iph->daddr;
iph657net/ipv4/ip_fw.cstruct iphdr  *iph = skb->h.iph;
iph666net/ipv4/ip_fw.cif (iph->protocol!=IPPROTO_UDP && iph->protocol!=IPPROTO_TCP)
iph673net/ipv4/ip_fw.cportptr = (unsigned short *)&(((char *)iph)[iph->ihl*4]);
iph678net/ipv4/ip_fw.cstrProt[iph->protocol==IPPROTO_TCP],
iph679net/ipv4/ip_fw.cntohl(iph->saddr), ntohs(portptr[0]),
iph680net/ipv4/ip_fw.cntohl(iph->daddr), ntohs(portptr[1]));
iph684net/ipv4/ip_fw.cif (iph->protocol == ms->protocol &&
iph685net/ipv4/ip_fw.ciph->saddr == ms->src   && iph->daddr == ms->dst &&
iph706net/ipv4/ip_fw.cms->protocol = iph->protocol;
iph707net/ipv4/ip_fw.cms->src      = iph->saddr;
iph708net/ipv4/ip_fw.cms->dst      = iph->daddr;
iph718net/ipv4/ip_fw.ciph->saddr = dev->pa_addr; /* my own address */
iph725net/ipv4/ip_fw.cif (iph->protocol==IPPROTO_UDP) 
iph728net/ipv4/ip_fw.crecalc_check((struct udphdr *)portptr,iph->saddr,iph->daddr,size);
iph737net/ipv4/ip_fw.ciph = skb->h.iph;
iph738net/ipv4/ip_fw.cportptr = (unsigned short *)&(((char *)iph)[iph->ihl*4]);
iph752net/ipv4/ip_fw.ctcp_send_check(th,iph->saddr,iph->daddr,size,skb->sk);
iph755net/ipv4/ip_fw.cip_send_check(iph);
iph773net/ipv4/ip_fw.cstruct iphdr  *iph = skb_ptr->h.iph;
iph776net/ipv4/ip_fw.cstruct tcphdr   *th = (struct tcphdr *)(skb_ptr->h.raw+(iph->ihl<<2));
iph778net/ipv4/ip_fw.cif (iph->protocol!=IPPROTO_UDP && iph->protocol!=IPPROTO_TCP)
iph781net/ipv4/ip_fw.cportptr = (unsigned short *)&(((char *)iph)[iph->ihl*4]);
iph788net/ipv4/ip_fw.cstrProt[iph->protocol==IPPROTO_TCP],
iph789net/ipv4/ip_fw.cntohl(iph->saddr), ntohs(portptr[0]),
iph790net/ipv4/ip_fw.cntohl(iph->daddr), ntohs(portptr[1]));
iph804net/ipv4/ip_fw.cif (iph->protocol==ms->protocol &&
iph805net/ipv4/ip_fw.c(iph->saddr==ms->dst || iph->protocol==IPPROTO_UDP) && 
iph810net/ipv4/ip_fw.ciph->daddr = ms->src;
iph816net/ipv4/ip_fw.cif (iph->protocol==IPPROTO_UDP)
iph817net/ipv4/ip_fw.crecalc_check((struct udphdr *)portptr,iph->saddr,iph->daddr,size);
iph829net/ipv4/ip_fw.ctcp_send_check((struct tcphdr *)portptr,iph->saddr,iph->daddr,size,skb_ptr->sk);
iph831net/ipv4/ip_fw.cip_send_check(iph);
iph833net/ipv4/ip_fw.cprintk("I-routed to %lX:%X\n",ntohl(iph->daddr),ntohs(portptr[1]));
iph1192net/ipv4/ip_fw.cvoid ip_acct_cnt(struct iphdr *iph, struct device *dev, struct ip_fw *f)
iph1194net/ipv4/ip_fw.c(void) ip_fw_chk(iph, dev, f, 0, 1);
iph144net/ipv4/raw.cstruct iphdr *iph=(struct iphdr *)to;
iph145net/ipv4/raw.ciph->saddr=saddr;
iph146net/ipv4/raw.ciph->check=0;
iph147net/ipv4/raw.ciph->tot_len=htons(fraglen);  /* This is right as you cant frag
iph153net/ipv4/raw.ciph->id = htons(ip_id_count++);
iph154net/ipv4/raw.ciph->check=ip_fast_csum((unsigned char *)iph, iph->ihl);
iph449net/ipv4/tcp.cstruct iphdr *iph;
iph465net/ipv4/tcp.ciph = (struct iphdr *)(skb->data + dev->hard_header_len);
iph466net/ipv4/tcp.cth = (struct tcphdr *)(((char *)iph) + (iph->ihl << 2));
iph477net/ipv4/tcp.ciph->id = htons(ip_id_count++);
iph478net/ipv4/tcp.cip_send_check(iph);
iph811net/ipv4/tcp.cstruct iphdr *iph=(struct iphdr *)header;
iph813net/ipv4/tcp.cheader+=4*iph->ihl;
iph3028net/ipv4/tcp.cstruct iphdr *iph;
iph3037net/ipv4/tcp.ciph = (struct iphdr *)(skb->data +
iph3039net/ipv4/tcp.cth = (struct tcphdr *)(((char *)iph) +(iph->ihl << 2));
iph4904net/ipv4/tcp.cstruct iphdr *iph;
iph4920net/ipv4/tcp.ciph = (struct iphdr *)(skb->data + skb->dev->hard_header_len);
iph4921net/ipv4/tcp.cth = (struct tcphdr *)(((char *)iph) +(iph->ihl << 2));
iph4928net/ipv4/tcp.c(iph->ihl << 2) +
iph4981net/ipv4/tcp.c(iph->ihl << 2) + th->doff * 4;