[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ozrock::x25_osf

Title:Proudly built by the engineers of NaC Australia
Moderator:DELNI::MUGGERIDGE
Created:Tue Oct 13 1992
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:908
Total number of notes:3829

897.0. "Limitation of the maximum message size" by BIKINI::ADAE () Wed May 07 1997 21:53


	I'm familiar with VMS/X25 but not with UNIX/X25.
	
	Problem:
	-------

	Customer's UNIX application program receives the error

		"permission denied'

	when sending a packet larger than 4096 Bytes.

	Is it possible to change/configure this limit ? consequences ?
           does it depend on the x25 profile ?

        What is the 'Automatic Mode' mentioned in 767.2 ?

	The maximum message size in the application is 64kBytes. We
	are looking for a fast solution (work around, if redesign of
	protocol between peers is recommended ) ...


	thanks for any help ..

	Albert
	
T.RTitleUserPersonal
Name
DateLines
897.1... more info ..BIKINI::ADAEWed May 07 1997 22:2720

	The XMIT-Appliction mentioned in .0 replaces our old VMS
	XMIT-Appliction. The x25 transmission in VMS was:


        1) split up the message in 
               n times QIO-IO$_WRITEVBLK mit IO$M_MORE function modifier
                 and segment size 16383 Bytes
        2) send the rest of the message without IO$M_MORE

        e.g. a message of size 40000 bytes was transmitted by

	  QIO ( .... QIO-IO$_WRITEVBLK + IO$M_MORE , ... 16383 ...);
	  QIO ( .... QIO-IO$_WRITEVBLK + IO$M_MORE , ... 16383 ...);
	  QIO ( .... QIO-IO$_WRITEVBLK   , ... 7234 ...);


	How to port this logic to the unix x25 api ?

897.2its not too hardOZROCK::HARTWIGArthur Hartwig, TaN Engineering-AustraliaThu May 08 1997 04:4518
    In automatic mode the X.25 software autoatically sets the M-bt to
    preserve message boundaries. In "manual" mode the application must take
    control of setting the M-bit.
    
    In automatic mode the application must set the socket send buffer size
    large enough (I think the default is 4kbytes). Unfortunately you must
    know something of the internals to do this.
    
    Given you description of your application, I think the easiest way to
    fix the problem is to setup the X.25 call in "manual" mode, then find 
    out the transmit packet size for the call (there is a x25 library call 
    that will return this information). Then issue send calls with the M
    bit set for every full packet and the M-bit clear on the last packet
    worth. Note that UNIX is fussy: the M-bit can ONLY be set for a full
    packet (which is why you need to find out the packet size for the
    call). This is different from VMS.