Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:NoseyNick
perl-Net-BGP
perl-Net-BGP.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File perl-Net-BGP.spec of Package perl-Net-BGP
# # spec file for package perl-Net-BGP # # Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define cpan_name Net-BGP Name: perl-Net-BGP Version: 0.18 Release: 0 Summary: Border Gateway Protocol version 4 speaker/listener library License: Artistic-1.0 OR GPL-1.0-or-later URL: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/S/SS/SSCHECK/%{cpan_name}-%{version}.tar.gz BuildArch: noarch BuildRequires: perl BuildRequires: perl-macros %{perl_requires} %description This module is an implementation of the BGP-4 inter-domain routing protocol. It encapsulates all of the functionality needed to establish and maintain a BGP peering session and exchange routing update information with the peer. It aims to provide a simple API to the BGP protocol for the purposes of automation, logging, monitoring, testing, and similar tasks using the power and flexibility of perl. The module does not implement the functionality of a RIB (Routing Information Base) nor does it modify the kernel routing table of the host system. However, such operations could be implemented using the API provided by the module. The module takes an object-oriented approach to abstracting the operations of the BGP protocol. It supports multiple peering sessions and each peer corresponds to one instance of a Net::BGP::Peer object. The details of maintaining each peering session are handled and coordinated by an instance of a Net::BGP::Process object. BGP UPDATE messages and the routing information they represent are encapsulated by Net::BGP::Update objects. Whenever protocol errors occur and a BGP NOTIFICATION is sent or received, programs can determine the details of the error via Net::BGP::Notification objects. The module interacts with client programs through the paradigm of callback functions. Whenever interesting protocol events occur, a callback function supplied by the user is called and information pertaining to the event is passed to the function for examination or action. For instance, whenever an UPDATE message is received from a peer, the module handles the details of decoding the message, validating it, and encapsulating it in an object and passing the object to the specific callback function supplied by the user for UPDATE message handling. The callback function is free to do whatever with the object - it might send a Net::BGP::Update object to other peers as UPDATE messages, perhaps after modifying some of the UPDATE attributes, log the routing information to a file, or do nothing at all. The possibilities for implementing routing policy via such a mechanism are limited only by the expressive capabilities of the perl language. It should be noted however that the module is intended for the uses stated above and probably would not scale well for very large BGP meshes or routing tables. The module must maintain periodic protocol keep-alive and other processes, so once control is passed to the module's main event loop, control flow only passes back to user code whenever one of the callback functions is invoked. To provide more interaction with user programs, the module allows user timers to be established and called periodically to perform further processing. Multiple timers may be established, and each is associated with a single peer. Whenever the timers expire, a user supplied function is called and the timer is reset. The timer callback functions can perform whatever actions are necessary - sending UPDATEs, modifying the state of the peering session, house-keeping, etc. %prep %autosetup -n %{cpan_name}-%{version} %build perl Makefile.PL INSTALLDIRS=vendor %make_build %check make test %install %perl_make_install %perl_process_packlist %perl_gen_filelist %files -f %{name}.files %doc Changes CONTRIBUTING README %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor