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;
|