Download Downloading topology

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Parallel port wikipedia , lookup

Computer network wikipedia , lookup

Power over Ethernet wikipedia , lookup

Backpressure routing wikipedia , lookup

Point-to-Point Protocol over Ethernet wikipedia , lookup

Network tap wikipedia , lookup

Registered jack wikipedia , lookup

CAN bus wikipedia , lookup

IEEE 1355 wikipedia , lookup

Airborne Networking wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Everything2 wikipedia , lookup

Transcript
Downloading topology
Author: Maciej Łabędzki, Marek Lewandowski
This is a low-level design documentation of the API for downloading topology data from cNIS through
the AutoBAHN Service interface.
Basic rules:
1. The operation of topology download can be done by sending a properly constructed XML
request, compatible with the schema defined in the autobahn.xsd file, to cNIS.
2. The topology download request can include the following filtration parameters:
a. Partition name – name of cNIS partition the requested topology belongs to.
b. Pruning parameters – additional criteria for downloaded topology like delay,
bandwidth, interface type and others (available criteria are defined in the
autobahn.xsd file).
3. For each request received from AutoBAHN-compatible client cNIS returns a response
containing the requested data and/or the error code.
Topology partitioning
Partitioning can be understood as a simple filtering operation. Partitioning assumes that network
topology elements are assigned to groups of users. A user can only view data that have been
assigned to his group.
Partitioned entities: CTP, Ethernet link, Ethernet node, Ethernet physical port, HO VC concat, HO VC
link, MPLS Interface, MPLS Link, MPLS Node, SDH node, SDH physical interface, SDH physical link,
VCG TP, VCG, VLAN port, VLAN range.
Each partitioned entity possesses belongs_to attribute that indicates its attachment. Currently cNIS
supports partitioning on a user group's level. Using the dedicated application (cABS) it is possible to
retrieve the whole partitioned network topology, but DAO supports retrieving single types of
partitioned topology elements (e.g. only Ethernet nodes) as well.
Cascade partitioning
To improve the basic functionality cascade partitioning for links and interfaces has been introduced.
Cascading enables to determine the value of the belongs_to attribute if it is empty:


interface: if belongs_to is empty, use node’s attribute
link: if belongs_to is empty, use start and end interfaces belongs_to attributes (if equal)
Let's take a look on examples of partitioning:
The whole topology consists of 2 nodes (R1, R2), 2 interfaces (I1, I2) and a link. The partitioned
topology (for "g1") consists of 1 node (R1, because of its belongs_to attribute value) and 1 interface
(I1, because of its node's belongs_to attribute value).
The whole topology consists of 2 nodes (R1, R2), 2 interfaces (I1, I2) and a link. The partitioned
topology for "g1"consists of 1 node (R1, because of its belongs_to attribute value) and 2 interfaces
(I2 because itsbelongs_to attribute value; I1, because of its node's belongs_to attribute value) and 1
link (because of its start and end interfaces' belongs_to attributes values). The partitioned topology
for "g2" consists of 1 node (R2).
Topology pruning
Pruning is an operation of advanced filtering of Ethernet and SDH topology data. It has been
introduced into cNIS to fulfil AutoBAHN requirements.
cMA provides exploration panel that allows to define search criteria. Search criteria relate to
attributes of individual elements only (e.g routers or interfaces). With the exploration panel it is
possible to create queries like:



"find all routers produced by JUNIPER, with IP addresses like 192.150.*.*"
"find all IP interfaces with status 'down' and IP address prefix length between 8 and 16"
"find all networks with description like 'example of description' and IP address
like 170.150.*.*"
Using cMA only it is impossible to create sophisticated query conditions, like:

find a network topology with MTU of IP interfaces less then 1500 and vendor of routers
= JUNIPER
Assumptions
To provide fast and reliable methods for retrieving a pruned topology, it has been assumed that the
set of pruning parameters is constant. They are the following:






VLAN port: is_tagged
VLAN range: range of VLANs available on a particular SDH node
Ethernet link, SDH physical link, HO VC link: propDelay
Ethernet link, SDH physical link, HO VC link: bandwidth
Ethernet physical port, Ethernet logical port, SDH physical interface, VCG TP, VLAN
port, CTP: mds (Maximum Datagram Size)
Ethernet physical port, Ethernet logical port, SDH physical interface, VCG TP, VLAN
port, CTP: interfaceRate
For propDelay, bandwidth, mds and interfaceRate (all of them are numeric attributes) relational
operators can be used. Possible relational operators:




"= "
"<=" ("&lt;=")
">=" ("&gt;=")
"<>" ("&lt;>")
Cascade pruning
Pruning is performed in a "bottom - up" manner. Sequence of pruning operations:
1. Retrieve pruned links
2. Retrieve pruned interfaces
a. Limit obtained links and interfaces:
i. remove links start and end interfaces ow which are not present in pruned
interfaces set
ii. build a new set of interfaces: select start and end interfaces of links (limited
in previous step)
3. Retrieve pruned nodes
a. From each node's interfaces remove the ones, that are not present in the previously
obtained set of interfaces (previous step)
4. Retrieve other pruned network topology elements (like SDH domains, Ethernet domains)
5. Retrieve network topology elements that are not pruned.
Warning
One has to remember that if pruning is executed together with partitioning all elements retrieved
directly from the database (steps: 1, 2, 3, 4) will be pruned and partitioned at once.
Let's take a look on the following scenario:



Database contains 2 nodes (N1, N2), 2 interfaces (I1 on N1, I2 on N2) and 1 link (L1 between
I1 and I2)
All of the network topology elements satisfy the pruning conditions (pc) and are part of the
Ethernet topology
link L1 belongs to "group1", belongs_to attributes of other elements (N1, N2, I1, I2) are
empty
Results of pruning operations:

getPrunedEthTopology(pc) will return: 2 nodes, 2 interfaces, 1 link (all of them fulfil
pruning conditions)


getPrunedEthTopology("group1"): 1 link (L1.belongs_to = "group1")
getPrunedEthTopology(pc, "group1"): empty topology
Explanation of the last case:
1. Retrieve pruned links - 1 link
2. Retrieve pruned interfaces - 0 interfaces (there are no interfaces that belong to "group1")
a. Limit obtained links and interfaces:
i. remove links start and end interfaces of which are not present in the pruned
interfaces set - 0 links
ii. build a new set of interfaces: select start and end interfaces of links (limited
in previous step) - 0 interfaces
3. Retrieve pruned nodes - 0 nodes
a. From each node's interfaces remove the ones, that are not present in previously
obtained set of interfaces (previous step)
4. Retrieve other pruned network topology elements (like SDH domains, Ethernet domains) - 0
elements
5. Retrieve network topology elements that are not pruned. - 0 elements