33 #include <sys/cmn_err.h>
34 #include <sys/disp.h>
35 #include <sys/list.h>
36 #include <sys/ksynch.h>
37 #include <sys/kmem.h>
38 #include <sys/stream.h>
39 #include <sys/modctl.h>
40 #include <sys/ddi.h>
41 #include <sys/sunddi.h>
42 #include <sys/atomic.h>
43 #include <sys/stat.h>
44 #include <sys/byteorder.h>
45 #include <sys/strsun.h>
46 #include <sys/isa_defs.h>
47 #include <sys/sdt.h>
48
49 #include <sys/aggr.h>
50 #include <sys/aggr_impl.h>
51
52 static struct ether_addr etherzeroaddr = {
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
54 };
55
56 /*
57 * Slow_Protocol_Multicast address, as per IEEE 802.3ad spec.
58 */
59 static struct ether_addr slow_multicast_addr = {
60 0x01, 0x80, 0xc2, 0x00, 0x00, 0x02
61 };
62
63 #ifdef DEBUG
64 /* LACP state machine debugging support */
65 static uint32_t aggr_lacp_debug = 0;
66 #define AGGR_LACP_DBG(x) if (aggr_lacp_debug) { (void) printf x; }
67 #else
68 #define AGGR_LACP_DBG(x) {}
69 #endif /* DEBUG */
70
71 #define NSECS_PER_SEC 1000000000ll
72
73 /* used by lacp_misconfig_walker() */
74 typedef struct lacp_misconfig_check_state_s {
75 aggr_port_t *cs_portp;
76 boolean_t cs_found;
77 } lacp_misconfig_check_state_t;
78
79 static const char *lacp_receive_str[] = LACP_RECEIVE_STATE_STRINGS;
80 static const char *lacp_periodic_str[] = LACP_PERIODIC_STRINGS;
|
33 #include <sys/cmn_err.h>
34 #include <sys/disp.h>
35 #include <sys/list.h>
36 #include <sys/ksynch.h>
37 #include <sys/kmem.h>
38 #include <sys/stream.h>
39 #include <sys/modctl.h>
40 #include <sys/ddi.h>
41 #include <sys/sunddi.h>
42 #include <sys/atomic.h>
43 #include <sys/stat.h>
44 #include <sys/byteorder.h>
45 #include <sys/strsun.h>
46 #include <sys/isa_defs.h>
47 #include <sys/sdt.h>
48
49 #include <sys/aggr.h>
50 #include <sys/aggr_impl.h>
51
52 static struct ether_addr etherzeroaddr = {
53 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
54 };
55
56 /*
57 * Slow_Protocol_Multicast address, as per IEEE 802.3ad spec.
58 */
59 static struct ether_addr slow_multicast_addr = {
60 {0x01, 0x80, 0xc2, 0x00, 0x00, 0x02}
61 };
62
63 #ifdef DEBUG
64 /* LACP state machine debugging support */
65 static uint32_t aggr_lacp_debug = 0;
66 #define AGGR_LACP_DBG(x) if (aggr_lacp_debug) { (void) printf x; }
67 #else
68 #define AGGR_LACP_DBG(x) {}
69 #endif /* DEBUG */
70
71 #define NSECS_PER_SEC 1000000000ll
72
73 /* used by lacp_misconfig_walker() */
74 typedef struct lacp_misconfig_check_state_s {
75 aggr_port_t *cs_portp;
76 boolean_t cs_found;
77 } lacp_misconfig_check_state_t;
78
79 static const char *lacp_receive_str[] = LACP_RECEIVE_STATE_STRINGS;
80 static const char *lacp_periodic_str[] = LACP_PERIODIC_STRINGS;
|