|
When the transport driver that is being initialized is IPv6
capable, the prerouter also performs the following functions when
it is notified of the TD's arrival:- Opens a socket from the kernel address space. This is not the
master socket, but a regular user socket that is initiated through
the z/OS UNIX socket interface.
- Issues the SIOCGHOMEIF6 ioctl to the TP.
- If the TP recognizes that the SIOCGHOMEIF6 was sent by the z/OS UNIX prerouter
(the prerouter puts 'USS6' in the first four bytes of the buffer),
the TP returns the ioctl with NchNumEntryRet set to -1 (to indicate
that no home interface information is being returned). The prerouter
will receive information about the home IPv6 interfaces maintained
by the file system in the next step.
A TP that responds to the SIOCGHOMEIF6
ioctl in this manner must use the following ioctls to notify the prerouter
of changes to individual IPv6 routes: - SIOCMSADDRT6V2
- SIOCMSDELRT6V2
- SIOCMSCHGRT6METRICV2
- Otherwise, the TP returns the list of home IPv6 interfaces via
the ioctl. The prerouter adds the home IP addresses to the home interface
table.
A TP that responds to the SIOCGHOMEIF6 ioctl in this manner
must use the following ioctls to notify the prerouter of changes to
individual IPv6 routes: - SIOCMSADDRT6
- SIOCMSDELRT6
- SIOCMSCHGRT6METRIC
- Issues the SIOCGRT6TABLE ioctl. This gets the file system IPv6
home, host, and network routing information in a table format.
- The TP places the home interface index in the GRT6RtHomeIfIdx
field for each route to be returned.
- The TP identifies home routes by setting the IPV6BitHome and IPV6BitHost
bits on.
- When the TP sets the IPV6BitHome and IPV6BitHost bits on in any
route, it also sets the IPV6BitRtUp bit on if the interface is active,
or off if it is inactive.
- Places the routes returned from the SIOCGRT6TABLE ioctl in the
home, host, and network routing tables managed by the prerouter. (Note
that IPv6 metrics are in hop counts.)
- Closes the socket.
The prerouter is now initialized for the transport driver.
|