• Gerrit Renker's avatar
    dccp: support for the exchange of NN options in established state 1/2 · d6916f87
    Gerrit Renker authored
    In contrast to static feature negotiation at the begin of a connection, this
    patch introduces support for exchange of dynamically changing options.
    
    Such an update/exchange is necessary in at least two cases:
     * CCID-2's Ack Ratio (RFC 4341, 6.1.2) which changes during the connection;
     * Sequence Window values that, as per RFC 4340, 7.5.2, should be sent "as
       the connection progresses".
    
    Both are non-negotiable (NN) features, which means that no new capabilities
    are negotiated, but rather that changes in known parameters are brought
    up-to-date at either end.
    
    Thse characteristics are reflected by the implementation:
     * only NN options can be exchanged after connection setup;
     * an ack is scheduled directly after activation to speed up the update;
     * CCIDs may request changes to an NN feature even if a negotiation for that
       feature is already underway: this is required by CCID-2, where changes in
       cwnd necessitate Ack Ratio changes...
    d6916f87
dccp.h 16.7 KB