BPXYIOC6 — Map IPV6 prerouter structures

BPXYIOC6 is used by transport providers. DSECT= is allowed but ignored. AMODE 31 callers use BPXYIOC6 — Map IPV6 prerouter structures.
                             
         SYSSTATE AMODE64=YES
         BPXYIOC6   ,
NETCONFHDR           DSECT ,                                            
* ------------- 64-Bit Version                                     @P2A 
NCHEYECATCHER        DS    CL4    Eye catcher                      @P2A 
NCHIOCTL             DS    F      Ioctl being processed (RAS)      @P2A 
NCHNUMENTRYRET       DS    F      Number of HomeIF returned via    @P2A*
                                       SIOCGHOMEIF6 or number of   @P2A*
                                       GRT6RtEntry's returned via  @P2A*
                                       SIOCGRT6TABLE.              @P2A 
NCHBUFFERLENGTH      DS    F      Buffer Length                    @P2A 
NCHBUFFERPTR         DS    D      64-bit Buffer Pointer            @P2A 
NETCONFHDR#LENGTH    EQU   *-NETCONFHDR   Length of NETCONFHDR          
*                                                                       
**********************************************************************  
* HomeIf Structure                                                   *  
**********************************************************************  
*                                                                       
HOMEIF               DSECT ,      HomeIf structure                      
HomeIfAddress        DS    CL16   Home Interface Address                
*                                                                       
HomeIf#LENGTH        EQU   *-HOMEIF   Length of HOMEIF                  
*                                                                       
**********************************************************************  
* GRT6RtEntry Structure                                              *  
**********************************************************************  
*                                                                       
GRT6RTENTRY          DSECT ,      GRT6RtEntry Structure                 
*                                                                       
GRT6DESTINATION      DS    CL16 Destination IP Address                  
GRT6GATEWAY          DS    CL16 First HOP on the trip if going through *
                                 a gateway                              
GRT6DESTPREFIXLEN    DS    F    Destination's Prefix Length which is a *
                                 decimal value that specifies how many *
                                 of the leftmost contiguous bits of the*
                                 address comprise the prefix            
GRT6RTMETRIC         DS    F    Metric - hop count. Currently Tcp/Ip   *
                                 returns 1 for indirect routes and 0   *
                                 for direct routes. If route is from   *
                                 routing daemon, metric is whatever    *
                                 routing daemon set it to.              
GRT6RTFLAGS          DS    F    IPV6 Route Flags.                       
*                                                                       
GRT6RTENTRY#LENGTH   EQU   *-GRT6RTENTRY   Length of GRT6RTENTRY        
*                                                                       
**********************************************************************  
* RT6Entry Structure                                                 *  
**********************************************************************  
*                                                                       
RT6ENTRY          DSECT ,         Rt6Entry Structure                    
*                                                                       
RT6DESTINATION       DS    CL28   Destination IP address (in an IPV6   *
                                    sockaddr structure)                 
RT6GATEWAY           DS    CL28   First HOP on the trip if going       *
                                    through a gateway (in an IPV6      *
                                    sockaddr structure)                 
RT6DESTPREFIXLEN     DS    F      Destination's Prefix Length,         *
                                      which is a decimal value         *
                                      that specifies how many of       *
                                      the leftmost contiguous          *
                                      bits of the address              *
                                      comprise the prefix.              
RT6METRIC            DS    F      Metric - hop count                   *
                                     Currently Tcp/IP returns          *
                                      1 for indirect route and         *
                                      0 for direct route.              *
                                     If route is from routing          *
                                     daemon, metric is whatever        *
                                     routing daemon set it to.          
RT6FLAGS             DS    F      IPV6 Route Flags.                     
*                                                                       
RT6ENTRY#LENGTH      EQU   *-RT6ENTRY   Length of RT6ENTRY              
*                                                                       
**********************************************************************  
* GRT6RtEntryV2 Structure                                            *  
**********************************************************************  
*                                                                       
GRT6RTENTRYV2        DSECT ,      New Route Entry used with DCR A846 - *
                                  Route Modification                    
*                                                                       
GRT6OLDRTENTRY       DS    CL44   Old GRT6 Route Entry                  
GRT6RTHOMEIFIDX      DS    F      Route's Home Interface Idx            
GRT6RTIFINDEX        DS    F      Route's Interface Index
GRT6RTMTU            DS    H      Route's MTU Value      
*                    DS    H      Reserved                              
*                    DS    F      Reserved                              
*                    DS    F      Reserved                              
*                                                                       
GRT6RTENTRYV2#LENGTH   EQU   *-GRT6RTENTRYV2   Length of GRT6RTENTRYV2  
*                                                                       
**********************************************************************  
* RT6EntryV2 Structure                                               *  
**********************************************************************  
*                                                                       
RT6ENTRYV2           DSECT ,      New Route Entry Used with A846       *
                                  MSADDRT6V2/MSDELRT6V2 IOCTLs          
*                                                                       
RT6OLDENTRY          DS    CL68   Old Route Entry used before A846     *
                                  with SIOCMSADDRT6/SIOCMSDELRT6 IOCTL  
RT6RTHOMEIFIDX       DS    F      Route's Home Interface Idx            
*                    DS    F      Reserved                              
*                    DS    F      Reserved                              
*                    DS    F      Reserved                              
*                    DS    F      Reserved                              
*                                                                       
RT6ENTRYV2#LENGTH    EQU   *-RT6ENTRYV2    Length of RT6ENTRYV2         
*                                                                       
**********************************************************************  
* IPV6RtFlags Structure                                              *  
**********************************************************************  
*                                                                       
IPV6RTFLAGS       DSECT ,         IPV6RtFlags Structure                 
*                                                                       
IPV6FLGROUTETYPE     DS    XL1   Route Type                    @D1C     
IPV6FLGBYTE2         DS    XL1    Reserved                              
IPV6FLGBYTE3         DS    XL1    Reserved                              
IPV6FLGBYTE4         DS    XL1    FLAGS:                                
*                    EQU   X'80'  Reserved                              
*                    EQU   X'40'  Reserved                              
*                    EQU   X'20'  Reserved                              
IPV6BITLOOPBACK      EQU   X'10'  1 = Loopback Interface                
IPV6BITHOME          EQU   X'08'  1 = Home interface                    
IPV6BITHOST          EQU   X'04'  1 = Host Route. 0 = Network Route     
IPV6BITGATE          EQU   X'02'  1 = Gateway                           
IPV6BITRTUP          EQU   X'01'  1 = Route is active                   
*                                                                       
* *------------------------------------------------------------------*  
* * SiocGifConf6 - Get IPv6 Interface Configuration.             @D3A*  
* *                                                                  *  
* *  Net_IfConf6Header is passed as the argument of the ioctl and    *  
* *  is returned with the number of entries and entry length of the  *  
* *  Net_IfConf6Entry structs that were written to the output buffer.*  
* *                                                                  *  
* *  If Buflen=0=Buffer a Query function is performed and the        *  
* *  header is returned with: (1) the maximum supported version,     *  
* *  (2) the total number of entries that would be output and        *  
* *  (3) the length of each individual entry.                        *  
* *                                                                  *  
* *  If a call to get information fails with RC=ERANGE or with       *  
* *  (RC=EINVAL & Nif6h_Version is changed) the call is converted    *  
* *  into a Query function and the content of the output buffer      *  
* *  is unpredictable.                                               *  
* *                                                                  *  
* *  For information on the data returned in this structure refer    *  
* *  to the z/OS Communication Server's IP Configuration Guide and   *  
* *  IPv6 Network and Application Design Guide.                      *  
* *                                                                  *  
* *------------------------------------------------------------------*  
NET_IFCONF6HEADER DSECT   Header                                 @D3A   
NIF6H_VERSION DS F       Input for Get IfConf6 Output for Query         
NIF6H_ENTRIES DS F       Output: number of entries returned in output  *
                         buffer                                         
NIF6H_ENTRYLEN DS F      Output: length of an entry                     
NIF6H_BUFLEN DS F        Input: length of buffer                        
NIF6H_BUFFER64 DS 0CL8   Input: Amode(64) Buffer ptr                    
NIF6H_BUFFER64H DS F                                                    
NIF6H_BUFFER DS A        Input: Amode(31) Buffer ptr to output buffer  *
                         that will be filled with an array of          *
                         Net_IfConf6Entrys.                             
NET_IFCONF6HEADER_LEN EQU *-NET_IFCONF6HEADER                           
*                                                                       
NET_IFCONF6ENTRY DSECT   Entry                                   @D3A   
NIF6E_NAME DS  CL16      x00 interface name (blank padded - no null)    
NIF6E_STACKNAME DS CL8   x10 tcpip stack name (blank padded - no null)  
NIF6E_ADDR DS  CL28      x18 Sock_Inet6_SockAddr of the interface       
NIF6E_ROUTEMETRIC DS F   x34 route metric                               
NIF6E_PREFIXLEN DS H     x38 routing prefix length                      
NIF6E_PREFIXORIGIN DS X  x3A prefix origin, see below                   
NIF6E_STATUS DS X        x3B status, see below                          
NIF6E_FLAGS DS 0BL4      x3C Flags:                                     
NIF6E_FLAGS1 DS B                                                       
NIF6E_FLAGS2 DS B                                                       
NIF6E_FLAGS3 DS 0B                                                      
NIF6E_VIRTUAL EQU X'40'                                                 
NIF6E_MULTIPOINT EQU X'08'                                              
NIF6E_MULTICASTCAPABLE EQU X'04'                                        
         ORG   NIF6E_FLAGS3+1                                           
NIF6E_FLAGS4 DS 0B                                                      
NIF6E_POINT2POINT EQU X'10'                                             
NIF6E_LOOPBACK EQU X'08'                                                
NIF6E_ONLINK EQU X'01'                                                  
         ORG   NIF6E_FLAGS+4                                            
NIF6E_MTU DS   F         x40 mtu                                        
*                                                                       
*    *****************************************************************  
*    *                                                               *  
*    * Constants for nif6h_version                               @D3A   
*    *                                                               *  
*    *****************************************************************  
*                                                                       
*                                                                       
NIF6H#VER EQU  1         Current Version                                
NIF6H#VER1 EQU 1         Initial Version                                
*                                                                       
*    *****************************************************************  
*    *                                                               *  
*    * Constants for nif6e_prefixorigin                          @D3A   
*    *                                                               *  
*    *****************************************************************  
*                                                                       
*                                                                       
NIF6H#WELLKNOWN EQU 1                                                   
NIF6H#MANUAL EQU 2                                                      
NIF6H#RTRADV EQU 3                                                      
NIF6H#OTHER EQU 8                                                       
*                                                                       
*    *****************************************************************  
*    *                                                               *  
*    * Constants for nif6e_status                                @D3A   
*    *                                                               *  
*    *****************************************************************  
*                                                                       
*                                                                       
NIF6H#PREFERRED EQU 1                                                   
NIF6H#DEPRECATED EQU 2                                                  
NIF6H#INVALID EQU 3                                                     
NIF6H#INACCESSIBLE EQU 4                                                
NIF6H#UNKNOWN EQU 5                                                     
NIF6H#TENTATIVE EQU 6                                                   
NIF6H#DUPLICATE EQU 7                                                   
NET_IFCONF6ENTRY_LEN EQU *-NET_IFCONF6ENTRY                             
*                                      End SiocGifConf6 -------- @D3A   
*                                                                       
* ********************************************************************  
* *                                                                  *  
* *   Constants                                                      *  
* *                                                                  *  
* ********************************************************************  
*                                                                       
*                                                                       
IOC6_#HOMEIFPREFIXLEN EQU 128 The prefix length for a home interface   *
                         address returned on the SIOCGHOMEIF6 IOCTL.    
IOC6_NCH#EYE EQU C'6NCH' IPV6 Network Configuration Header EyeCatcher.  
IOC6_NCH64#EYE EQU C'6N64' IPV6 NetConfHdr EyeCatcher 64-BIT            
*                                                                       
* ********************************************************************  
* *                                                                  *  
* * Maximum hop count for the Metric fields:                         *  
* *    GRT6RtMetric                                                  *  
* *    Rt6Metric                                                     *  
* *                                                                  *  
* ********************************************************************  
*                                                                       
*                                                                       
IOC6_#MAXHOPMETRIC EQU 16                                               
*                                                                       
* ********************************************************************  
* *                                                                  *  
* *   Constants used for size of control areas                       *  
* *                                                                  *  
* ********************************************************************  
*                                                                       
*                                                                       
IOC6_#MAXROUTES EQU 600                                                 
IOC6_#GRT6ROUTELEN EQU 44                                               
*                                                                       
*    *****************************************************************  
*     Initial buffer size for SIOCGHOMEIF6 and SIOCGRT6TABLE.           
*    *****************************************************************  
*                                                                       
*                                                                       
IOC6_#MAXGRT6LEN EQU 26400                                              
IOC6_#NETCONFHDRLEN EQU 20                                              
IOC6_#GRT6V2ROUTELEN EQU 64                                             
IOC6_#MAXGRT6V2LEN EQU 38400                                            
*                                                                       
** BPXYIOC6 End