patch-1.3.36 linux/include/net/ip.h

Next file: linux/include/net/sock.h
Previous file: linux/include/linux/sched.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.35/linux/include/net/ip.h linux/include/net/ip.h
@@ -48,46 +48,51 @@
  
 
 /* Describe an IP fragment. */
-struct ipfrag {
-  int		offset;		/* offset of fragment in IP datagram	*/
-  int		end;		/* last byte of data in datagram	*/
-  int		len;		/* length of this fragment		*/
-  struct sk_buff *skb;			/* complete received fragment		*/
-  unsigned char		*ptr;		/* pointer into real fragment data	*/
-  struct ipfrag		*next;		/* linked list pointers			*/
-  struct ipfrag		*prev;
+struct ipfrag 
+{
+	int		offset;		/* offset of fragment in IP datagram	*/
+	int		end;		/* last byte of data in datagram	*/
+	int		len;		/* length of this fragment		*/
+	struct sk_buff	*skb;		/* complete received fragment		*/
+	unsigned char	*ptr;		/* pointer into real fragment data	*/
+	struct ipfrag	*next;		/* linked list pointers			*/
+	struct ipfrag	*prev;
 };
 
-/* Describe an entry in the "incomplete datagrams" queue. */
-struct ipq	 {
-  unsigned char		*mac;		/* pointer to MAC header		*/
-  struct iphdr	*iph;		/* pointer to IP header			*/
-  int		len;		/* total length of original datagram	*/
-  short			ihlen;		/* length of the IP header		*/
-  short 	maclen;		/* length of the MAC header		*/
-  struct timer_list timer;	/* when will this queue expire?		*/
-  struct ipfrag		*fragments;	/* linked list of received fragments	*/
-  struct ipq	*next;		/* linked list pointers			*/
-  struct ipq	*prev;
-  struct device *dev;		/* Device - for icmp replies */
+/*
+ *	Describe an entry in the "incomplete datagrams" queue. 
+ */
+ 
+struct ipq	 
+{
+	unsigned char	*mac;		/* pointer to MAC header		*/
+	struct iphdr	*iph;		/* pointer to IP header			*/
+	int		len;		/* total length of original datagram	*/
+	short		ihlen;		/* length of the IP header		*/	
+	short 		maclen;		/* length of the MAC header		*/
+	struct timer_list timer;	/* when will this queue expire?		*/
+	struct ipfrag	*fragments;	/* linked list of received fragments	*/
+	struct ipq	*next;		/* linked list pointers			*/
+	struct ipq	*prev;
+	struct device	*dev;		/* Device - for icmp replies */
 };
 
+/*
+ *	Functions provided by ip.c
+ */
 
 extern void		ip_print(const struct iphdr *ip);
-extern int		ip_ioctl(struct sock *sk, int cmd,
-				 unsigned long arg);
-extern void		ip_route_check(__u32 daddr);
-extern int		ip_build_header(struct sk_buff *skb,
+extern int		ip_ioctl(struct sock *sk, int cmd, unsigned long arg);
+extern void		ip_route_check(__u32 daddr); 
+extern int 		ip_send(struct sk_buff *skb, __u32 daddr, int len, struct device *dev, __u32 saddr);
+extern int 		ip_build_header(struct sk_buff *skb,
 					__u32 saddr,
 					__u32 daddr,
 					struct device **dev, int type,
 					struct options *opt, int len,
 					int tos,int ttl);
-/*extern unsigned short	ip_compute_csum(unsigned char * buff, int len);*/
 extern int		ip_rcv(struct sk_buff *skb, struct device *dev,
 			       struct packet_type *pt);
-extern int		ip_forward(struct sk_buff *skb, struct device *dev,
-				   int is_frag, __u32 target_addr);
 extern int		ip_options_echo(struct options * dopt, struct options * sopt,
 					__u32 daddr, __u32 saddr,
 					struct sk_buff * skb);
@@ -97,8 +102,6 @@
 extern void		ip_queue_xmit(struct sock *sk,
 				      struct device *dev, struct sk_buff *skb,
 				      int free);
-extern int 		ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int optlen);
-extern int 		ip_getsockopt(struct sock *sk, int level, int optname, char *optval, int *optlen);
 extern void		ip_init(void);
 extern int		ip_build_xmit(struct sock *sk,
 				      void getfrag (const void *,
@@ -116,4 +119,33 @@
 
 extern struct ip_mib	ip_statistics;
 
+/*
+ *	Functions provided by ip_fragment.o
+ */
+ 
+struct sk_buff *ip_defrag(struct iphdr *iph, struct sk_buff *skb, struct device *dev);
+void ip_fragment(struct sock *sk, struct sk_buff *skb, struct device *dev, int is_frag);
+
+/*
+ *	Functions provided by ip_forward.c
+ */
+ 
+extern int ip_forward(struct sk_buff *skb, struct device *dev, int is_frag, __u32 target_addr);
+ 
+/*
+ *	Functions provided by ip_options.c
+ */
+ 
+extern void ip_options_build(struct sk_buff *skb, struct options *opt, __u32 daddr, __u32 saddr, int is_frag);
+extern int ip_options_echo(struct options *dopt, struct options *sopt, __u32 daddr, __u32 saddr, struct sk_buff *skb);
+extern void ip_options_fragment(struct sk_buff *skb);
+extern int ip_options_compile(struct options *opt, struct sk_buff *skb);
+
+/*
+ *	Functions provided by ip_sockglue.c
+ */
+
+extern int 		ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int optlen);
+extern int 		ip_getsockopt(struct sock *sk, int level, int optname, char *optval, int *optlen);
+  
 #endif	/* _IP_H */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this