afourmy / pynms Goto Github PK
View Code? Open in Web Editor NEWA vendor-agnostic NMS for carrier-grade network simulation and automation
License: GNU General Public License v3.0
A vendor-agnostic NMS for carrier-grade network simulation and automation
License: GNU General Public License v3.0
Implement Prim's algorithm to find the minimum spanning tree.
Add a unit test for both prim and kruskal.
Interface NetDim with Mininet:
Implement Tabu search algorithm to solve the link-weight optimization problem in IP networks:
when it runs, print the network congestion ratio
Congestion = max( link_traffic / link_capacity) for both directions for all links
Export the topology to Google Earth as a KMZ file. This can be done using a library: https://pythonhosted.org/pykml/tutorial.html
OR
http://simplekml.readthedocs.io/en/latest/kml.html
links:
http://fredgibbs.net/tutorials/create-kml-file-python.html
In the internal view of a node (shelf/card inside a network device), deactivating the selection of link triggers the following error:
Traceback (most recent call last):
File "C:\Users\minto\Desktop\pyNMS\pyNMS\main_menus\selection_panel.py", line 33, in
checkbox.clicked.connect(lambda _, m=mode: self.change_selection(m))
File "C:\Users\minto\Desktop\pyNMS\pyNMS\miscellaneous\decorators.py", line 38, in wrapper
function(self, *args, **kwargs)
File "C:\Users\minto\Desktop\pyNMS\pyNMS\main_menus\selection_panel.py", line 44, in change_selection
}mode:
File "C:\Users\minto\Desktop\pyNMS\pyNMS\networks\graph.py", line 200, in all_links
yield from self.pn[type].values()
KeyError: 'plink'
Traceback (most recent call last):
File "C:\Users\minto\Desktop\pyNMS\pyNMS\main_menus\selection_panel.py", line 33, in
checkbox.clicked.connect(lambda _, m=mode: self.change_selection(m))
File "C:\Users\minto\Desktop\pyNMS\pyNMS\miscellaneous\decorators.py", line 38, in wrapper
function(self, *args, **kwargs)
File "C:\Users\minto\Desktop\pyNMS\pyNMS\main_menus\selection_panel.py", line 44, in change_selection
}mode:
File "C:\Users\minto\Desktop\pyNMS\pyNMS\networks\graph.py", line 200, in all_links
yield from self.pn[type].values()
KeyError: 'plink'
Use Open Street Map tiles to display the map:
http://tile.openstreetmap.org/{z}/{x}/{y}.png.format(...)
The idea is to have an alternative to linear programming for the minimum-cost flow problem.
Implement a new "Center view" feature that computes the coordinates of the smallest rectangle that contains all nodes displayed on the canvas, and focus the view on that rectangle.
Should work for a selection as well.
Start fails with shapefile error - File "/usr/local/lib/python3.5/dist-packages/shapefile.py", line 291, in load
raise ShapefileException("Unable to open %s.dbf or %s.shp." % (shapeName, shapeName) )
shapefile.ShapefileException: Unable to open /home/e069390/Projects/pyNMS/Shapefiles/World countries (low resolution).dbf or /home/e069390/Projects/pyNMS/Shapefiles/World countries (low resolution).shp
Shapefiles dir contains no .dbf files, only .shp
Edited pyNMS/views/geographical_view.py to use a different shapefile set & it works fine, so definitely an issue with either missing or corrupt files
Right now, I build the routing table for each router as a dictionnary that binds an IP address (destination) to the next hop. I need to summarize the routes to reduce the number of entries in the routing table when the network is big.
During the routing process, I need to find the summarized address that contains the IP address of the destination: the fastest way to do so could be to look for the longest prefix match in binary, like in real-life networks.
Perhaps it would be best to store the IP address in both binary and decimal formats right after I create it, so that I don't have to convert back and forth every time I need one of them.
Details here:
http://www.ciscopress.com/articles/article.asp?p=174107&seqNum=3
and more details in the checkio task I created:
https://checkio.org/mission/ip-network-route-summarization/
As of now, four algorithms are implemented to find the maximum flow. All four of them compute the maximum flow from a source node to a destination node (aka sink node).
Allow the user to define not just one source / sink node, but a set of sources / sinks, and update the algorithm so that it adds a virtual (dummy) source (resp sink) when there is more than one source (resp sink).
Same with minimum-cost flow.
fix import of YAML and XLS file (export works, import is broken)
fix the import/export test which is broken too
Add labels for
the model is to complex to be stored in an excel (per-AS node properties, etc)
it must remain possible to import object and object properties with excel, but the saving of a project must be done in .yml format
For Netmiko and NAPALM, add a way for the user to change the global_delay_factor from the GUI.
This is useful when a device is under heavy load: the standard SSH connection fails because of that delay being too low.
Right now, I use bhandari / suurbale to find the shortest link-disjoint pair.
The following improvements can be implemented:
When a property that does not exist in the model is imported via XLS or YAML, it must be automatically created and added for the associated subtype
When a graph drawing algorithm is triggered from within a site (internal site view), all links between site nodes are considered as spring even if they do know belong to the site.
Ideally, they should be filtered and a mechanism should be implemented to automatically add all links that connect two site nodes to the site.
There's an issue when drawing a map by importing a shapefile: very small countries like Vatican, San Marin, Monaco, etc are not drawn properly on the QGraphicScene.
There must be something wrong with the drawing of complex multipolygons in the algorithm.
This happens only with shapefiles that contain such countries, i.e with a high precision.
Even when the selection of links is activated, some links have the isSelectable flag set to False because of the bindings used for link creation.
Add drag and drop support for the user to creates nodes, to avoid creating node by mistake.
For the user to quickly identify the source and destination of a link, add arrow(s ?) from the source to the destination.
The easiest way would be to create an arrow right in the middle (the other option, more complex, would be to have two arrows at 1/4 and 3/4 of the link)
What's difficult is that links are not straights when there are multiple links between two nodes.
A "fake" invisible (with a lower "z" position on the canvas, or a null width) link must be created: it terminates with an arrow at a position which is the middle of the real link (the middle being the middle position of the straight line between two nodes, with an offset that depends on the number of links)
In IP networks (OSPF and IS-IS), whenever a link (or node) fails, a Fast Reroute (FRR) protection can be activated for the router to precompute a next-hop to reroute the traffic (within < 50ms usually before the protocol reconvergence).
The next-hop must be chosen to avoid loops (Loop-Free Alternate).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.