[ 
https://issues.apache.org/jira/browse/DISPATCH-525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15936422#comment-15936422
 ] 

Ted Ross commented on DISPATCH-525:
-----------------------------------

For the record:  The units for linkCapacity are not transfer frames, but 
transfers.  A single flow credit allows a multi-frame transfer to take place.


> What are proper names and units for protocol configuration settings?
> --------------------------------------------------------------------
>
>                 Key: DISPATCH-525
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-525
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Management Agent
>    Affects Versions: 0.7.0
>            Reporter: Chuck Rolke
>             Fix For: 0.8.0
>
>
> Several settings are available in configuration objects that are used in AMQP 
> negotiations with clients. Some of them are confusing as they exist now and 
> could be redefined to make their understanding and usage easier for end 
> users. The same settings are defined for Router Listener and Connector and 
> for Policy Vhost objects.
> ||Setting||Units||Range||
> |maxFrameSize|octets|uint|
> |maxSessions|sessions|uint16|
> |maxSessionWindow|octets|uint|
> |maxMessageSize *not implemented*|octets|uint|
> |linkCapacity|messages|integer|
> These settings have to work in cooperation with the proton engine interface.
> h2. maxFrameSize
> This setting is straightforward. The range is 0..ULONG_MAX.
> Using octets is fine. This value must be 512 or larger per AMQP spec.
> h4. Proposal
> Leave this setting unchanged.
> h2. maxSessions
> This setting is in units of 'sessions'. The acceptable values are in the 
> range 1..65536. 
> The number given in the configuration is one larger than the value used by 
> AMQP and proton. In AMQP the channel-max value of an Open is the largest 
> channel number that can be used. So a channel-max of 0 allows one session, 
> and a value of 1 allows two sessions, and so on.
> I prefer to have the spec values be equal to the number of sessions allowed.
> * Dispatch code subtracts one from the specified value and puts it into 
> proton channel-max. 
> * A value of zero in the spec can be disallowed or it can mean some default 
> value.
> h4. Proposal
> Leave this setting unchanged.
> h2. maxSessionWindow
> This setting is in octets. The range is 0..ULONG_MAX with a minimum of 
> max-frame-size octets.
> This setting is slightly confusing as the specification is in octets. Then 
> that value of octets is passed to proton in pn_session_set_incoming_capacity. 
> Proton divides the incoming_capacity by the max-frame-size and uses the 
> result in a Begin incoming-window. The incoming-window then is measured in 
> transfer frames. For example:
> * maxFrameSize = 65,536.
> * maxSessionWindow = 1,000,000.
> Dividing (1000000 / 65536) = 15 frames. The 15 is used in the 
> Begin/incoming-window field during negotiation with the peer.
> A user expecting to have about a megabyte of buffering on the session might 
> be surprised to find all the buffering consumed by 15 100-byte transfer 
> frames.
> h4. Proposal
> * Rename this setting to *maxSessionFrames*.
> * Change this setting's units of 'transfer frame'. Then the value sent to 
> proton in incoming_capacity would be calculated by (maxSessionFrames * 
> maxFrameSize). The value of maxSessionFrames would then appear in the 
> Begin/incoming-window field.
> h2. maxMessageSize
> This setting is in octets. The range is 0..ULONG_MAX. 
> This setting is TBD. No interface in proton engine is available to change it. 
> If this value is zero or, more typically, not set then there is no maximum 
> message size.
> h4. Proposal
> Leave this setting unchanged.
> h2. linkCapacity
> This setting is in transfer frames. The range is 0..LONG_MAX.
> This setting defines how much credit is issued on links created on a 
> connection. It specifies how many transfers can be in-flight concurrently for 
> each link.
> This setting is for Listener and Connector objects only. It is not defined 
> for Policy Vhost objects.
> h4. Proposal
> * Leave the units and current meaning of this setting unchanged. 
> * Add this value to the Policy Vhost settings so that it may be overridden on 
> a Vhost Usergroup basis.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to