Network driver instantiation
Once a UDI NIC driver is compiled, packaged, installed on a taret
system, and loaded into the running kernel,
the UDI environment follows this process to
initialize a Network Driver (ND) instance for a newly installed NIC:
The Bus Bridge, which is the parent of all NDs, is instantiated,
and a mgmt channel between the Bus Bridge and the MA is established.
The MA sends a parent enumeration request to the Bus Bridge.
THe MA creates an ND instance (primary and
secondary regions, management channel, internal bind channels)
that corresponds to the parent enumeration response information.
The MA issues udi_usage_ind() on mgmt
channel - first operation on newly
instantiated driver instance
The MA begins the child/parent bind sequence by issuing
UDI_CHANNEL_BOUND on the child (ND) end of ND-Bus bind channel.
This channel may be in the primary region, or a static or dynamic
ND performs internal initialization (specific to NIC), reads
instance attributes, and binds to parent (Bus) with
The parent (Bus) processes the ND's bind request, and
replies to ND with udi_bus_bind_ack.
The ND completes initialization and issues
udi_channel_event_complete; this completes the
bind operation to the MA.
On this channel, the MA is the parent and the ND is the child.
Finally, a channel is established between the
ND (parent) and NSR (child) using NIM bind operations.
Sample Osicom 2300 NIC Driver (shrkudi)
Network Interface Metalanguage Architecture
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - 19 June 2005