kernel: remove unused utsname_set_machine()
[unleashed.git] / usr / src / uts / sun4v / sys / vsw_fdb.h
blob5d00487e74af4bf4ff05b68d94b80670fee2c09a
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
27 #ifndef _VSW_FDB_H
28 #define _VSW_FDB_H
30 #pragma ident "%Z%%M% %I% %E% SMI"
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
37 * Convert ethernet (mac) address to hash table key.
39 #define KEY_HASH(key, addr) \
40 (key = ((((uint64_t)(addr)->ether_addr_octet[0]) << 40) | \
41 (((uint64_t)(addr)->ether_addr_octet[1]) << 32) | \
42 (((uint64_t)(addr)->ether_addr_octet[2]) << 24) | \
43 (((uint64_t)(addr)->ether_addr_octet[3]) << 16) | \
44 (((uint64_t)(addr)->ether_addr_octet[4]) << 8) | \
45 ((uint64_t)(addr)->ether_addr_octet[5])));
47 #define VLAN_ID_KEY(key) ((mod_hash_key_t)(uintptr_t)(key))
50 * Multicast forwarding database (mFDB) is a hashtable
51 * keyed off the mac address, with the value being a linked
52 * list of mfdb_ent_t structures, each of which is a destination
53 * (either a vsw_port or the vsw instance itself when plumbed as
54 * a network device) to which the multicast pkt should be forwarded.
56 typedef struct mfdb_ent {
57 struct mfdb_ent *nextp; /* next entry in list */
58 void *d_addr; /* address of dest */
59 uint8_t d_type; /* destination type */
60 } mfdb_ent_t;
63 * Forwarding database entry. Each member port of a vsw will have an entry in
64 * the vsw's fdb. Ref count is bumped up while sending a packet destined to a
65 * port corresponding to the fdb entry.
67 typedef struct vsw_fdbe {
68 void *portp; /* pointer to the vnet_port */
69 uint32_t refcnt; /* reference count */
70 } vsw_fdbe_t;
72 #ifdef __cplusplus
74 #endif
76 #endif /* _VSW_FDB_H */