Annotation of Gnu-Mach/linux/src/include/net/ip.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * INET                An implementation of the TCP/IP protocol suite for the LINUX
        !             3:  *             operating system.  INET is implemented using the  BSD Socket
        !             4:  *             interface as the means of communication with the user level.
        !             5:  *
        !             6:  *             Definitions for the IP module.
        !             7:  *
        !             8:  * Version:    @(#)ip.h        1.0.2   05/07/93
        !             9:  *
        !            10:  * Authors:    Ross Biro, <[email protected]>
        !            11:  *             Fred N. van Kempen, <[email protected]>
        !            12:  *             Alan Cox, <[email protected]>
        !            13:  *
        !            14:  *             This program is free software; you can redistribute it and/or
        !            15:  *             modify it under the terms of the GNU General Public License
        !            16:  *             as published by the Free Software Foundation; either version
        !            17:  *             2 of the License, or (at your option) any later version.
        !            18:  */
        !            19: #ifndef _IP_H
        !            20: #define _IP_H
        !            21: 
        !            22: 
        !            23: #include <linux/config.h>
        !            24: #include <linux/types.h>
        !            25: #include <linux/socket.h>
        !            26: #include <linux/ip.h>
        !            27: #include <linux/netdevice.h>
        !            28: #include <net/route.h>
        !            29: 
        !            30: #ifndef _SNMP_H
        !            31: #include <net/snmp.h>
        !            32: #endif
        !            33: 
        !            34: #include <net/sock.h>  /* struct sock */
        !            35: 
        !            36: /* IP flags. */
        !            37: #define IP_CE          0x8000          /* Flag: "Congestion"           */
        !            38: #define IP_DF          0x4000          /* Flag: "Don't Fragment"       */
        !            39: #define IP_MF          0x2000          /* Flag: "More Fragments"       */
        !            40: #define IP_OFFSET      0x1FFF          /* "Fragment Offset" part       */
        !            41: 
        !            42: #define IP_FRAG_TIME   (30 * HZ)               /* fragment lifetime    */
        !            43: 
        !            44: #ifdef CONFIG_IP_MULTICAST
        !            45: extern void            ip_mc_dropsocket(struct sock *);
        !            46: extern void            ip_mc_dropdevice(struct device *dev);
        !            47: extern int             ip_mc_procinfo(char *, char **, off_t, int, int);
        !            48: #endif
        !            49: 
        !            50: #include <net/ip_forward.h> 
        !            51: 
        !            52: /* Describe an IP fragment. */
        !            53: struct ipfrag 
        !            54: {
        !            55:        int             offset;         /* offset of fragment in IP datagram    */
        !            56:        int             end;            /* last byte of data in datagram        */
        !            57:        int             len;            /* length of this fragment              */
        !            58:        struct sk_buff  *skb;           /* complete received fragment           */
        !            59:        unsigned char   *ptr;           /* pointer into real fragment data      */
        !            60:        struct ipfrag   *next;          /* linked list pointers                 */
        !            61:        struct ipfrag   *prev;
        !            62: };
        !            63: 
        !            64: /*
        !            65:  *     Describe an entry in the "incomplete datagrams" queue. 
        !            66:  */
        !            67:  
        !            68: struct ipq      
        !            69: {
        !            70:        unsigned char   *mac;           /* pointer to MAC header                */
        !            71:        struct iphdr    *iph;           /* pointer to IP header                 */
        !            72:        int             len;            /* total length of original datagram    */
        !            73:        short           ihlen;          /* length of the IP header              */      
        !            74:        short           maclen;         /* length of the MAC header             */
        !            75:        struct timer_list timer;        /* when will this queue expire?         */
        !            76:        struct ipfrag   *fragments;     /* linked list of received fragments    */
        !            77:        struct ipq      *next;          /* linked list pointers                 */
        !            78:        struct ipq      *prev;
        !            79:        struct device   *dev;           /* Device - for icmp replies */
        !            80: };
        !            81: 
        !            82: /*
        !            83:  *     Functions provided by ip.c
        !            84:  */
        !            85: 
        !            86: extern void            ip_print(const struct iphdr *ip);
        !            87: extern int             ip_ioctl(struct sock *sk, int cmd, unsigned long arg);
        !            88: extern void            ip_route_check(__u32 daddr); 
        !            89: extern int             ip_send(struct rtable *rt, struct sk_buff *skb, __u32 daddr, int len, struct device *dev, __u32 saddr);
        !            90: extern int             ip_build_header(struct sk_buff *skb,
        !            91:                                        __u32 saddr,
        !            92:                                        __u32 daddr,
        !            93:                                        struct device **dev, int type,
        !            94:                                        struct options *opt, int len,
        !            95:                                        int tos,int ttl,struct rtable **rp);
        !            96: extern int             ip_rcv(struct sk_buff *skb, struct device *dev,
        !            97:                               struct packet_type *pt);
        !            98: extern int             ip_options_echo(struct options * dopt, struct options * sopt,
        !            99:                                        __u32 daddr, __u32 saddr,
        !           100:                                        struct sk_buff * skb);
        !           101: extern int             ip_options_compile(struct options * opt, struct sk_buff * skb);
        !           102: extern void            ip_send_check(struct iphdr *ip);
        !           103: extern int             ip_id_count;                      
        !           104: extern void            ip_queue_xmit(struct sock *sk,
        !           105:                                      struct device *dev, struct sk_buff *skb,
        !           106:                                      int free);
        !           107: extern void            ip_init(void);
        !           108: extern int             ip_build_xmit(struct sock *sk,
        !           109:                                      void getfrag (const void *,
        !           110:                                                    __u32,
        !           111:                                                    char *,
        !           112:                                                    unsigned int,
        !           113:                                                    unsigned int),
        !           114:                                      const void *frag,
        !           115:                                      unsigned short int length,
        !           116:                                      __u32 daddr,
        !           117:                                      __u32 saddr,
        !           118:                                      struct options * opt,
        !           119:                                      int flags,
        !           120:                                      int type,
        !           121:                                      int noblock);
        !           122: 
        !           123: extern struct ip_mib   ip_statistics;
        !           124: 
        !           125: extern int sysctl_ip_dynaddr;
        !           126: int ip_rewrite_addrs(struct sock *sk, struct sk_buff *skb, struct device *dev);
        !           127: 
        !           128: /*
        !           129:  *     Functions provided by ip_fragment.o
        !           130:  */
        !           131:  
        !           132: struct sk_buff *ip_defrag(struct iphdr *iph, struct sk_buff *skb, struct device *dev);
        !           133: void ip_fragment(struct sock *sk, struct sk_buff *skb, struct device *dev, int is_frag);
        !           134: 
        !           135: /*
        !           136:  *     Functions provided by ip_forward.c
        !           137:  */
        !           138:  
        !           139: extern int ip_forward(struct sk_buff *skb, struct device *dev, int is_frag, __u32 target_addr);
        !           140: extern int sysctl_ip_forward; 
        !           141: 
        !           142:  
        !           143: /*
        !           144:  *     Functions provided by ip_options.c
        !           145:  */
        !           146:  
        !           147: extern void ip_options_build(struct sk_buff *skb, struct options *opt, __u32 daddr, __u32 saddr, int is_frag);
        !           148: extern int ip_options_echo(struct options *dopt, struct options *sopt, __u32 daddr, __u32 saddr, struct sk_buff *skb);
        !           149: extern void ip_options_fragment(struct sk_buff *skb);
        !           150: extern int ip_options_compile(struct options *opt, struct sk_buff *skb);
        !           151: 
        !           152: /*
        !           153:  *     Functions provided by ip_sockglue.c
        !           154:  */
        !           155: 
        !           156: extern int             ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int optlen);
        !           157: extern int             ip_getsockopt(struct sock *sk, int level, int optname, char *optval, int *optlen);
        !           158:   
        !           159: #endif /* _IP_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.