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
secondary region.
-
ND performs internal initialization (specific to NIC), reads
instance attributes, and binds to parent (Bus) with
udi_bus_bind_req.
-
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.
Next topic:
Sample Osicom 2300 NIC Driver (shrkudi)
Previous topic:
Network Interface Metalanguage Architecture
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - 19 June 2005