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: Per Liden <per.liden@ericsson.com>
 #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
 
        struct bearer bearer;
        struct media media;
        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];
 };
 
 /**
        bp_curr = 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)
                        continue;
 
                warn("Media registration error: no broadcast address supplied\n");
                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);
                goto exit;
        }
 
        if (tipc_mode != TIPC_NET_MODE)
                return -ENOPROTOOPT;
+
        if (!bearer_name_validate(name, &b_name) ||
            !addr_domain_valid(bcast_scope) ||
-           !in_scope(bcast_scope, tipc_own_addr) ||
-           (priority > TIPC_NUM_LINK_PRI))
+           !in_scope(bcast_scope, tipc_own_addr))
+               return -EINVAL;
+
+       if ((priority < TIPC_MIN_LINK_PRI ||
+            priority > TIPC_MAX_LINK_PRI) &&
+           (priority != TIPC_MEDIA_LINK_PRI))
                return -EINVAL;
 
        write_lock_bh(&net_lock);
                warn("No media <%s>\n", b_name.media_name);
                goto failed;
        }
-       if (priority == TIPC_NUM_LINK_PRI)
+
+       if (priority == TIPC_MEDIA_LINK_PRI)
                priority = m_ptr->priority;
 
 restart:
        }
        b_ptr->publ.lock = SPIN_LOCK_UNLOCKED;
        write_unlock_bh(&net_lock);
-       info("Enabled bearer <%s>, discovery domain %s\n",
-            name, addr_string_fill(addr_string, bcast_scope));
+       info("Enabled bearer <%s>, discovery domain %s, priority %u\n",
+            name, addr_string_fill(addr_string, bcast_scope), priority);
        return 0;
 failed:
        write_unlock_bh(&net_lock);
 
 
 #define MAX_ETH_BEARERS                2
 #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_WINDOW                TIPC_DEF_LINK_WIN
 
 /**
  * struct eth_bearer - Ethernet bearer data structure
        res = tipc_register_media(TIPC_MEDIA_TYPE_ETH, "eth",
                                  enable_bearer, disable_bearer, send_msg, 
                                  eth_addr2str, &bcast_addr, ETH_LINK_PRIORITY, 
-                                 ETH_LINK_TOLERANCE, TIPC_DEF_LINK_WIN);
+                                 ETH_LINK_TOLERANCE, ETH_LINK_WINDOW);
        if (res)
                return res;
 
 
                }
                break;
        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;
                        link_send_proto_msg(l_ptr, STATE_MSG, 
                                            0, 0, 0, new_value, 0);