Projects
osmocom:master
libosmo-sigtran
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 8
View file
commit_48be524ca144fbd3c18151c31673bbc829ab561b.txt
Deleted
View file
commit_e553caec920bce33ce6b4cf150ba994545ed242e.txt
Added
View file
libosmo-sigtran_2.0.0.10.48be.dsc -> libosmo-sigtran_2.0.0.15.e553.dsc
Changed
@@ -2,7 +2,7 @@ Source: libosmo-sigtran Binary: libosmo-sigtran10, libosmo-sigtran-dbg, libosmo-sigtran-doc, libosmo-sigtran-dev, osmo-stp, osmo-stp-dbg, osmo-stp-doc Architecture: any all -Version: 2.0.0.10.48be +Version: 2.0.0.15.e553 Maintainer: Osmocom team <openbsc@lists.osmocom.org> Homepage: https://projects.osmocom.org/projects/libosmo-sccp Standards-Version: 3.9.7 @@ -18,8 +18,8 @@ osmo-stp-dbg deb debug optional arch=any osmo-stp-doc deb doc optional arch=all Checksums-Sha1: - 3ed3e60529c3f7015b38cff01fca9b911c6cb7d1 226968 libosmo-sigtran_2.0.0.10.48be.tar.xz + c0ab2b7252dbb7f10534408199d89d94174a6e21 227904 libosmo-sigtran_2.0.0.15.e553.tar.xz Checksums-Sha256: - 1d51e901dcc63304a2d7ff6d886ada50304420377f9ed41090b44c5abdf30261 226968 libosmo-sigtran_2.0.0.10.48be.tar.xz + 19f7a966a7660bac568a5e43af49fba76977027f2b0fa37a1101edac24c058cf 227904 libosmo-sigtran_2.0.0.15.e553.tar.xz Files: - 25e719c88c58a8ffad5cf979f350a3ed 226968 libosmo-sigtran_2.0.0.10.48be.tar.xz + 25968a8e7937596f1038f80047d8d21e 227904 libosmo-sigtran_2.0.0.15.e553.tar.xz
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/.tarball-version -> libosmo-sigtran_2.0.0.15.e553.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.0.0.10-48be +2.0.0.15-e553
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/debian/changelog -> libosmo-sigtran_2.0.0.15.e553.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -libosmo-sigtran (2.0.0.10.48be) unstable; urgency=medium +libosmo-sigtran (2.0.0.15.e553) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Thu, 10 Oct 2024 15:03:14 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Tue, 15 Oct 2024 15:47:57 +0000 libosmo-sigtran (2.0.0) unstable; urgency=medium
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/src/osmo_ss7.c -> libosmo-sigtran_2.0.0.15.e553.tar.xz/src/osmo_ss7.c
Changed
@@ -657,6 +657,101 @@ * SS7 Routes ***********************************************************************/ +/*! \brief Allocate a route entry + * \paramin rtbl Routing Table where the route belongs + * \paramin pc Point Code of the destination of the route + * \paramin mask Mask of the destination Point Code \ref pc + * \returns Allocated route (not yet inserted into its rtbl), NULL on error + * + * The returned route has no linkset associated yet, user *must* associate it + * using API ss7_route_set_linkset() before inserting the route into its + * routing table. + * + * Fields priority and qos_class may be set *before* inserting the route into + * its routing table: + * - A default priority of 0 is configured on the route. + * - A default qos-class of 0 is configured on the route. + * + * Use API ss7_route_insert() to insert the route into its routing table. + * + * The route entry allocated with this API can be destroyed/freed at any point using API + * osmo_ss7_route_destroy(), regardless of it being already inserted or not in + * its routing table. + */ +struct osmo_ss7_route * +ss7_route_alloc(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask) +{ + struct osmo_ss7_route *rt; + + OSMO_ASSERT(ss7_initialized); + + rt = talloc_zero(rtbl, struct osmo_ss7_route); + if (!rt) + return NULL; + + /* Mark it as not being inserted yet in rtbl */ + INIT_LLIST_HEAD(&rt->list); + rt->rtable = rtbl; + /* truncate mask to maximum. Let's avoid callers specifying arbitrary large + * masks to ensure we don't fail duplicate detection with longer mask lengths */ + rt->cfg.mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); + rt->cfg.pc = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, pc); + rt->cfg.priority = OSMO_SS7_ROUTE_PRIO_DEFAULT; + return rt; +} + +/*! \brief Check whether route has already been inserted into its routing table. + * \returns true if already inserted, false if not. + */ +static bool ss7_route_inserted(const struct osmo_ss7_route *rt) +{ + return !llist_empty(&rt->list); +} + +/*! \brief Set linkset on route entry + * \paramin rt Route to be configured + * \paramin linkset_name string name of the linkset to be used + * \returns 0 on success, negative on error. + */ +int +ss7_route_set_linkset(struct osmo_ss7_route *rt, const char *linkset_name) +{ + struct osmo_ss7_linkset *lset; + struct osmo_ss7_as *as = NULL; + struct osmo_ss7_route_table *rtbl = rt->rtable; + + if (rt->cfg.linkset_name) { + LOGSS7(rtbl->inst, LOGL_ERROR, "Attempt setting linkset on route already configured!\n"); + return -EBUSY; + } + + if (ss7_route_inserted(rt)) { + LOGSS7(rtbl->inst, LOGL_ERROR, "Attempt setting linkset on route already in the routing table!\n"); + return -EALREADY; + } + + lset = osmo_ss7_linkset_find_by_name(rtbl->inst, linkset_name); + if (!lset) { + as = osmo_ss7_as_find_by_name(rtbl->inst, linkset_name); + if (!as) + return -ENODEV; + } + + rt->cfg.linkset_name = talloc_strdup(rt, linkset_name); + if (lset) { + rt->dest.linkset = lset; + LOGSS7(rtbl->inst, LOGL_INFO, "Creating route: pc=%u=%s mask=0x%x via linkset '%s'\n", + rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), + rt->cfg.mask, lset->cfg.name); + } else { + rt->dest.as = as; + LOGSS7(rtbl->inst, LOGL_INFO, "Creating route: pc=%u=%s mask=0x%x via AS '%s'\n", + rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), + rt->cfg.mask, as->cfg.name); + } + return 0; +} + /*! \brief Find a SS7 route for given destination point code in given table */ struct osmo_ss7_route * osmo_ss7_route_find_dpc(struct osmo_ss7_route_table *rtbl, uint32_t dpc) @@ -709,6 +804,7 @@ /* insert the route in the ordered list of routes. The list is sorted by * mask length, so that the more specific (longer mask) routes are * first, while the less specific routes with shorter masks are last. + * Within the same mask length, the routes are ordered by priority. * Hence, the first matching route in a linear iteration is the most * specific match. */ static void route_insert_sorted(struct osmo_ss7_route_table *rtbl, @@ -717,73 +813,94 @@ struct osmo_ss7_route *rt; llist_for_each_entry(rt, &rtbl->routes, list) { + if (rt->cfg.mask == cmp->cfg.mask && + rt->cfg.priority > cmp->cfg.priority) { + /* insert before the current entry */ + llist_add(&cmp->list, rt->list.prev); + return; + } if (rt->cfg.mask < cmp->cfg.mask) { /* insert before the current entry */ llist_add(&cmp->list, rt->list.prev); return; } } - /* not added, i.e. no smaller mask length found: we are the - * smallest mask and thus should go last */ + /* not added, i.e. no smaller mask length and priority found: we are the + * smallest mask and priority and thus should go last */ llist_add_tail(&cmp->list, &rtbl->routes); } +/*! \brief Insert route into its routing table + * \paramin rt Route to be inserted into its routing table + * \returns 0 on success, negative on error + * + * A route is only really used once it has been inserted into its routing table. + */ +int +ss7_route_insert(struct osmo_ss7_route *rt) +{ + struct osmo_ss7_route *prev_rt; + struct osmo_ss7_route_table *rtbl = rt->rtable; + + if (ss7_route_inserted(rt)) { + LOGSS7(rtbl->inst, LOGL_ERROR, "Attempt insert of route already in the routing table!\n"); + return -EALREADY; + } + + if (!rt->cfg.linkset_name) { + LOGSS7(rtbl->inst, LOGL_ERROR, "Attempt insert of route with unset linkset!\n"); + return -EINVAL; + } + + /* check for duplicates */ + prev_rt = osmo_ss7_route_find_dpc_mask(rtbl, rt->cfg.pc, rt->cfg.mask); + if (prev_rt && !strcmp(prev_rt->cfg.linkset_name, rt->cfg.linkset_name)) { + LOGSS7(rtbl->inst, LOGL_ERROR, + "Refusing to create route with existing linkset name: pc=%u=%s mask=0x%x via linkset/AS '%s'\n", + rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), + rt->cfg.mask, rt->cfg.linkset_name); + return -EADDRINUSE; + } + + route_insert_sorted(rtbl, rt); + return 0; +} + /*! \brief Create a new route in the given routing table * \paramin rtbl Routing Table in which the route is to be created * \paramin pc Point Code of the destination of the route * \paramin mask Mask of the destination Point Code \ref pc * \paramin linkset_name string name of the linkset to be used - * \returns caller-allocated + initialized route, NULL on error + * \returns callee-allocated + initialized route, NULL on error + * + * The route allocated and returned by this API is already inserted into the + * routing table, with priority and qos-class set to 0. + * If you plan to use different values for priority and qos-class, avoid using + * this API and use ss7_route_alloc() + ss7_route_set_linkset() + + * ss7_route_insert() instead. */ struct osmo_ss7_route * osmo_ss7_route_create(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask, const char *linkset_name) { struct osmo_ss7_route *rt; - struct osmo_ss7_linkset *lset; - struct osmo_ss7_as *as = NULL; - - /* truncate mask to maximum. Let's avoid callers specifying arbitrary large - * masks to ensure we don't fail duplicate detection with longer mask lengths */ - mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); - pc = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, pc); + int rc; - OSMO_ASSERT(ss7_initialized); - lset = osmo_ss7_linkset_find_by_name(rtbl->inst, linkset_name); - if (!lset) { - as = osmo_ss7_as_find_by_name(rtbl->inst, linkset_name); - if (!as) - return NULL; - } - - /* check for duplicates */ - rt = osmo_ss7_route_find_dpc_mask(rtbl, pc, mask); - if (rt && !strcmp(rt->cfg.linkset_name, linkset_name)) { - LOGSS7(rtbl->inst, LOGL_ERROR, "Refusing to create duplicate route: " - "pc=%u=%s mask=0x%x via linkset/AS '%s'\n", - pc, osmo_ss7_pointcode_print(rtbl->inst, pc), mask, linkset_name); - return rt; - } - - rt = talloc_zero(rtbl, struct osmo_ss7_route); + rt = ss7_route_alloc(rtbl, pc, mask); if (!rt) return NULL; - rt->cfg.pc = pc; - rt->cfg.mask = mask; - rt->cfg.linkset_name = talloc_strdup(rt, linkset_name); - if (lset) { - rt->dest.linkset = lset; - LOGSS7(rtbl->inst, LOGL_INFO, "Creating route: pc=%u=%s mask=0x%x via linkset '%s'\n", - pc, osmo_ss7_pointcode_print(rtbl->inst, pc), mask, lset->cfg.name); - } else { - rt->dest.as = as; - LOGSS7(rtbl->inst, LOGL_INFO, "Creating route: pc=%u=%s mask=0x%x via AS '%s'\n", - pc, osmo_ss7_pointcode_print(rtbl->inst, pc), mask, as->cfg.name); + if (ss7_route_set_linkset(rt, linkset_name) < 0) { + talloc_free(rt); + return NULL; } - rt->rtable = rtbl; - route_insert_sorted(rtbl, rt); + rc = ss7_route_insert(rt); + /* Keep old behavior, return already existing route: */ + if (rc == -EADDRINUSE) { + talloc_free(rt); + return osmo_ss7_route_find_dpc_mask(rtbl, rt->cfg.pc, rt->cfg.mask); + } return rt; } @@ -795,10 +912,16 @@ OSMO_ASSERT(ss7_initialized); - LOGSS7(rtbl->inst, LOGL_INFO, "Destroying route: pc=%u=%s mask=0x%x via linkset/ASP '%s'\n", - rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), rt->cfg.mask, rt->cfg.linkset_name); + if (!rt) + return; - llist_del(&rt->list); + if (ss7_route_inserted(rt)) { + LOGSS7(rtbl->inst, LOGL_INFO, + "Destroying route: pc=%u=%s mask=0x%x via linkset/ASP '%s'\n", + rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), + rt->cfg.mask, rt->cfg.linkset_name); + llist_del(&rt->list); + } talloc_free(rt); }
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/src/osmo_ss7_vty.c -> libosmo-sigtran_2.0.0.15.e553.tar.xz/src/osmo_ss7_vty.c
Changed
@@ -67,6 +67,20 @@ "SCTP (Stream Control Transmission Protocol)\n" \ "TCP (Transmission Control Protocol)\n" +#define QOS_CLASS_RANGE_STR "<0-7>" +#define QOS_CLASS_RANGE_HELP_STR "QoS Class\n" +#define QOS_CLASS_VAR_STR "(" QOS_CLASS_RANGE_STR "|default)" +#define QOS_CLASS_VAR_HELP_STR \ + QOS_CLASS_RANGE_HELP_STR \ + "Default QoS Class (0)\n" + +#define ROUTE_PRIO_RANGE_STR "<0-4294967295>" +#define ROUTE_PRIO_RANGE_HELP_STR "Priority\n" +#define ROUTE_PRIO_VAR_STR "(" ROUTE_PRIO_RANGE_STR "|default)" +#define ROUTE_PRIO_VAR_HELP_STR \ + ROUTE_PRIO_RANGE_HELP_STR \ + "Default Priority (5)\n" + /* netinet/tcp.h */ static const struct value_string tcp_info_state_values = { { TCP_ESTABLISHED, "ESTABLISHED" }, @@ -341,7 +355,7 @@ } DEFUN_ATTR(cs7_rt_upd, cs7_rt_upd_cmd, - "update route POINT_CODE MASK linkset LS_NAME priority PRIO qos-class (CLASS|default)", + "update route POINT_CODE MASK linkset LS_NAME priority " ROUTE_PRIO_VAR_STR " qos-class " QOS_CLASS_VAR_STR "", "Update the Route\n" "Update the Route\n" "Destination Point Code\n" @@ -349,10 +363,9 @@ "Specify Destination Linkset\n" "Linkset Name\n" "Specify Priority\n" - "Priority\n" + ROUTE_PRIO_VAR_HELP_STR "Specify QoS Class\n" - "QoS Class\n" - "Default QoS Class\n", + QOS_CLASS_VAR_HELP_STR, CMD_ATTR_IMMEDIATE) { struct osmo_ss7_route_table *rtable = vty->index; @@ -361,6 +374,7 @@ int mask = osmo_ss7_pointcode_parse_mask_or_len(rtable->inst, argv1); const char *ls_name = argv2; unsigned int argind; + int rc; if (dpc < 0) { vty_out(vty, "%% Invalid point code (%s)%s", argv0, VTY_NEWLINE); @@ -372,16 +386,9 @@ return CMD_WARNING; } - rt = osmo_ss7_route_create(rtable, dpc, mask, ls_name); - if (!rt) { - vty_out(vty, "%% Cannot create route %s/%s to %s%s", - argv0, argv1, argv2, VTY_NEWLINE); - return CMD_WARNING; - } - switch (argc) { case 3: - return CMD_SUCCESS; + break; /* Continue below */ case 5: if (strcmp(argv3, "priority") != 0 && strcmp(argv3, "qos-class") != 0) @@ -397,18 +404,46 @@ return CMD_WARNING; } + rt = ss7_route_alloc(rtable, dpc, mask); + if (!rt) { + vty_out(vty, "%% Cannot allocate new route%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if ((rc = ss7_route_set_linkset(rt, ls_name)) < 0) { + vty_out(vty, "%% Cannot find linkset %s%s", ls_name, VTY_NEWLINE); + goto destroy_warning; + } + argind = 3; if (argc > argind && !strcmp(argvargind, "priority")) { argind++; - rt->cfg.priority = atoi(argvargind++); + if (strcmp(argvargind, "default") != 0) + rt->cfg.priority = atoi(argvargind); + argind++; } if (argc > argind && !strcmp(argvargind, "qos-class")) { argind++; - rt->cfg.qos_class = atoi(argvargind++); + if (strcmp(argvargind, "default") != 0) + rt->cfg.qos_class = atoi(argvargind); + argind++; + } + + if ((rc = ss7_route_insert(rt)) < 0) { + char buf_err128; + strerror_r(-rc, buf_err, sizeof(buf_err)); + vty_out(vty, "%% Cannot insert route %s/%s to %s: %s (%d)%s", + argv0, argv1, argv2, + buf_err, rc, VTY_NEWLINE); + goto destroy_warning; } return CMD_SUCCESS; + +destroy_warning: + osmo_ss7_route_destroy(rt); + return CMD_WARNING; } DEFUN_ATTR(cs7_rt_rem, cs7_rt_rem_cmd, @@ -457,7 +492,7 @@ osmo_ss7_pointcode_print(rtable->inst, rt->cfg.pc), osmo_ss7_pointcode_print2(rtable->inst, rt->cfg.mask), rt->cfg.linkset_name); - if (rt->cfg.priority) + if (rt->cfg.priority != OSMO_SS7_ROUTE_PRIO_DEFAULT) vty_out(vty, " priority %u", rt->cfg.priority); if (rt->cfg.qos_class) vty_out(vty, " qos-class %u", rt->cfg.qos_class); @@ -1053,9 +1088,9 @@ } DEFUN_ATTR(asp_qos_clas, asp_qos_class_cmd, - "qos-class <0-255>", + "qos-class " QOS_CLASS_RANGE_STR, "Specify QoS Class of ASP\n" - "QoS Class of ASP\n", + QOS_CLASS_RANGE_HELP_STR, CMD_ATTR_NODE_EXIT) { struct osmo_ss7_asp *asp = vty->index; @@ -1914,9 +1949,9 @@ } DEFUN_ATTR(as_qos_clas, as_qos_class_cmd, - "qos-class <0-255>", + "qos-class " QOS_CLASS_RANGE_STR, "Specity QoS Class of AS\n" - "QoS Class of AS\n", + QOS_CLASS_RANGE_HELP_STR, CMD_ATTR_IMMEDIATE) { struct osmo_ss7_as *as = vty->index;
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/src/ss7_internal.h -> libosmo-sigtran_2.0.0.15.e553.tar.xz/src/ss7_internal.h
Changed
@@ -50,3 +50,13 @@ SS7_ASP_CTR_PKT_RX_UNKNOWN, SS7_ASP_CTR_PKT_TX_TOTAL, }; + +/*********************************************************************** + * SS7 Routes + ***********************************************************************/ +#define OSMO_SS7_ROUTE_PRIO_DEFAULT 5 + +struct osmo_ss7_route * +ss7_route_alloc(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask); +int ss7_route_set_linkset(struct osmo_ss7_route *rt, const char *linkset_name); +int ss7_route_insert(struct osmo_ss7_route *rt);
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/tests/vty/osmo_stp_route_prio.vty -> libosmo-sigtran_2.0.0.15.e553.tar.xz/tests/vty/osmo_stp_route_prio.vty
Changed
@@ -65,18 +65,17 @@ OsmoSTP(config-cs7)# ! ADD 2 ROUTES WITH DECREASING PRIORITIES. THEY SHOULD END UP REORDERED BY PRIORITY: OsmoSTP(config-cs7)# route-table system -OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset as1 priority 5 -OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset as3 -OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset as2 priority 2 -OsmoSTP(config-cs7-rt)# ! FIXME! THIS IS WRONG ORDER: +OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset as1 priority 6 +OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset as2 +OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset as3 priority 2 OsmoSTP(config-cs7-rt)# show running-config ... cs7 instance 0 ... route-table system - update route 3.2.1 7.255.7 linkset as1 priority 5 - update route 3.2.1 7.255.7 linkset as3 - update route 3.2.1 7.255.7 linkset as2 priority 2 + update route 3.2.1 7.255.7 linkset as3 priority 2 + update route 3.2.1 7.255.7 linkset as2 + update route 3.2.1 7.255.7 linkset as1 priority 6 ... OsmoSTP(config-cs7-rt)# do show cs7 instance 0 route Routing table = system @@ -84,6 +83,6 @@ Destination C Q P Linkset Name Linkset Non-adj Route ---------------------- - - - ------------------- ------- ------- ------- -3.2.1/14 5 as1 ? ? ? -3.2.1/14 0 as3 ? ? ? -3.2.1/14 2 as2 ? ? ? +3.2.1/14 2 as3 ? ? ? +3.2.1/14 5 as2 ? ? ? +3.2.1/14 6 as1 ? ? ?
View file
libosmo-sigtran_2.0.0.10.48be.tar.xz/tests/vty/osmo_stp_test.vty -> libosmo-sigtran_2.0.0.15.e553.tar.xz/tests/vty/osmo_stp_test.vty
Changed
@@ -263,7 +263,7 @@ no remote-ip (A.B.C.D|X:X::X:X) local-ip (A.B.C.D|X:X::X:X) primary no local-ip (A.B.C.D|X:X::X:X) - qos-class <0-255> + qos-class <0-7> role (sg|asp|ipsp) transport-role (client|server) sctp-param init (num-ostreams|max-instreams|max-attempts|timeout) <0-65535> @@ -347,7 +347,7 @@ traffic-mode (broadcast | loadshare | roundrobin | override) no traffic-mode recovery-timeout <1-2000> - qos-class <0-255> + qos-class <0-7> routing-key RCONTEXT DPC routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) routing-key RCONTEXT DPC ssn SSN @@ -570,7 +570,7 @@ OsmoSTP(config-cs7)# route-table system OsmoSTP(config-cs7-rt)# list ... - update route POINT_CODE MASK linkset LS_NAME priority PRIO qos-class (CLASS|default) + update route POINT_CODE MASK linkset LS_NAME priority (<0-4294967295>|default) qos-class (<0-7>|default) remove route POINT_CODE MASK OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass OsmoSTP(config-cs7-rt)# show running-config @@ -587,13 +587,31 @@ ... route-table system ... !update route 3.2.1 7.255.7 linkset my-ass +OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass priority default +OsmoSTP(config-cs7-rt)# show running-config +... +cs7 instance 0 +... + route-table system + update route 3.2.1 7.255.7 linkset my-ass +... +OsmoSTP(config-cs7-rt)# remove route 3.2.1 7.255.7 OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass priority 5 OsmoSTP(config-cs7-rt)# show running-config ... cs7 instance 0 ... route-table system - update route 3.2.1 7.255.7 linkset my-ass priority 5 + update route 3.2.1 7.255.7 linkset my-ass +... +OsmoSTP(config-cs7-rt)# remove route 3.2.1 7.255.7 +OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass priority 6 +OsmoSTP(config-cs7-rt)# show running-config +... +cs7 instance 0 +... + route-table system + update route 3.2.1 7.255.7 linkset my-ass priority 6 ... OsmoSTP(config-cs7-rt)# remove route 3.2.1 7.255.7 OsmoSTP(config-cs7-rt)# show running-config @@ -601,25 +619,25 @@ cs7 instance 0 ... route-table system -... !update route 3.2.1 7.255.7 linkset my-ass priority 5 -OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass priority 5 qos-class 1 +... !update route 3.2.1 7.255.7 linkset my-ass priority 6 +OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass priority 6 qos-class 1 OsmoSTP(config-cs7-rt)# show running-config ... cs7 instance 0 ... route-table system - update route 3.2.1 7.255.7 linkset my-ass priority 5 qos-class 1 + update route 3.2.1 7.255.7 linkset my-ass priority 6 qos-class 1 ... cs7 instance 1 ... route-table system -... !update route 3.2.1 7.255.7 linkset my-ass priority 5 qos-class 1 +... !update route 3.2.1 7.255.7 linkset my-ass priority 6 qos-class 1 OsmoSTP(config-cs7-rt)# remove route 3.2.1 7.255.7 OsmoSTP(config-cs7-rt)# show running-config ... cs7 instance 0 ... route-table system -... !update route 3.2.1 7.255.7 linkset my-ass priority 5 qos-class 1 +... !update route 3.2.1 7.255.7 linkset my-ass priority 6 qos-class 1 OsmoSTP(config-cs7-rt)# update route 3.2.1 7.255.7 linkset my-ass priority % Incomplete command (missing an argument?)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.