Intel IXA SDK ACE Programming Framework - Department of ...
Intel IXA SDK ACE Programming Framework - Department of ...
Intel IXA SDK ACE Programming Framework - Department of ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
The Object Management System<br />
A networking application that uses the <strong>ACE</strong> programming framework makes use <strong>of</strong><br />
function libraries, macros, and so on that are provided with the <strong>SDK</strong>. Such an application<br />
includes source code in the following languages:<br />
Language Tools Libraries and predefined code<br />
C/C++<br />
Gnu toolchain (gcc, ld,<br />
gdb, and so on)<br />
Object Management System<br />
(OMS), Action Services Library<br />
(ASL), Resource Manager, startup<br />
and configuration scripts<br />
IXP1200 microcode<br />
IXP1200 Microengine<br />
Development Environment<br />
IXP1200 packet-handling macros,<br />
micro<strong>ACE</strong> macros<br />
Network Classification<br />
Language (NCL)<br />
<strong>IXA</strong> Interface Definition<br />
Language (IDL)<br />
NCL compiler (nclcomp)<br />
<strong>IXA</strong> IDL compiler<br />
(tao_idl)<br />
TCP/IP protocol definitions<br />
The <strong>IXA</strong> <strong>SDK</strong> provides entire predefined <strong>ACE</strong>s that you can use as building blocks<br />
for rapid application development. These include the following:<br />
l<br />
l<br />
l<br />
The interface <strong>ACE</strong>s, system-defined micro<strong>ACE</strong>s that every application uses to<br />
receive and transmit packets on the network interface ports<br />
The stack <strong>ACE</strong>, which represents the Linux * TCP/IP stack<br />
Several library <strong>ACE</strong>s that perform typical networking tasks such as layer-three<br />
packet forwarding, layer-two bridging, and network address translation.<br />
For more information on the predefined <strong>ACE</strong>s, see Chapter 7, “Interface <strong>ACE</strong>s,” and<br />
Chapter 8, “Stack and Library <strong>ACE</strong>s.”<br />
The Object Management System<br />
The Object Management System (OMS), part <strong>of</strong> the IX system s<strong>of</strong>tware, is a single<br />
logical entity with components distributed throughout the system. The OMS services<br />
are part <strong>of</strong> the <strong>IXA</strong> API. The management and control modules for an application use<br />
the global C functions defined by the OMS services to create, configure, control, and<br />
destroy objects and structures in all parts <strong>of</strong> the application, and to perform global<br />
tasks. The primary global services your application requires are:<br />
l<br />
l<br />
l<br />
Creating and destroying <strong>ACE</strong>s<br />
Defining and controlling packet flow using targets<br />
Communicating among <strong>ACE</strong>s and other programs with crosscalls<br />
Parts <strong>of</strong> the<br />
OMS<br />
The OMS contains the following parts:<br />
l<br />
The Resolver, which creates and deletes <strong>ACE</strong>s, and manages packet flow by<br />
binding <strong>ACE</strong>s and targets.<br />
20 Elements <strong>of</strong> an Application<br />
Revision 3.3, August 2001