Blame view
net/tipc/name_table.h
4.15 KB
b97bf3fd8
|
1 2 |
/* * net/tipc/name_table.h: Include file for TIPC name table code |
c43072852
|
3 |
* |
593a5f22d
|
4 |
* Copyright (c) 2000-2006, Ericsson AB |
f6f0a4d2d
|
5 |
* Copyright (c) 2004-2005, 2010-2011, Wind River Systems |
b97bf3fd8
|
6 7 |
* All rights reserved. * |
9ea1fd3c1
|
8 |
* Redistribution and use in source and binary forms, with or without |
b97bf3fd8
|
9 10 |
* modification, are permitted provided that the following conditions are met: * |
9ea1fd3c1
|
11 12 13 14 15 16 17 18 |
* 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the names of the copyright holders nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. |
b97bf3fd8
|
19 |
* |
9ea1fd3c1
|
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
* Alternatively, this software may be distributed under the terms of the * GNU General Public License ("GPL") version 2 as published by the Free * Software Foundation. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
b97bf3fd8
|
34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
* POSSIBILITY OF SUCH DAMAGE. */ #ifndef _TIPC_NAME_TABLE_H #define _TIPC_NAME_TABLE_H #include "node_subscr.h" struct subscription; struct port_list; /* * TIPC name types reserved for internal TIPC use (both current and planned) */ |
0e65967e3
|
48 |
#define TIPC_ZM_SRV 3 /* zone master service name type */ |
b97bf3fd8
|
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
/** * struct publication - info about a published (name or) name sequence * @type: name sequence type * @lower: name sequence lower bound * @upper: name sequence upper bound * @scope: scope of publication * @node: network address of publishing port's node * @ref: publishing port * @key: publication key * @subscr: subscription to "node down" event (for off-node publications only) * @local_list: adjacent entries in list of publications made by this node * @pport_list: adjacent entries in list of publications made by this port |
f6f0a4d2d
|
63 64 65 |
* @node_list: adjacent matching name seq publications with >= node scope * @cluster_list: adjacent matching name seq publications with >= cluster scope * @zone_list: adjacent matching name seq publications with >= zone scope |
c43072852
|
66 |
* |
b97bf3fd8
|
67 68 69 70 71 72 73 74 75 76 77 |
* Note that the node list, cluster list, and zone list are circular lists. */ struct publication { u32 type; u32 lower; u32 upper; u32 scope; u32 node; u32 ref; u32 key; |
6c00055a8
|
78 |
struct tipc_node_subscr subscr; |
b97bf3fd8
|
79 80 |
struct list_head local_list; struct list_head pport_list; |
f6f0a4d2d
|
81 82 83 |
struct list_head node_list; struct list_head cluster_list; struct list_head zone_list; |
b97bf3fd8
|
84 |
}; |
4323add67
|
85 |
extern rwlock_t tipc_nametbl_lock; |
b97bf3fd8
|
86 |
|
4323add67
|
87 88 |
struct sk_buff *tipc_nametbl_get(const void *req_tlv_area, int req_tlv_space); u32 tipc_nametbl_translate(u32 type, u32 instance, u32 *node); |
c43072852
|
89 |
int tipc_nametbl_mc_translate(u32 type, u32 lower, u32 upper, u32 limit, |
b97bf3fd8
|
90 |
struct port_list *dports); |
c43072852
|
91 |
int tipc_nametbl_publish_rsv(u32 ref, unsigned int scope, |
b97bf3fd8
|
92 |
struct tipc_name_seq const *seq); |
4323add67
|
93 |
struct publication *tipc_nametbl_publish(u32 type, u32 lower, u32 upper, |
b97bf3fd8
|
94 |
u32 scope, u32 port_ref, u32 key); |
4323add67
|
95 96 |
int tipc_nametbl_withdraw(u32 type, u32 lower, u32 ref, u32 key); struct publication *tipc_nametbl_insert_publ(u32 type, u32 lower, u32 upper, |
b97bf3fd8
|
97 |
u32 scope, u32 node, u32 ref, u32 key); |
c43072852
|
98 |
struct publication *tipc_nametbl_remove_publ(u32 type, u32 lower, |
b97bf3fd8
|
99 |
u32 node, u32 ref, u32 key); |
4323add67
|
100 101 102 103 |
void tipc_nametbl_subscribe(struct subscription *s); void tipc_nametbl_unsubscribe(struct subscription *s); int tipc_nametbl_init(void); void tipc_nametbl_stop(void); |
b97bf3fd8
|
104 105 |
#endif |