Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]

Diff markup

Differences between /linux/include/net/dn_route.h (Version 2.6.25.8) and /linux/include/net/dn_route.h (Version 2.6.11.8)


  1 #ifndef _NET_DN_ROUTE_H                             1 #ifndef _NET_DN_ROUTE_H
  2 #define _NET_DN_ROUTE_H                             2 #define _NET_DN_ROUTE_H
  3                                                     3 
  4 /*********************************************      4 /******************************************************************************
  5     (c) 1995-1998 E.M. Serrat           emserr      5     (c) 1995-1998 E.M. Serrat           emserrat@geocities.com
  6                                                     6     
  7     This program is free software; you can red      7     This program is free software; you can redistribute it and/or modify
  8     it under the terms of the GNU General Publ      8     it under the terms of the GNU General Public License as published by
  9     the Free Software Foundation; either versi      9     the Free Software Foundation; either version 2 of the License, or
 10     any later version.                             10     any later version.
 11                                                    11 
 12     This program is distributed in the hope th     12     This program is distributed in the hope that it will be useful,
 13     but WITHOUT ANY WARRANTY; without even the     13     but WITHOUT ANY WARRANTY; without even the implied warranty of
 14     MERCHANTABILITY or FITNESS FOR A PARTICULA     14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 15     GNU General Public License for more detail     15     GNU General Public License for more details.
 16 **********************************************     16 *******************************************************************************/
 17                                                    17 
 18 extern struct sk_buff *dn_alloc_skb(struct soc !!  18 extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, int pri);
 19 extern int dn_route_output_sock(struct dst_ent     19 extern int dn_route_output_sock(struct dst_entry **pprt, struct flowi *, struct sock *sk, int flags);
 20 extern int dn_cache_dump(struct sk_buff *skb,      20 extern int dn_cache_dump(struct sk_buff *skb, struct netlink_callback *cb);
                                                   >>  21 extern int dn_cache_getroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg);
 21 extern void dn_rt_cache_flush(int delay);          22 extern void dn_rt_cache_flush(int delay);
 22                                                    23 
 23 /* Masks for flags field */                        24 /* Masks for flags field */
 24 #define DN_RT_F_PID 0x07 /* Mask for packet ty     25 #define DN_RT_F_PID 0x07 /* Mask for packet type                      */
 25 #define DN_RT_F_PF  0x80 /* Padding Follows        26 #define DN_RT_F_PF  0x80 /* Padding Follows                           */
 26 #define DN_RT_F_VER 0x40 /* Version =0 discard     27 #define DN_RT_F_VER 0x40 /* Version =0 discard packet if ==1          */
 27 #define DN_RT_F_IE  0x20 /* Intra Ethernet, Re     28 #define DN_RT_F_IE  0x20 /* Intra Ethernet, Reserved in short pkt     */
 28 #define DN_RT_F_RTS 0x10 /* Packet is being re     29 #define DN_RT_F_RTS 0x10 /* Packet is being returned to sender        */
 29 #define DN_RT_F_RQR 0x08 /* Return packet to s     30 #define DN_RT_F_RQR 0x08 /* Return packet to sender upon non-delivery */
 30                                                    31 
 31 /* Mask for types of routing packets */            32 /* Mask for types of routing packets */
 32 #define DN_RT_PKT_MSK   0x06                       33 #define DN_RT_PKT_MSK   0x06
 33 /* Types of routing packets */                     34 /* Types of routing packets */
 34 #define DN_RT_PKT_SHORT 0x02 /* Short routing      35 #define DN_RT_PKT_SHORT 0x02 /* Short routing packet */
 35 #define DN_RT_PKT_LONG  0x06 /* Long routing p     36 #define DN_RT_PKT_LONG  0x06 /* Long routing packet  */
 36                                                    37 
 37 /* Mask for control/routing selection */           38 /* Mask for control/routing selection */
 38 #define DN_RT_PKT_CNTL  0x01 /* Set to 1 if a      39 #define DN_RT_PKT_CNTL  0x01 /* Set to 1 if a control packet  */
 39 /* Types of control packets */                     40 /* Types of control packets */
 40 #define DN_RT_CNTL_MSK  0x0f /* Mask for contr     41 #define DN_RT_CNTL_MSK  0x0f /* Mask for control packets      */
 41 #define DN_RT_PKT_INIT  0x01 /* Initialisation     42 #define DN_RT_PKT_INIT  0x01 /* Initialisation packet         */
 42 #define DN_RT_PKT_VERI  0x03 /* Verification M     43 #define DN_RT_PKT_VERI  0x03 /* Verification Message          */
 43 #define DN_RT_PKT_HELO  0x05 /* Hello and Test     44 #define DN_RT_PKT_HELO  0x05 /* Hello and Test Message        */
 44 #define DN_RT_PKT_L1RT  0x07 /* Level 1 Routin     45 #define DN_RT_PKT_L1RT  0x07 /* Level 1 Routing Message       */
 45 #define DN_RT_PKT_L2RT  0x09 /* Level 2 Routin     46 #define DN_RT_PKT_L2RT  0x09 /* Level 2 Routing Message       */
 46 #define DN_RT_PKT_ERTH  0x0b /* Ethernet Route     47 #define DN_RT_PKT_ERTH  0x0b /* Ethernet Router Hello         */
 47 #define DN_RT_PKT_EEDH  0x0d /* Ethernet EndNo     48 #define DN_RT_PKT_EEDH  0x0d /* Ethernet EndNode Hello        */
 48                                                    49 
 49 /* Values for info field in hello message */       50 /* Values for info field in hello message */
 50 #define DN_RT_INFO_TYPE 0x03 /* Type mask          51 #define DN_RT_INFO_TYPE 0x03 /* Type mask                     */
 51 #define DN_RT_INFO_L1RT 0x02 /* L1 Router          52 #define DN_RT_INFO_L1RT 0x02 /* L1 Router                     */
 52 #define DN_RT_INFO_L2RT 0x01 /* L2 Router          53 #define DN_RT_INFO_L2RT 0x01 /* L2 Router                     */
 53 #define DN_RT_INFO_ENDN 0x03 /* EndNode            54 #define DN_RT_INFO_ENDN 0x03 /* EndNode                       */
 54 #define DN_RT_INFO_VERI 0x04 /* Verification R     55 #define DN_RT_INFO_VERI 0x04 /* Verification Reqd.            */
 55 #define DN_RT_INFO_RJCT 0x08 /* Reject Flag, R     56 #define DN_RT_INFO_RJCT 0x08 /* Reject Flag, Reserved         */
 56 #define DN_RT_INFO_VFLD 0x10 /* Verification F     57 #define DN_RT_INFO_VFLD 0x10 /* Verification Failed, Reserved */
 57 #define DN_RT_INFO_NOML 0x20 /* No Multicast t     58 #define DN_RT_INFO_NOML 0x20 /* No Multicast traffic accepted */
 58 #define DN_RT_INFO_BLKR 0x40 /* Blocking Reque     59 #define DN_RT_INFO_BLKR 0x40 /* Blocking Requested            */
 59                                                    60 
 60 /*                                                 61 /*
 61  * The fl structure is what we used to look up     62  * The fl structure is what we used to look up the route.
 62  * The rt_saddr & rt_daddr entries are the sam     63  * The rt_saddr & rt_daddr entries are the same as key.saddr & key.daddr
 63  * except for local input routes, where the rt     64  * except for local input routes, where the rt_saddr = fl.fld_dst and
 64  * rt_daddr = fl.fld_src to allow the route to     65  * rt_daddr = fl.fld_src to allow the route to be used for returning
 65  * packets to the originating host.                66  * packets to the originating host.
 66  */                                                67  */
 67 struct dn_route {                                  68 struct dn_route {
 68         union {                                    69         union {
 69                 struct dst_entry dst;              70                 struct dst_entry dst;
                                                   >>  71                 struct dn_route *rt_next;
 70         } u;                                       72         } u;
 71                                                    73 
 72         struct flowi fl;                       !!  74         __u16 rt_saddr;
 73                                                !!  75         __u16 rt_daddr;
 74         __le16 rt_saddr;                       !!  76         __u16 rt_gateway;
 75         __le16 rt_daddr;                       !!  77         __u16 rt_local_src;     /* Source used for forwarding packets */
 76         __le16 rt_gateway;                     !!  78         __u16 rt_src_map;
 77         __le16 rt_local_src;    /* Source used !!  79         __u16 rt_dst_map;
 78         __le16 rt_src_map;                     << 
 79         __le16 rt_dst_map;                     << 
 80                                                    80 
 81         unsigned rt_flags;                         81         unsigned rt_flags;
 82         unsigned rt_type;                          82         unsigned rt_type;
                                                   >>  83 
                                                   >>  84         struct flowi fl;
 83 };                                                 85 };
 84                                                    86 
 85 extern void dn_route_init(void);                   87 extern void dn_route_init(void);
 86 extern void dn_route_cleanup(void);                88 extern void dn_route_cleanup(void);
 87                                                    89 
 88 #include <net/sock.h>                              90 #include <net/sock.h>
 89 #include <linux/if_arp.h>                          91 #include <linux/if_arp.h>
 90                                                    92 
 91 static inline void dn_rt_send(struct sk_buff *     93 static inline void dn_rt_send(struct sk_buff *skb)
 92 {                                                  94 {
 93         dev_queue_xmit(skb);                       95         dev_queue_xmit(skb);
 94 }                                                  96 }
 95                                                    97 
 96 static inline void dn_rt_finish_output(struct      98 static inline void dn_rt_finish_output(struct sk_buff *skb, char *dst, char *src)
 97 {                                                  99 {
 98         struct net_device *dev = skb->dev;        100         struct net_device *dev = skb->dev;
 99                                                   101 
100         if ((dev->type != ARPHRD_ETHER) && (de    102         if ((dev->type != ARPHRD_ETHER) && (dev->type != ARPHRD_LOOPBACK))
101                 dst = NULL;                       103                 dst = NULL;
102                                                   104 
103         if (dev_hard_header(skb, dev, ETH_P_DN !! 105         if (!dev->hard_header || (dev->hard_header(skb, dev, ETH_P_DNA_RT,
                                                   >> 106                         dst, src, skb->len) >= 0))
104                 dn_rt_send(skb);                  107                 dn_rt_send(skb);
105         else                                      108         else
106                 kfree_skb(skb);                   109                 kfree_skb(skb);
107 }                                                 110 }
108                                                   111 
109 #endif /* _NET_DN_ROUTE_H */                      112 #endif /* _NET_DN_ROUTE_H */
110                                                   113 
  This page was automatically generated by the LXR engine.