Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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
Airborne Networking wikipedia , lookup
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: "= " "<=" ("<=") ">=" (">=") "<>" ("<>") 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