Annotation of embedaddon/bird/sysdep/linux/krt-sys.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  *     BIRD -- Linux Kernel Netlink Route Syncer
                      3:  *
                      4:  *     (c) 1998--2000 Martin Mares <mj@ucw.cz>
                      5:  *
                      6:  *     Can be freely distributed and used under the terms of the GNU GPL.
                      7:  */
                      8: 
                      9: #ifndef _BIRD_KRT_SYS_H_
                     10: #define _BIRD_KRT_SYS_H_
                     11: 
                     12: 
                     13: /* Kernel interfaces */
                     14: 
                     15: struct kif_params {
                     16: };
                     17: 
                     18: struct kif_state {
                     19: };
                     20: 
                     21: 
                     22: static inline void kif_sys_init(struct kif_proto *p UNUSED) { }
                     23: static inline int kif_sys_reconfigure(struct kif_proto *p UNUSED, struct kif_config *n UNUSED, struct kif_config *o UNUSED) { return 1; }
                     24: 
                     25: static inline void kif_sys_preconfig(struct config *c UNUSED) { }
                     26: static inline void kif_sys_postconfig(struct kif_config *c UNUSED) { }
                     27: static inline void kif_sys_init_config(struct kif_config *c UNUSED) { }
                     28: static inline void kif_sys_copy_config(struct kif_config *d UNUSED, struct kif_config *s UNUSED) { }
                     29: 
                     30: static inline struct ifa * kif_get_primary_ip(struct iface *i UNUSED) { return NULL; }
                     31: 
                     32: 
                     33: /* Kernel routes */
                     34: 
                     35: #define KRT_ALLOW_MERGE_PATHS  1
                     36: 
                     37: #define EA_KRT_PREFSRC         EA_CODE(EAP_KRT, 0x10)
                     38: #define EA_KRT_REALM           EA_CODE(EAP_KRT, 0x11)
                     39: #define EA_KRT_SCOPE           EA_CODE(EAP_KRT, 0x12)
                     40: 
                     41: 
                     42: #define KRT_METRICS_MAX                0x10    /* RTAX_QUICKACK+1 */
                     43: #define KRT_METRICS_OFFSET     0x20    /* Offset of EA_KRT_* vs RTAX_* */
                     44: 
                     45: #define KRT_FEATURES_MAX       4
                     46: 
                     47: /*
                     48:  * Following attributes are parts of RTA_METRICS kernel route attribute, their
                     49:  * ids must be consistent with their RTAX_* constants (+ KRT_METRICS_OFFSET)
                     50:  */
                     51: #define EA_KRT_METRICS         EA_CODE(EAP_KRT, 0x20)  /* Dummy one */
                     52: #define EA_KRT_LOCK            EA_CODE(EAP_KRT, 0x21)
                     53: #define EA_KRT_MTU             EA_CODE(EAP_KRT, 0x22)
                     54: #define EA_KRT_WINDOW          EA_CODE(EAP_KRT, 0x23)
                     55: #define EA_KRT_RTT             EA_CODE(EAP_KRT, 0x24)
                     56: #define EA_KRT_RTTVAR          EA_CODE(EAP_KRT, 0x25)
                     57: #define EA_KRT_SSTRESH         EA_CODE(EAP_KRT, 0x26)
                     58: #define EA_KRT_CWND            EA_CODE(EAP_KRT, 0x27)
                     59: #define EA_KRT_ADVMSS          EA_CODE(EAP_KRT, 0x28)
                     60: #define EA_KRT_REORDERING      EA_CODE(EAP_KRT, 0x29)
                     61: #define EA_KRT_HOPLIMIT                EA_CODE(EAP_KRT, 0x2a)
                     62: #define EA_KRT_INITCWND                EA_CODE(EAP_KRT, 0x2b)
                     63: #define EA_KRT_FEATURES                EA_CODE(EAP_KRT, 0x2c)
                     64: #define EA_KRT_RTO_MIN         EA_CODE(EAP_KRT, 0x2d)
                     65: #define EA_KRT_INITRWND                EA_CODE(EAP_KRT, 0x2e)
                     66: #define EA_KRT_QUICKACK                EA_CODE(EAP_KRT, 0x2f)
                     67: 
                     68: /* Bits of EA_KRT_LOCK, also based on RTAX_* constants */
                     69: #define EA_KRT_LOCK_MTU                EA_KRT_LOCK | EA_BIT(0x2)
                     70: #define EA_KRT_LOCK_WINDOW     EA_KRT_LOCK | EA_BIT(0x3)
                     71: #define EA_KRT_LOCK_RTT                EA_KRT_LOCK | EA_BIT(0x4)
                     72: #define EA_KRT_LOCK_RTTVAR     EA_KRT_LOCK | EA_BIT(0x5)
                     73: #define EA_KRT_LOCK_SSTHRESH   EA_KRT_LOCK | EA_BIT(0x6)
                     74: #define EA_KRT_LOCK_CWND       EA_KRT_LOCK | EA_BIT(0x7)
                     75: #define EA_KRT_LOCK_ADVMSS     EA_KRT_LOCK | EA_BIT(0x8)
                     76: #define EA_KRT_LOCK_REORDERING         EA_KRT_LOCK | EA_BIT(0x9)
                     77: #define EA_KRT_LOCK_HOPLIMIT   EA_KRT_LOCK | EA_BIT(0xa)
                     78: // define EA_KRT_LOCK_INITCWND EA_KRT_LOCK | EA_BIT(0xb)
                     79: // define EA_KRT_LOCK_FEATURES EA_KRT_LOCK | EA_BIT(0xc)
                     80: #define EA_KRT_LOCK_RTO_MIN    EA_KRT_LOCK | EA_BIT(0xd)
                     81: // define EA_KRT_LOCK_INITRWND EA_KRT_LOCK | EA_BIT(0xe)
                     82: 
                     83: /* Bits of EA_KRT_FEATURES, based on RTAX_FEATURE_* constants */
                     84: #define EA_KRT_FEATURE_ECN     EA_KRT_FEATURES | EA_BIT(0x0)
                     85: // define EA_KRT_FEATURE_SACK  EA_KRT_FEATURES | EA_BIT(0x1)
                     86: // define EA_KRT_FEATURE_TSTAMP        EA_KRT_FEATURES | EA_BIT(0x2)
                     87: #define EA_KRT_FEATURE_ALLFRAG EA_KRT_FEATURES | EA_BIT(0x3)
                     88: 
                     89: 
                     90: struct krt_params {
                     91:   u32 table_id;                                /* Kernel table ID we sync with */
                     92:   u32 metric;                          /* Kernel metric used for all routes */
                     93: };
                     94: 
                     95: struct krt_state {
                     96:   struct krt_proto *hash_next;
                     97: };
                     98: 
                     99: 
                    100: static inline void krt_sys_init(struct krt_proto *p UNUSED) { }
                    101: static inline void krt_sys_preconfig(struct config *c UNUSED) { }
                    102: static inline void krt_sys_postconfig(struct krt_config *x UNUSED) { }
                    103: 
                    104: 
                    105: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>