Diameter C++ API and Open Diameter Project: Yoshihiro Ohba Victor Fajardo Dilip Patel

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 7

Diameter C++ API and

Open Diameter Project


Yoshihiro Ohba
Victor Fajardo
Dilip Patel

IETF55 AAA WG Diameter C++ API and Open Diamet 1


er project
Diameter C++ API
• Design policy
– Leveraging object-oriented nature of C++
– Reuse what is already defined in the C API as
much as possible
• Document
– draft-ohba-aaa-diameter-cxxapi-00.txt
– Sample code in Appendix

IETF55 AAA WG Diameter C++ API and Open Diamet 2


er project
Why C++ API?
• Since classes are hierarchically defined, it is easy
to reuse and extend what is already defined
• C++ has a built-in exception handling mechanism
for providing a better way of handling errors
• Better handling of callback functions
– A set of variables and associated functions can be
passed in a single argument as a pointer to a class
instance

IETF55 AAA WG Diameter C++ API and Open Diamet 3


er project
Basic Structure of the API
• Element data-type definitions
– No member functions
– Type definitions in the C API are reused
• Parser class definitions
– Classes for assembling/reassembling messages and
AVPs
• Session/Event/Message Control class definitions
– Classes for handling sessions, events and sending
messages
IETF55 AAA WG Diameter C++ API and Open Diamet 4
er project
Open Diameter Project
• History
– “Open Source Diameter” Project created in SourceForge in Jan 2002, by David
Frascone
– “OpenDiameter” Project created in Oct 2002 by Toshiba America Research, Inc.
(TARI)
– The two projects were merged into “Open Diameter” project in Nov 2002
• URL
– http://www.opendiameter.org (project home page)
– http://sourceforge.net/projects/diameter (CVS repository, tar archives, ML)
• Source code
– Using the C++ API, (Java-based implementation is also planned)
– Thread-safe
– Using ACE (Adaptive Communication Environment) library to archive OS-
independency and employ typical design patterns
– Using XML for Command & AVP dictionary and configuration files
– Libraries are under Lesser GPL (LGPL)
– Daemon programs will be under GPL

IETF55 AAA WG Diameter C++ API and Open Diamet 5


er project
Open Diameter Architecture
The Main Thread Timer, signal, thread, connection and
configuration management

Session Manager(libdiameter) Parser(libdiamparser)


AVP
Per-session
Event … Session Container
Pool
Parser
Serializer DB DB

Pool of …
Threads
Transport&Routing Manager(libdiameter)
Per-peer
Message … Peer Routing
Queues DB DB

Per-connection …
Threads

Transport Connections
IETF55 AAA WG Diameter C++ API and Open Diamet 6
er project
• Can the C++ API be a work item of the
WG?
– We believe that the C++ API (as well as the C
API) and the Open Diameter project can help
the community deploy Diameter quickly

IETF55 AAA WG Diameter C++ API and Open Diamet 7


er project

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy