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.31.13)


  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, gfp_t 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 void dn_rt_cache_flush(int delay);          21 extern void dn_rt_cache_flush(int delay);
 22                                                    22 
 23 /* Masks for flags field */                        23 /* Masks for flags field */
 24 #define DN_RT_F_PID 0x07 /* Mask for packet ty     24 #define DN_RT_F_PID 0x07 /* Mask for packet type                      */
 25 #define DN_RT_F_PF  0x80 /* Padding Follows        25 #define DN_RT_F_PF  0x80 /* Padding Follows                           */
 26 #define DN_RT_F_VER 0x40 /* Version =0 discard     26 #define DN_RT_F_VER 0x40 /* Version =0 discard packet if ==1          */
 27 #define DN_RT_F_IE  0x20 /* Intra Ethernet, Re     27 #define DN_RT_F_IE  0x20 /* Intra Ethernet, Reserved in short pkt     */
 28 #define DN_RT_F_RTS 0x10 /* Packet is being re     28 #define DN_RT_F_RTS 0x10 /* Packet is being returned to sender        */
 29 #define DN_RT_F_RQR 0x08 /* Return packet to s     29 #define DN_RT_F_RQR 0x08 /* Return packet to sender upon non-delivery */
 30                                                    30 
 31 /* Mask for types of routing packets */            31 /* Mask for types of routing packets */
 32 #define DN_RT_PKT_MSK   0x06                       32 #define DN_RT_PKT_MSK   0x06
 33 /* Types of routing packets */                     33 /* Types of routing packets */
 34 #define DN_RT_PKT_SHORT 0x02 /* Short routing      34 #define DN_RT_PKT_SHORT 0x02 /* Short routing packet */
 35 #define DN_RT_PKT_LONG  0x06 /* Long routing p     35 #define DN_RT_PKT_LONG  0x06 /* Long routing packet  */
 36                                                    36 
 37 /* Mask for control/routing selection */           37 /* Mask for control/routing selection */
 38 #define DN_RT_PKT_CNTL  0x01 /* Set to 1 if a      38 #define DN_RT_PKT_CNTL  0x01 /* Set to 1 if a control packet  */
 39 /* Types of control packets */                     39 /* Types of control packets */
 40 #define DN_RT_CNTL_MSK  0x0f /* Mask for contr     40 #define DN_RT_CNTL_MSK  0x0f /* Mask for control packets      */
 41 #define DN_RT_PKT_INIT  0x01 /* Initialisation     41 #define DN_RT_PKT_INIT  0x01 /* Initialisation packet         */
 42 #define DN_RT_PKT_VERI  0x03 /* Verification M     42 #define DN_RT_PKT_VERI  0x03 /* Verification Message          */
 43 #define DN_RT_PKT_HELO  0x05 /* Hello and Test     43 #define DN_RT_PKT_HELO  0x05 /* Hello and Test Message        */
 44 #define DN_RT_PKT_L1RT  0x07 /* Level 1 Routin     44 #define DN_RT_PKT_L1RT  0x07 /* Level 1 Routing Message       */
 45 #define DN_RT_PKT_L2RT  0x09 /* Level 2 Routin     45 #define DN_RT_PKT_L2RT  0x09 /* Level 2 Routing Message       */
 46 #define DN_RT_PKT_ERTH  0x0b /* Ethernet Route     46 #define DN_RT_PKT_ERTH  0x0b /* Ethernet Router Hello         */
 47 #define DN_RT_PKT_EEDH  0x0d /* Ethernet EndNo     47 #define DN_RT_PKT_EEDH  0x0d /* Ethernet EndNode Hello        */
 48                                                    48 
 49 /* Values for info field in hello message */       49 /* Values for info field in hello message */
 50 #define DN_RT_INFO_TYPE 0x03 /* Type mask          50 #define DN_RT_INFO_TYPE 0x03 /* Type mask                     */
 51 #define DN_RT_INFO_L1RT 0x02 /* L1 Router          51 #define DN_RT_INFO_L1RT 0x02 /* L1 Router                     */
 52 #define DN_RT_INFO_L2RT 0x01 /* L2 Router          52 #define DN_RT_INFO_L2RT 0x01 /* L2 Router                     */
 53 #define DN_RT_INFO_ENDN 0x03 /* EndNode            53 #define DN_RT_INFO_ENDN 0x03 /* EndNode                       */
 54 #define DN_RT_INFO_VERI 0x04 /* Verification R     54 #define DN_RT_INFO_VERI 0x04 /* Verification Reqd.            */
 55 #define DN_RT_INFO_RJCT 0x08 /* Reject Flag, R     55 #define DN_RT_INFO_RJCT 0x08 /* Reject Flag, Reserved         */
 56 #define DN_RT_INFO_VFLD 0x10 /* Verification F     56 #define DN_RT_INFO_VFLD 0x10 /* Verification Failed, Reserved */
 57 #define DN_RT_INFO_NOML 0x20 /* No Multicast t     57 #define DN_RT_INFO_NOML 0x20 /* No Multicast traffic accepted */
 58 #define DN_RT_INFO_BLKR 0x40 /* Blocking Reque     58 #define DN_RT_INFO_BLKR 0x40 /* Blocking Requested            */
 59                                                    59 
 60 /*                                                 60 /*
 61  * The fl structure is what we used to look up     61  * The fl structure is what we used to look up the route.
 62  * The rt_saddr & rt_daddr entries are the sam     62  * The rt_saddr & rt_daddr entries are the same as key.saddr & key.daddr
 63  * except for local input routes, where the rt     63  * except for local input routes, where the rt_saddr = fl.fld_dst and
 64  * rt_daddr = fl.fld_src to allow the route to     64  * rt_daddr = fl.fld_src to allow the route to be used for returning
 65  * packets to the originating host.                65  * packets to the originating host.
 66  */                                                66  */
 67 struct dn_route {                                  67 struct dn_route {
 68         union {                                    68         union {
 69                 struct dst_entry dst;              69                 struct dst_entry dst;
 70         } u;                                       70         } u;
 71                                                    71 
 72         struct flowi fl;                           72         struct flowi fl;
 73                                                    73 
 74         __le16 rt_saddr;                           74         __le16 rt_saddr;
 75         __le16 rt_daddr;                           75         __le16 rt_daddr;
 76         __le16 rt_gateway;                         76         __le16 rt_gateway;
 77         __le16 rt_local_src;    /* Source used     77         __le16 rt_local_src;    /* Source used for forwarding packets */
 78         __le16 rt_src_map;                         78         __le16 rt_src_map;
 79         __le16 rt_dst_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 };                                                 83 };
 84                                                    84 
 85 extern void dn_route_init(void);                   85 extern void dn_route_init(void);
 86 extern void dn_route_cleanup(void);                86 extern void dn_route_cleanup(void);
 87                                                    87 
 88 #include <net/sock.h>                              88 #include <net/sock.h>
 89 #include <linux/if_arp.h>                          89 #include <linux/if_arp.h>
 90                                                    90 
 91 static inline void dn_rt_send(struct sk_buff *     91 static inline void dn_rt_send(struct sk_buff *skb)
 92 {                                                  92 {
 93         dev_queue_xmit(skb);                       93         dev_queue_xmit(skb);
 94 }                                                  94 }
 95                                                    95 
 96 static inline void dn_rt_finish_output(struct      96 static inline void dn_rt_finish_output(struct sk_buff *skb, char *dst, char *src)
 97 {                                                  97 {
 98         struct net_device *dev = skb->dev;         98         struct net_device *dev = skb->dev;
 99                                                    99 
100         if ((dev->type != ARPHRD_ETHER) && (de    100         if ((dev->type != ARPHRD_ETHER) && (dev->type != ARPHRD_LOOPBACK))
101                 dst = NULL;                       101                 dst = NULL;
102                                                   102 
103         if (dev_hard_header(skb, dev, ETH_P_DN    103         if (dev_hard_header(skb, dev, ETH_P_DNA_RT, dst, src, skb->len) >= 0)
104                 dn_rt_send(skb);                  104                 dn_rt_send(skb);
105         else                                      105         else
106                 kfree_skb(skb);                   106                 kfree_skb(skb);
107 }                                                 107 }
108                                                   108 
109 #endif /* _NET_DN_ROUTE_H */                      109 #endif /* _NET_DN_ROUTE_H */
110                                                   110 
  This page was automatically generated by the LXR engine.