Commit 16cb4b33 authored by Per Liden's avatar Per Liden Committed by Per Liden

[TIPC] Updated link priority macros

Added macros for min/default/max link priority in tipc_config.h.
Also renamed TIPC_NUM_LINK_PRI to TIPC_MEDIA_LINK_PRI since that
is a more accurate description of what it is used for.
Signed-off-by: default avatarPer Liden <per.liden@ericsson.com>
parent 5f7c3ff6
...@@ -168,10 +168,13 @@ ...@@ -168,10 +168,13 @@
#define TIPC_MAX_LINK_NAME 60 /* format = Z.C.N:interface-Z.C.N:interface */ #define TIPC_MAX_LINK_NAME 60 /* format = Z.C.N:interface-Z.C.N:interface */
/* /*
* Link priority limits (range from 0 to # priorities - 1) * Link priority limits (min, default, max, media default)
*/ */
#define TIPC_NUM_LINK_PRI 32 #define TIPC_MIN_LINK_PRI 0
#define TIPC_DEF_LINK_PRI 10
#define TIPC_MAX_LINK_PRI 31
#define TIPC_MEDIA_LINK_PRI (TIPC_MAX_LINK_PRI + 1)
/* /*
* Link tolerance limits (min, default, max), in ms * Link tolerance limits (min, default, max), in ms
......
...@@ -82,7 +82,7 @@ struct bcbearer { ...@@ -82,7 +82,7 @@ struct bcbearer {
struct bearer bearer; struct bearer bearer;
struct media media; struct media media;
struct bcbearer_pair bpairs[MAX_BEARERS]; struct bcbearer_pair bpairs[MAX_BEARERS];
struct bcbearer_pair bpairs_temp[TIPC_NUM_LINK_PRI]; struct bcbearer_pair bpairs_temp[TIPC_MAX_LINK_PRI + 1];
}; };
/** /**
...@@ -630,7 +630,7 @@ void bcbearer_sort(void) ...@@ -630,7 +630,7 @@ void bcbearer_sort(void)
bp_curr = bcbearer->bpairs; bp_curr = bcbearer->bpairs;
memset(bcbearer->bpairs, 0, sizeof(bcbearer->bpairs)); memset(bcbearer->bpairs, 0, sizeof(bcbearer->bpairs));
for (pri = (TIPC_NUM_LINK_PRI - 1); pri >= 0; pri--) { for (pri = TIPC_MAX_LINK_PRI; pri >= 0; pri--) {
if (!bp_temp[pri].primary) if (!bp_temp[pri].primary)
continue; continue;
......
...@@ -119,7 +119,8 @@ int tipc_register_media(u32 media_type, ...@@ -119,7 +119,8 @@ int tipc_register_media(u32 media_type,
warn("Media registration error: no broadcast address supplied\n"); warn("Media registration error: no broadcast address supplied\n");
goto exit; goto exit;
} }
if (bearer_priority >= TIPC_NUM_LINK_PRI) { if ((bearer_priority < TIPC_MIN_LINK_PRI) &&
(bearer_priority > TIPC_MAX_LINK_PRI)) {
warn("Media registration error: priority %u\n", bearer_priority); warn("Media registration error: priority %u\n", bearer_priority);
goto exit; goto exit;
} }
...@@ -476,10 +477,15 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority) ...@@ -476,10 +477,15 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority)
if (tipc_mode != TIPC_NET_MODE) if (tipc_mode != TIPC_NET_MODE)
return -ENOPROTOOPT; return -ENOPROTOOPT;
if (!bearer_name_validate(name, &b_name) || if (!bearer_name_validate(name, &b_name) ||
!addr_domain_valid(bcast_scope) || !addr_domain_valid(bcast_scope) ||
!in_scope(bcast_scope, tipc_own_addr) || !in_scope(bcast_scope, tipc_own_addr))
(priority > TIPC_NUM_LINK_PRI)) return -EINVAL;
if ((priority < TIPC_MIN_LINK_PRI ||
priority > TIPC_MAX_LINK_PRI) &&
(priority != TIPC_MEDIA_LINK_PRI))
return -EINVAL; return -EINVAL;
write_lock_bh(&net_lock); write_lock_bh(&net_lock);
...@@ -491,7 +497,8 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority) ...@@ -491,7 +497,8 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority)
warn("No media <%s>\n", b_name.media_name); warn("No media <%s>\n", b_name.media_name);
goto failed; goto failed;
} }
if (priority == TIPC_NUM_LINK_PRI)
if (priority == TIPC_MEDIA_LINK_PRI)
priority = m_ptr->priority; priority = m_ptr->priority;
restart: restart:
...@@ -547,8 +554,8 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority) ...@@ -547,8 +554,8 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority)
} }
b_ptr->publ.lock = SPIN_LOCK_UNLOCKED; b_ptr->publ.lock = SPIN_LOCK_UNLOCKED;
write_unlock_bh(&net_lock); write_unlock_bh(&net_lock);
info("Enabled bearer <%s>, discovery domain %s\n", info("Enabled bearer <%s>, discovery domain %s, priority %u\n",
name, addr_string_fill(addr_string, bcast_scope)); name, addr_string_fill(addr_string, bcast_scope), priority);
return 0; return 0;
failed: failed:
write_unlock_bh(&net_lock); write_unlock_bh(&net_lock);
......
...@@ -42,9 +42,9 @@ ...@@ -42,9 +42,9 @@
#define MAX_ETH_BEARERS 2 #define MAX_ETH_BEARERS 2
#define TIPC_PROTOCOL 0x88ca #define TIPC_PROTOCOL 0x88ca
#define ETH_LINK_PRIORITY 10 #define ETH_LINK_PRIORITY TIPC_DEF_LINK_PRI
#define ETH_LINK_TOLERANCE TIPC_DEF_LINK_TOL #define ETH_LINK_TOLERANCE TIPC_DEF_LINK_TOL
#define ETH_LINK_WINDOW TIPC_DEF_LINK_WIN
/** /**
* struct eth_bearer - Ethernet bearer data structure * struct eth_bearer - Ethernet bearer data structure
...@@ -260,7 +260,7 @@ int eth_media_start(void) ...@@ -260,7 +260,7 @@ int eth_media_start(void)
res = tipc_register_media(TIPC_MEDIA_TYPE_ETH, "eth", res = tipc_register_media(TIPC_MEDIA_TYPE_ETH, "eth",
enable_bearer, disable_bearer, send_msg, enable_bearer, disable_bearer, send_msg,
eth_addr2str, &bcast_addr, ETH_LINK_PRIORITY, eth_addr2str, &bcast_addr, ETH_LINK_PRIORITY,
ETH_LINK_TOLERANCE, TIPC_DEF_LINK_WIN); ETH_LINK_TOLERANCE, ETH_LINK_WINDOW);
if (res) if (res)
return res; return res;
......
...@@ -2812,7 +2812,8 @@ struct sk_buff *link_cmd_config(const void *req_tlv_area, int req_tlv_space, ...@@ -2812,7 +2812,8 @@ struct sk_buff *link_cmd_config(const void *req_tlv_area, int req_tlv_space,
} }
break; break;
case TIPC_CMD_SET_LINK_PRI: case TIPC_CMD_SET_LINK_PRI:
if (new_value < TIPC_NUM_LINK_PRI) { if ((new_value >= TIPC_MIN_LINK_PRI) &&
(new_value <= TIPC_MAX_LINK_PRI)) {
l_ptr->priority = new_value; l_ptr->priority = new_value;
link_send_proto_msg(l_ptr, STATE_MSG, link_send_proto_msg(l_ptr, STATE_MSG,
0, 0, 0, new_value, 0); 0, 0, 0, new_value, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment