how-to configure a bgp-ls peer - opendaylight

I have brought up an Opendaylight instance in order to establish a BGP-LS session with our network and get topology information.
So, the objective is to configure 1 peering with a router and get node, link,network information.
I have concluded that the documentation is more accurate over here: https://github.com/opendaylight/docs/blob/master/docs/user-guide/bgpcep-guide/bgp/bgp-user-guide-linkstate-family.rst
I have done this step https://github.com/opendaylight/docs/blob/master/docs/user-guide/bgpcep-guide/bgp/bgp-user-guide-running-bgp.rst and works.
Unfortunately, there are no such files like it is described here https://github.com/opendaylight/docs/blob/stable/lithium/manuals/user-guide/src/main/asciidoc/bgpcep/odl-bgpcep-bgp-all-user.adoc
Meaning, I cannot locate 31-bgp.xml and 41-bgp-example.xml
I would like to ask if there are or can be derived somehow .xml files that describe fully all the parameters available, so that I can configure OpenDaylight by using these .xml files.
The examples mentioned in the first link are targeting a few specific parameters, and it is not about a nearly complete example.
Could you please advise how to:
get the necessary bgp-ls configuration .xml files that fully
configure ODL as BGP speaker and a peering ?
Many Thanks.

These files has been removed as a part of task BGPCEP-685.
You can still find them in previous release like here or here
There is also wiki about configuring BGP peer.

Related

SSH Access Netconf Server in OpenDaylight

I need to access the config subsystem (a.ka. the datastore) in OpenDaylight. I have read the user guide and know that the way to access it is via:
ssh admin#localhost -p 2830 -s netconf
or (the way I shell into it):
# netopeer2-cli
> connect --ssh --port 2830 --login admin
Once logged in, I noticed after running get-config I don't see the actual data in the subsystem.
> get-config --source=running
DATA
<network-topology xmlns="urn:TBD:params:xml:ns:yang:network-topology">
<topology>
<topology-id>topology-netconf</topology-id>
</topology>
</network-topology>
In a previous project, I was running netopeer2-server and sysrepo and the data in get-config was fleshed out. I believe the reason I am seeing such little information is because the netconf-server I am looking at is the MDSAL netconf-server on port 2830. Based on the user guide, there should be another netconf-server on port 1830 that has direct access to the config subsystem.
How do I access the normal netconf-server on port 1830?
My main goal is to access the data in the full subsystem via get-config and edit the data via edit-config -- how do I do that?
My versions:
OpenDaylight Sodium (based off of 0.11.0)
netopeer2-cli v1.1.39
It looks like the config subsystem endpoint was deprecated back in Flourine--but the documentation has not been updated--even the latest release notes for Sodium indicate that they still maintain a CSS NETCONF server as part of their standard set of questions the dev team answers. I found this here:
https://jira.opendaylight.org/browse/NETCONF-535
I believe the MDSAL server is the only one available now, and it does (in its HELLO response) seem to indicate that it maintains the capabilities for all YANG-compliant modules. However, I cannot access these elements using the netopeer2-cli as the libyang parsing seems to issue a lot of errors. I suspect this is an issue related to netopeer2-cli and its requesting/parsing of the various YANG files after the initial HELLO and how it works with libyang to construct a local version of the model for the purposes of handling various NETCONF requests.

Hosts File for Greenplum Installation

I am setting up greenplum 3 node cluster for POC while checking installation steps I found that hostfile_exkeys file have to be in master node.
Can anyone tell me where I should create this file location, node etc?
And most important what to put in this?
You create hostfile_exkeys on the Master. It isn't needed on the other hosts. You can put it in /home/gpadmin or anywhere that is convenient for you.
You put the three hostnames for your POC in this file. Example:
mdw
sdw1
sdw2
This is documented pretty well here: https://gpdb.docs.pivotal.io/5120/install_guide/prep_os_install_gpdb.html
You can also run a POC in the cloud. Greenplum is available in AWS, Azure, and GCP. It does all of the configuration for you. You can even use the BYOL product listings for 90 days for free to evaluate the product or you can use the Hourly billed products to get support while you evaluate the product.
There are examples in the utililty reference for gpssh-exkeys documentation but, in general, you should put in all the hostnames in your cluster. If there a multiple network-interfaces, those can go in instead.
I generally put this file either in /home/gpadmin or /home/gpadmin/gpconfigs (good place to keep all files for initial setup and initialization).
Your file will look something like (one name per line):
mdw
sdw1
sdw2
If there are 2 network interfaces, it might look something like:
mdw
mdw-1
mdw-2
sdw1
sdw1-1
sdw1-2
sdw2
sdw2-1
sdw2-2
Your /etc/hosts file (on all server) should include the IP addresses for all the interfaces and their names, so this file should match those names listed in /etc/hosts.
This is primarily to allow the master to exchange ssh keys with all hosts so it is always password-less login to the hosts. After you have this file set up, you will run (example):
gpssh-exkeys -f /home/gpadmin/gpconfigs/yourhostfilename
I hope this helps.

protoc command not generating all base classes (java)

I have been trying to generate the basic gRPC client and server interfaces from a .proto service definition here from the grpc official repo.
The relevant service defined in that file (from the link above) is below:
service RouteGuide {
rpc GetFeature(Point) returns (Feature) {}
rpc ListFeatures(Rectangle) returns (stream Feature) {}
rpc RecordRoute(stream Point) returns (RouteSummary) {}
rpc RouteChat(stream RouteNote) returns (stream RouteNote) {}
}
The command I run is protoc --java_out=${OUTPUT_DIR} path/to/proto/file
According to the grpc site (specifically here), a RouteGuideGrpc.java which contains a base class RouteGuideGrpc.RouteGuideImplBase, with all the methods defined in the RouteGuide service is supposed to have been generated from the protoc command above, but that file does not get generated for me.
Has anyone faced similar issues? Is the official documentation simply incorrect? And would anyone have any suggestion as to what I can do to generate that missing class?
This may help someone else in the future so I'll answer my own question.
I believe the java documentation for gRPC code generation is not fully up to date and the information is scattered amongst different official repositories.
So turns out that in order to generate all the gRPC java service base classes as expected, you need to specify an additional flag to the protoc cli like so grpc-java_out=${OUTPUT_DIR}. But in order for that additional flag to work, you need to have a few extra things:
The binary for the protoc plugin for gRPC Java protoc-gen-grpc-java: you can get the relevant one for your system from maven central here (the link is for v1.17.1). If there isn't a prebuilt binary available for your system, you can compile one yourself from the github repo instructions here.
Make sure the binary location is added to your PATH environment variable and the binary is renamed to "protoc-gen-grpc-java" exactly (that is the name the protoc cli expects to have in the path).
Finally, you are ready to run the correct command protoc --java_out=${OUTPUT_DIR} --grpc-java_out=${OUTPUT_DIR} path/to/proto/file and now the service base classes like RouteGuideGrpc.RouteGuideImplBase should be generated when it previously was not.
I hope this explanation helps someone else out in the future.
Thank you very much for this investigation. Indeed, the doc is incomplete, and people use Maven to compile everything without understanding of how it really works. Yp

How can you implement gis server using laravel?

I want to start a project where my web application would suggest best path available to reach from one destination to another.
https://github.com/eleven-lab/laravel-geo
I found above url but I really don't know how to use that above mentioned thing properly. Can someone please help me understand it?
There are many applications to do routing in GIS.If you have ESRI, they have a network builder module. In open source you can start with OSM https://wiki.openstreetmap.org/wiki/Routing. Also check out OSM routing with SpatiaLite. https://www.gaia-gis.it/fossil/libspatialite/wiki?name=misc-docs ( http://www.gaia-gis.it/gaia-sins/Using-Routing.pdf).

Opendaylight: How to get a row from OVSDB table

I'm having a hard time getting a specific value out of the OVSDB using Opendaylight.
I can get the information fine using the JSON-RPC call directly to the OVSDB host but I haven't found a way to consult the OVSDB database from ODL.
Specifically, I'm trying to get the statistics of any given port on a given switch but so far I haven't found it yet.
I'm not using ODL as Openflow controller, just as OVSDB manager.
is what you want (the statistics) available by polling the operational
topology after your ovsdb node is connected?
do a GET to http://${ODL_IP}:8181/restconf/operational/network-topology:network-topology
here's an example output in ODL csit

Resources