diff options
Diffstat (limited to 'net/tipc/addr.c')
-rw-r--r-- | net/tipc/addr.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/net/tipc/addr.c b/net/tipc/addr.c index e5207a11edf6..c048543ffbeb 100644 --- a/net/tipc/addr.c +++ b/net/tipc/addr.c | |||
@@ -92,3 +92,35 @@ int tipc_addr_node_valid(u32 addr) | |||
92 | return (tipc_addr_domain_valid(addr) && tipc_node(addr)); | 92 | return (tipc_addr_domain_valid(addr) && tipc_node(addr)); |
93 | } | 93 | } |
94 | 94 | ||
95 | int tipc_in_scope(u32 domain, u32 addr) | ||
96 | { | ||
97 | if (!domain || (domain == addr)) | ||
98 | return 1; | ||
99 | if (domain == (addr & 0xfffff000u)) /* domain <Z.C.0> */ | ||
100 | return 1; | ||
101 | if (domain == (addr & 0xff000000u)) /* domain <Z.0.0> */ | ||
102 | return 1; | ||
103 | return 0; | ||
104 | } | ||
105 | |||
106 | /** | ||
107 | * tipc_addr_scope - convert message lookup domain to a 2-bit scope value | ||
108 | */ | ||
109 | |||
110 | int tipc_addr_scope(u32 domain) | ||
111 | { | ||
112 | if (likely(!domain)) | ||
113 | return TIPC_ZONE_SCOPE; | ||
114 | if (tipc_node(domain)) | ||
115 | return TIPC_NODE_SCOPE; | ||
116 | if (tipc_cluster(domain)) | ||
117 | return TIPC_CLUSTER_SCOPE; | ||
118 | return TIPC_ZONE_SCOPE; | ||
119 | } | ||
120 | |||
121 | char *tipc_addr_string_fill(char *string, u32 addr) | ||
122 | { | ||
123 | snprintf(string, 16, "<%u.%u.%u>", | ||
124 | tipc_zone(addr), tipc_cluster(addr), tipc_node(addr)); | ||
125 | return string; | ||
126 | } | ||