Skip to main content

Transaction Processing Facility (TPF) - Online Maintenance TPF Online Maintenance TPF Online Maintenance Skip to: Abstract | Comments | Solution | Related Segments | Migration | Download

SUBJECT:         APAR  NUMBER: PJ27268

REFERENCE:  AREA:     TCP/IP APPLICATION LAYER
            SEGMENT:  CNABH0     - RELEASE:  HPO   (Assembler)


Pre-requisite APARs are:
FOR SEGMENT CNABH0     (Assembler) - REL HPO
 PJ13889  PJ14737  PJ19949  PJ19968
 PJ24800  PJ25088  PJ26320
To be applied in the order listed for each segment.
REFERENCE:  AREA:     TCP/IP APPLICATION LAYER
            SEGMENT:  C$CK2SN40  - RELEASE:  TPF4  (C-Header)
            SEGMENT:  CDNCBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNEBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNF40     - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNFBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNIBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNPBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNQBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNRBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNS40     - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNSBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CDNSCF40   - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNSCR40   - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNSSC40   - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNSSI40   - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNSSP40   - RELEASE:  TPF4  (C++)
            SEGMENT:  CDNSSR40   - RELEASE:  TPF4  (C++)
            SEGMENT:  CFMDC40    - RELEASE:  TPF4  (Macro)
            SEGMENT:  CGTHBA40   - RELEASE:  TPF4  (C)
            SEGMENT:  CGTHBN40   - RELEASE:  TPF4  (C)
            SEGMENT:  CINET440   - RELEASE:  TPF4  (C)
            SEGMENT:  CK2SN40    - RELEASE:  TPF4  (Macro)
            SEGMENT:  CLTQ40     - RELEASE:  TPF4  (ObjOnly)
            SEGMENT:  CLTR40     - RELEASE:  TPF4  (C)
            SEGMENT:  COMXBS40   - RELEASE:  TPF4  (BuildScr)
            SEGMENT:  CTKT40     - RELEASE:  TPF4  (Assembler)
            SEGMENT:  CTSQ40     - RELEASE:  TPF4  (Assembler)
            SEGMENT:  CTSR40     - RELEASE:  TPF4  (Assembler)
            SEGMENT:  CTSU40     - RELEASE:  TPF4  (Assembler)
            SEGMENT:  CTS740     - RELEASE:  TPF4  (Assembler)
            SEGMENT:  CTTA40     - RELEASE:  TPF4  (Copy)
            SEGMENT:  CTT140     - RELEASE:  TPF4  (Copy)
            SEGMENT:  CTT540     - RELEASE:  TPF4  (Copy)
            SEGMENT:  CTX040     - RELEASE:  TPF4  (Copy)
            SEGMENT:  CTX240     - RELEASE:  TPF4  (Copy)
            SEGMENT:  CTX340     - RELEASE:  TPF4  (Assembler)
            SEGMENT:  CT1540     - RELEASE:  TPF4  (Copy)
            SEGMENT:  CZ1SE40    - RELEASE:  TPF4  (Macro)
            SEGMENT:  C53640     - RELEASE:  TPF4  (C)
            SEGMENT:  DLTEC40    - RELEASE:  TPF4  (Macro)
            SEGMENT:  I$PWBL40   - RELEASE:  TPF4  (C-Header)
            SEGMENT:  I$TCPC40   - RELEASE:  TPF4  (C-Header)
            SEGMENT:  IBMPAL40   - RELEASE:  TPF4  (Copy)
            SEGMENT:  IPWBL40    - RELEASE:  TPF4  (Dsect)
            SEGMENT:  ISTAK40    - RELEASE:  TPF4  (Dsect)
            SEGMENT:  NAMESER40  - RELEASE:  TPF4  (C-Header)
            SEGMENT:  NETDB40    - RELEASE:  TPF4  (C-Header)
            SEGMENT:  SOCKET40   - RELEASE:  TPF4  (C-Header)
            SEGMENT:  SPPGML40   - RELEASE:  TPF4  (Macro)
            SEGMENT:  UDNS40     - RELEASE:  TPF4  (C++)
            SEGMENT:  UDNSBS40   - RELEASE:  TPF4  (BuildScr)


Pre-requisite APARs are:
FOR SEGMENT C$CK2SN40  (C-Header)  - REL TPF4
 PJ16097  PJ20500  PJ21044  PJ21791
 PJ22434  PJ23931  PJ24525
 PJ24541  PJ25375  PJ25760  PJ26161
 PJ26683  PJ26890
FOR SEGMENT CFMDC40    (Macro)     - REL TPF4
 PJ13503  PJ13634  PJ13674  PJ14355
 PJ15208  PJ14437  PJ14790
 PJ17852  PJ19422  PJ21167  PJ20551
 PJ21313  PJ21791  PJ21715
 PJ17689  PJ22389  PJ23003  PJ23116
 PJ22434  PJ23178  PJ23931
 PJ23923  PJ24472  PJ24530  PJ24845
 PJ24861  PJ25084  PJ25094
 PJ25078  PJ24945  PJ25459  PJ25781
 PJ25981  PJ25841  PJ25932
 PJ26089  PJ26575  PJ26707  PJ27079
 PJ27275
FOR SEGMENT CGTHBA40   (C)         - REL TPF4
 PJ25375  PJ25491  PJ25632  PJ26188
 PJ26470  PJ26934
FOR SEGMENT CGTHBN40   (C)         - REL TPF4
 PJ25375  PJ25491  PJ25632  PJ26188
 PJ26934
FOR SEGMENT CINET440   (C)         - REL TPF4
 PJ25589  PJ25780  PJ26515  PJ26848
 PJ27080
FOR SEGMENT CK2SN40    (Macro)     - REL TPF4
 PJ16097  PJ19949  PJ21044  PJ21791
 PJ22389  PJ22434  PJ23180
 PJ23240  PJ23844  PJ23931  PJ24525
 PJ24746  PJ25375  PJ25760
 PJ26161  PJ26683  PJ26890
FOR SEGMENT CLTQ40     (ObjOnly)   - REL TPF4
 PJ25375  PJ25491  PJ26188  PJ26904

FOR SEGMENT CLTR40     (C)         - REL TPF4
 PJ25375  PJ26161  PJ26324  PJ26683
 PJ26730
FOR SEGMENT COMXBS40   (BuildScr)  - REL TPF4
 PJ21791  PJ22389  PJ24525  PJ25089
 PJ25266  PJ25375  PJ25491
 PJ25589  PJ25780  PJ26188  PJ26174
 PJ26575  PJ26683  PJ26713
 PJ27023  PJ26895  PJ27387  PJ27083
FOR SEGMENT CTKT40     (Assembler) - REL TPF4
 PJ21791  PJ23313  PJ22937  PJ25094
 PJ25589  PJ25332  PJ25780
 PJ25880  PJ26161  PJ26359  PJ26683
 PJ27006
FOR SEGMENT CTSQ40     (Assembler) - REL TPF4
 PJ26683
FOR SEGMENT CTSR40     (Assembler) - REL TPF4
 PJ26683  PJ26842  PJ26890
FOR SEGMENT CTSU40     (Assembler) - REL TPF4
 PJ26683
FOR SEGMENT CTS740     (Assembler) - REL TPF4
 PJ26683  PJ26937
FOR SEGMENT CTTA40     (Copy)      - REL TPF4
 PJ26683
FOR SEGMENT CTT140     (Copy)      - REL TPF4
 PJ26683
FOR SEGMENT CTT540     (Copy)      - REL TPF4
 PJ26683  PJ27204
FOR SEGMENT CTX040     (Copy)      - REL TPF4
 PJ26683
FOR SEGMENT CTX240     (Copy)      - REL TPF4
 PJ26683
FOR SEGMENT CTX340     (Assembler) - REL TPF4
 PJ26683  PJ26730
FOR SEGMENT CT1540     (Copy)      - REL TPF4
 PJ19949  PJ21044  PJ21040  PJ21791
 PJ23180  PJ23931  PJ24214
 PJ25148  PJ26683  PJ26890
FOR SEGMENT CZ1SE40    (Macro)     - REL TPF4
 PJ13634  PJ13674  PJ14078  PJ13754
 PJ14605  PJ14437  PJ14790
 PJ15959  PJ17852  PJ19949  PJ21044
 PJ21167  PJ21313  PJ21791
 PJ21715  PJ17689  PJ22389  PJ23003
 PJ23103  PJ22434  PJ23178
 PJ23336  PJ23923  PJ24084  PJ24530
 PJ25084  PJ25094  PJ25323
 PJ25589  PJ25760  PJ25781  PJ25780
 PJ25855  PJ25981  PJ26188
 PJ26575  PJ26683  PJ26713  PJ26600
 PJ26686  PJ26707  PJ26427
 PJ26774  PJ26580  PJ26967  PJ27023
 PJ26890  PJ27079  PJ26891
 PJ27387  PJ27083
FOR SEGMENT C53640     (C)         - REL TPF4
 PJ21791  PJ22389  PJ24525  PJ25375
 PJ25632  PJ26683  PJ26730
FOR SEGMENT DLTEC40    (Macro)     - REL TPF4
 PJ15208  PJ17852  PJ19949  PJ21044
 PJ21791  PJ23178  PJ23923
 PJ25094  PJ25589  PJ25781  PJ25981
 PJ26146  PJ26161  PJ26188
 PJ26384  PJ26683  PJ26686  PJ26707
 PJ26890
FOR SEGMENT I$PWBL40   (C-Header)  - REL TPF4
 PJ26683  PJ26895
FOR SEGMENT I$TCPC40   (C-Header)  - REL TPF4
 PJ25375  PJ25589  PJ26161
FOR SEGMENT IBMPAL40   (Copy)      - REL TPF4
 PJ13514  PJ13496  PJ13560  PJ14078
 PJ15.042  PJ14557  PJ14444
 PJ14722  PJ14805  PJ14858  PJ13562
 PJ14605  PJ15324  PJ14437
 PJ15585  PJ16213  PJ15454  PJ16331
 PJ17568  PJ14737  PJ14947
 PJ17852  PJ17912  PJ17292  PJ15728
 PJ19689  PJ19949  PJ19966
 PJ19938  PJ19272  PJ19727  PJ21044
 PJ20777  PJ21167  PJ20974
 PJ21596  PJ21584  PJ21592  PJ21791
 PJ20388  PJ22079  PJ21706
 PJ22208  PJ17689  PJ21709  PJ22389
 PJ22925  PJ21701  PJ22975
 PJ22434  PJ23178  PJ23180  PJ22937
 PJ23336  PJ22843  PJ23430
 PJ23434  PJ23338  PJ21693  PJ23297
 PJ21694  PJ21708  PJ24147
 PJ23931  PJ23923  PJ24344  PJ24472
 PJ23620  PJ24525  PJ24530
 PJ24563  PJ24626  PJ23984  PJ24845
 PJ24912  PJ25084  PJ25094
 PJ25098  PJ25089  PJ25158  PJ25261
 PJ25277  PJ25266  PJ25207
 PJ23981  PJ25075  PJ25375  PJ25379
 PJ25442  PJ25425  PJ25632
 PJ25444  PJ25589  PJ25703  PJ25720
 PJ25684  PJ25332  PJ25760
 PJ25781  PJ25780  PJ25953  PJ25982
 PJ25983  PJ25981  PJ26125
 PJ25880  PJ26150  PJ26187  PJ26161
 PJ26188  PJ26174  PJ26350
 PJ26365  PJ26366  PJ26283  PJ26384
 PJ26516  PJ26468  PJ26575
 PJ26577  PJ26534  PJ26685  PJ26683
 PJ26713  PJ26600  PJ26581
 PJ26693  PJ26686  PJ26707  PJ26782
 PJ26781  PJ26864  PJ26892
 PJ27023  PJ27028  PJ21337  PJ26904
 PJ26890  PJ27079  PJ27095
 PJ27073  PJ27197  PJ27246  PJ27305  PJ27231  PJ27277  PJ27387
 PJ27383  PJ27083
FOR SEGMENT IPWBL40    (Dsect)     - REL TPF4
 PJ26683  PJ26917  PJ26890  PJ26895

FOR SEGMENT ISTAK40    (Dsect)     - REL TPF4
 PJ26683
FOR SEGMENT NAMESER40  (C-Header)  - REL TPF4
 PJ25375  PJ25491
FOR SEGMENT NETDB40    (C-Header)  - REL TPF4
 PJ25375  PJ25491  PJ26188  PJ26693

FOR SEGMENT SOCKET40   (C-Header)  - REL TPF4
 PJ21791  PJ22452  PJ22389  PJ22910
 PJ23923  PJ24525  PJ24541
 PJ25089  PJ25375  PJ25589  PJ25780
 PJ26575  PJ26683
FOR SEGMENT SPPGML40   (Macro)     - REL TPF4
 PJ13509  PJ13579  PJ14357  PJ15.042
 PJ14858  PJ14605  PJ14437
 PJ16213  PJ15454  PJ14737  PJ14947
 PJ17852  PJ17912  PJ15728
 PJ19734  PJ19949  PJ19966  PJ19938
 PJ19866  PJ21121  PJ21044
 PJ20777  PJ21167  PJ21596  PJ21584
 PJ21592  PJ21791  PJ20388
 PJ21953  PJ22079  PJ22088  PJ22098
 PJ21706  PJ22170  PJ21709
 PJ22389  PJ21452  PJ21906  PJ21701
 PJ21705  PJ23148  PJ23128
 PJ22434  PJ23178  PJ23180  PJ23318
 PJ22937  PJ23312  PJ22843
 PJ23430  PJ23434  PJ23338  PJ21693
 PJ23297  PJ21694  PJ21708
 PJ24035  PJ23931  PJ23923  PJ23922
 PJ24344  PJ24025  PJ24472
 PJ23620  PJ23526  PJ24525  PJ24530
 PJ24563  PJ24548  PJ24622
 PJ24468  PJ23984  PJ24771  PJ24845
 PJ25084  PJ25094  PJ25098
 PJ25089  PJ25158  PJ25240  PJ25277
 PJ25266  PJ25207  PJ25174
 PJ23981  PJ25075  PJ25375  PJ25379
 PJ25491  PJ25199  PJ25425
 PJ25632  PJ25614  PJ25589  PJ25703
 PJ25720  PJ25332  PJ25760
 PJ25763  PJ25781  PJ25780  PJ25817
 PJ25982  PJ25983  PJ25981
 PJ26125  PJ25880  PJ26150  PJ26187
 PJ26008  PJ26156  PJ26161
 PJ26188  PJ26174  PJ26270  PJ26337
 PJ26374  PJ26366  PJ26283
 PJ25761  PJ26515  PJ26575  PJ26577
 PJ26534  PJ26683  PJ26522
 PJ26713  PJ26600  PJ26581  PJ26666
 PJ26693  PJ26686  PJ26809
 PJ26707  PJ26864  PJ26892  PJ26746
 PJ26793  PJ26841  PJ26887
 PJ26967  PJ27023  PJ27028  PJ21337
 PJ26904  PJ26890  PJ27079
 PJ26895  PJ27156  PJ27095  PJ27197  PJ27246  PJ27305  PJ27345
 PJ27231  PJ27277  PJ27351  PJ27387  PJ27328  PJ27383  PJ27083
 PJ27299  PJ27302
To be applied in the order listed for each segment.

ABSTRACT OF PROBLEM
___________________
Add  DNS  server  support  for  load balancing and provide cache
support for the DNS client code.


COMMENTS ON PROBLEM
___________________
APAR PJ25375 on program update tape  (PUT)  8  provided  limited
Domain  Name  System  (DNS)  client support.   It enabled TPF to
issue gethostbyaddr() and gethostbyname()  functions  to  return
DNS information from an external DNS server.

APAR  PJ25375  and  subsequent PUT tapes have not provided cache
support for the DNS client or support for  an  /etc/hosts  file.
To   obtain   DNS   information   for  the  gethostbyaddr()  and
gethostbyname() functions, TPF must call an external DNS server.
In addition, TPF does not support a DNS  server  to  accept  DNS
queries  from remote clients and to load balance incoming TCP/IP
connection requests from those clients.


SOLUTION
________

The following enhancements to the TPF code are being provided by
APAR PJ27268 on PUT 13 and  will  be  supported  by  the  TCP/IP
native stack code only:

o   TPF  is  providing a DNS UDP (User Datagram Protocol) server
    that will accept DNS queries on  port  53  through  the  TPF
    Internet  Daemon.   For each DNS query received, the TPF DNS
    server code will return one active TPF IP  address  for  the
    TPF host name provided in the query.

o   TPF  is supporting an /etc/host.txt file that will allow you
    to define a list of host names associated with a TPF  system
    and their corresponding local TPF IP addresses.

o   TPF is providing a DNS user exit, called UDNS.  You can cus-
    tomize the user exit to choose which local TPF IP address is
    to  be  returned  for each DNS query.  In the user exit, you
    can also tell the TPF server code to choose the  IP  address
    from  a  particular  processor  in  the  TPF loosely-coupled
    complex or from the entire complex.   Customizing  the  user
    exit  enables you to load balance incoming TCP/IP connection
    requests from remote clients.

o   TPF is adding a new flag for the recvfrom() socket API func-
    tion.  This flag is called  MSG_RTN_LOCAL_IP_ADDR  and  will
    return  the local socket address associated with an incoming
    message.  This recvfrom() option will  enable  the  TPF  DNS
    server code to run multi-threaded.  That is, the server code
    will  be  able  to respond to multiple DNS query requests at
    the same time by creating a raw socket, binding to the local
    IP address returned by recvfrom(), and sending the  response
    on that socket for each DNS query it receives.  As a result,
    the performance of the TPF DNS server is enhanced because it
    does not have to process one DNS query at a time.

The following enhancements to the TPF code are being provided by
APAR  PJ27268  on  PUT  13  and  will be supported by the TCP/IP
native stack and offload code:

o   TPF is providing two DNS client caches, called  IDNSHOSTADDR
    and   IDNSHOSTNAME.     The  IDNSHOSTADDR  cache  will  save
    responses  received  from  external   DNS   servers   during
    gethostbyaddr()  function  calls, and the IDNSHOSTNAME cache
    will save  responses  received  from  external  DNS  servers
    during   gethostbyname()  function  calls.    On  subsequent
    gethostbyaddr() and gethostbyname() function calls, the  TPF
    code  will  search  the appropriate DNS client cache for DNS
    information that may have been saved previously.  If the TPF
    code is able to find the information in one of  the  caches,
    it  does  not  have  to  contact the external server for the
    information, and overall performance of these  functions  is
    improved.

o   TPF  is  supporting an /etc/hosts file that will allow users
    to define a list of host names associated with external  DNS
    servers   and   their   corresponding  IP  addresses.    For
    gethostbyaddr()  and  gethostbyname()  functions,  TPF  will
    search  the  /etc/hosts  file  for the DNS information if it
    cannot obtain the data from the DNS client caches or from an
    external DNS server.

DEPENDENCIES
____________

Related Segments Affected By This APAR.
_______________________________________

Segments to be assembled or compiled:
CCTCP1, CCCTIN

Segments to be link edited:
CDNC, CDNE, CDNF, CDNI, CDNP, CDNQ, CDNR, CDNS, UDNS, COMX,
CPS0, CLTX, CLTN, CLTR

Load Modules to be loaded:
CDNC

Migration Considerations
========================
Recompile and run SALO to create an updated offline system
allocation table and online program allocation table.

Refer to the Migration Notebook for further information and
updates

-- END APAR PJ27268



Download file(s) using new Server: Login once to access server, leave window open, then click on link(s) below. Source Listing Binary