Print this page
Overlay fabric router


 285  *              Before calling in, otci_count should be set to the number of
 286  *              entries that space has been allocated for in otci_ents. The
 287  *              value will be updated to indicate the total number written out.
 288  */
 289 
 290 #define OVERLAY_TARG_CACHE_GET          (OVERLAY_TARG_IOCTL | 0x30)
 291 #define OVERLAY_TARG_CACHE_SET          (OVERLAY_TARG_IOCTL | 0x31)
 292 #define OVERLAY_TARG_CACHE_REMOVE       (OVERLAY_TARG_IOCTL | 0x32)
 293 #define OVERLAY_TARG_CACHE_FLUSH        (OVERLAY_TARG_IOCTL | 0x33)
 294 #define OVERLAY_TARG_CACHE_ITER         (OVERLAY_TARG_IOCTL | 0x34)
 295 
 296 /*
 297  * This is a pretty arbitrary number that we're constraining ourselves to
 298  * for iteration. Basically the goal is to make sure that we can't have a user
 299  * ask us to allocate too much memory on their behalf at any time. A more
 300  * dynamic form may be necessary some day.
 301  */
 302 #define OVERLAY_TARGET_ITER_MAX 500
 303 
 304 #define OVERLAY_TARGET_CACHE_DROP       0x01

 305 
 306 typedef struct overlay_targ_cache_entry {
 307         uint8_t                 otce_mac[ETHERADDRL];
 308         uint16_t                otce_flags;
 309         uint32_t                otce_dcid;
 310         overlay_target_point_t  otce_dest;
 311 } overlay_targ_cache_entry_t;
 312 
 313 typedef struct overlay_targ_cache {
 314         datalink_id_t                   otc_linkid;
 315         overlay_targ_cache_entry_t      otc_entry;
 316 } overlay_targ_cache_t;
 317 
 318 typedef struct overlay_targ_cache_iter {
 319         datalink_id_t                   otci_linkid;
 320         uint32_t                        otci_pad;
 321         uint64_t                        otci_marker;
 322         uint16_t                        otci_count;
 323         overlay_targ_cache_entry_t      otci_ents[];
 324 } overlay_targ_cache_iter_t;


 285  *              Before calling in, otci_count should be set to the number of
 286  *              entries that space has been allocated for in otci_ents. The
 287  *              value will be updated to indicate the total number written out.
 288  */
 289 
 290 #define OVERLAY_TARG_CACHE_GET          (OVERLAY_TARG_IOCTL | 0x30)
 291 #define OVERLAY_TARG_CACHE_SET          (OVERLAY_TARG_IOCTL | 0x31)
 292 #define OVERLAY_TARG_CACHE_REMOVE       (OVERLAY_TARG_IOCTL | 0x32)
 293 #define OVERLAY_TARG_CACHE_FLUSH        (OVERLAY_TARG_IOCTL | 0x33)
 294 #define OVERLAY_TARG_CACHE_ITER         (OVERLAY_TARG_IOCTL | 0x34)
 295 
 296 /*
 297  * This is a pretty arbitrary number that we're constraining ourselves to
 298  * for iteration. Basically the goal is to make sure that we can't have a user
 299  * ask us to allocate too much memory on their behalf at any time. A more
 300  * dynamic form may be necessary some day.
 301  */
 302 #define OVERLAY_TARGET_ITER_MAX 500
 303 
 304 #define OVERLAY_TARGET_CACHE_DROP       0x01
 305 #define OVERLAY_TARGET_CACHE_ROUTER     0x02
 306 
 307 typedef struct overlay_targ_cache_entry {
 308         uint8_t                 otce_mac[ETHERADDRL];
 309         uint16_t                otce_flags;
 310         uint32_t                otce_dcid;
 311         overlay_target_point_t  otce_dest;
 312 } overlay_targ_cache_entry_t;
 313 
 314 typedef struct overlay_targ_cache {
 315         datalink_id_t                   otc_linkid;
 316         overlay_targ_cache_entry_t      otc_entry;
 317 } overlay_targ_cache_t;
 318 
 319 typedef struct overlay_targ_cache_iter {
 320         datalink_id_t                   otci_linkid;
 321         uint32_t                        otci_pad;
 322         uint64_t                        otci_marker;
 323         uint16_t                        otci_count;
 324         overlay_targ_cache_entry_t      otci_ents[];
 325 } overlay_targ_cache_iter_t;