summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/mac.h
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2013-09-30 21:54:53 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2013-09-30 21:54:53 +0000
commit09f6bcf727008c2f65e4d692bf54627d4066c247 (patch)
tree84c09c52e50ba2b48ec6f65c467b1ac6fbb5acab /usr/src/uts/common/sys/mac.h
parent6e9b3f5c7960aff925cedb83f71a64c153f8d89d (diff)
downloadillumos-joyent-09f6bcf727008c2f65e4d692bf54627d4066c247.tar.gz
OS-2495 add support for multiple mac addresses per client
Diffstat (limited to 'usr/src/uts/common/sys/mac.h')
-rw-r--r--usr/src/uts/common/sys/mac.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/usr/src/uts/common/sys/mac.h b/usr/src/uts/common/sys/mac.h
index 220446af65..38049b991e 100644
--- a/usr/src/uts/common/sys/mac.h
+++ b/usr/src/uts/common/sys/mac.h
@@ -21,7 +21,7 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
*/
#ifndef _SYS_MAC_H
@@ -129,6 +129,13 @@ typedef struct mac_propval_range_s {
*/
#define MAXMACADDRLEN 20
+#define MPT_MAXMACADDR 32
+
+typedef struct mac_secondary_addr_s {
+ uint32_t ms_addrcnt;
+ uint8_t ms_addrs[MPT_MAXMACADDR][MAXMACADDRLEN];
+} mac_secondary_addr_t;
+
typedef enum {
MAC_LOGTYPE_LINK = 1,
MAC_LOGTYPE_FLOW
@@ -207,6 +214,7 @@ typedef enum {
MAC_PROP_MAX_TXHWCLNT_AVAIL,
MAC_PROP_IB_LINKMODE,
MAC_PROP_VN_PROMISC_FILTERED,
+ MAC_PROP_SECONDARY_ADDRS,
MAC_PROP_PRIVATE = -1
} mac_prop_id_t;
@@ -314,13 +322,18 @@ typedef struct mac_info_s {
*
* This capability allows the MAC layer to detect when a VNIC is being
* access, and implement the required shortcuts.
+ *
+ * In addition, this capability is used to keep the VNIC's secondary
+ * mac_clients in sync when the primary MAC is updated.
*/
typedef void *(*mac_client_handle_fn_t)(void *);
+typedef void (*mac_client_update_fn_t)(void *);
typedef struct mac_capab_vnic_s {
void *mcv_arg;
mac_client_handle_fn_t mcv_mac_client_handle;
+ mac_client_update_fn_t mcv_mac_secondary_update;
} mac_capab_vnic_t;
typedef void (*mac_rename_fn_t)(const char *, void *);