66 static sock_lower_handle_t trill_create(int, int, int, sock_downcalls_t **,
67 uint_t *, int *, int, cred_t *);
68
69 static smod_reg_t sinfo = {
70 SOCKMOD_VERSION,
71 "trill",
72 SOCK_UC_VERSION,
73 SOCK_DC_VERSION,
74 trill_create,
75 NULL,
76 };
77
78 /* modldrv structure */
79 static struct modlsockmod sockmod = {
80 &mod_sockmodops, "AF_TRILL socket module", &sinfo
81 };
82
83 /* modlinkage structure */
84 static struct modlinkage ml = {
85 MODREV_1,
86 &sockmod,
87 NULL
88 };
89
90 #define VALID_NICK(n) ((n) != RBRIDGE_NICKNAME_NONE && \
91 (n) != RBRIDGE_NICKNAME_UNUSED)
92
93 static mblk_t *
94 create_trill_header(trill_sock_t *tsock, mblk_t *mp, const uint8_t *daddr,
95 boolean_t trill_hdr_ok, boolean_t multidest, uint16_t tci,
96 size_t msglen)
97 {
98 int extra_hdr_len;
99 struct ether_vlan_header *ethvlanhdr;
100 mblk_t *hdr_mp;
101 uint16_t etype;
102
103 etype = msglen > 0 ? (uint16_t)msglen : ETHERTYPE_TRILL;
104
105 /* When sending on the PVID, we must not give a VLAN ID */
106 if (tci == tsock->ts_link->bl_pvid)
107 tci = TRILL_NO_TCI;
|
66 static sock_lower_handle_t trill_create(int, int, int, sock_downcalls_t **,
67 uint_t *, int *, int, cred_t *);
68
69 static smod_reg_t sinfo = {
70 SOCKMOD_VERSION,
71 "trill",
72 SOCK_UC_VERSION,
73 SOCK_DC_VERSION,
74 trill_create,
75 NULL,
76 };
77
78 /* modldrv structure */
79 static struct modlsockmod sockmod = {
80 &mod_sockmodops, "AF_TRILL socket module", &sinfo
81 };
82
83 /* modlinkage structure */
84 static struct modlinkage ml = {
85 MODREV_1,
86 { &sockmod, NULL }
87 };
88
89 #define VALID_NICK(n) ((n) != RBRIDGE_NICKNAME_NONE && \
90 (n) != RBRIDGE_NICKNAME_UNUSED)
91
92 static mblk_t *
93 create_trill_header(trill_sock_t *tsock, mblk_t *mp, const uint8_t *daddr,
94 boolean_t trill_hdr_ok, boolean_t multidest, uint16_t tci,
95 size_t msglen)
96 {
97 int extra_hdr_len;
98 struct ether_vlan_header *ethvlanhdr;
99 mblk_t *hdr_mp;
100 uint16_t etype;
101
102 etype = msglen > 0 ? (uint16_t)msglen : ETHERTYPE_TRILL;
103
104 /* When sending on the PVID, we must not give a VLAN ID */
105 if (tci == tsock->ts_link->bl_pvid)
106 tci = TRILL_NO_TCI;
|