13.06.2015 Views

Intel IXA SDK ACE Programming Framework - Department of ...

Intel IXA SDK ACE Programming Framework - Department of ...

Intel IXA SDK ACE Programming Framework - Department of ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

OMS for Global Application Services<br />

appear, from the Linux TCP/IP stack point <strong>of</strong> view, as standard Ethernet interfaces.<br />

This provides a means for you to re-use existing or third-party protocol stack or<br />

management plane s<strong>of</strong>tware while migrating an application to the <strong>ACE</strong> model.<br />

OMS for Global Application Services<br />

Object Management System (OMS) services are part <strong>of</strong> the <strong>IXA</strong> API. The OMS, part <strong>of</strong><br />

the <strong>IXA</strong> system s<strong>of</strong>tware, is a single logical entity with components distributed<br />

throughout the system. Any <strong>ACE</strong> can make use <strong>of</strong> OMS services. Any program that<br />

must communicate with an <strong>ACE</strong> can do so by registering itself with the OMS as a task.<br />

An application uses global C functions defined by the OMS services to create,<br />

configure, control, and destroy objects and structures in all parts <strong>of</strong> the application,<br />

and to perform global tasks. The primary global services your application requires<br />

are:<br />

l<br />

l<br />

l<br />

Creating and destroying <strong>ACE</strong>s and tasks<br />

Defining and controlling packet flow using targets<br />

Communicating among <strong>ACE</strong>s and tasks<br />

The OMS contains the following parts:<br />

l The Resolver, which creates and deletes <strong>ACE</strong>s, and manages packet flow by<br />

binding <strong>ACE</strong>s and targets.<br />

l<br />

The Name Server, which manages the name space for the OMS, maintaining a<br />

correspondence between names and internal identifiers for <strong>ACE</strong>s, targets and<br />

tasks. The name space allows objects that might be distributed among processors<br />

to address one another unambiguously.<br />

In order to communicate with and through the OMS, a program must create a<br />

communications channel, a separate process or thread containing a communication<br />

access process, or CAP. A program can communicate with both the Resolver and the<br />

Name Server through the same CAP. When you create an <strong>ACE</strong> or task structure, a<br />

CAP is automatically created with it. The OMS provides functions to retrieve the<br />

CAP for use as an argument to other OMS functions.<br />

Creating <strong>ACE</strong>s<br />

An application’s manager program creates and initializes the application’s <strong>ACE</strong>s by<br />

calling Resolver functions in the OMS. To do this, it must first register with the OMS<br />

as a task, using the ASL function ix_task_init. The task provides access to a CAP<br />

channel through which to communicate with the Resolver.<br />

You define an initialization function in the <strong>ACE</strong> executable to create the <strong>ACE</strong> structure<br />

and all support structures such as packet destination targets, data sets and<br />

elements, crosscalls, and events.<br />

When the manager program creates the <strong>ACE</strong>, you pass the <strong>ACE</strong> executable to the<br />

Resolver function ix_res_create_ace. This calls the initialization function and<br />

starts the <strong>ACE</strong>’s main loop, which begins packet and crosscall event processing.<br />

10 Introduction and Overview<br />

Revision 3.3, August 2001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!