Skip to content

Commit 07de450

Browse files
lstipakovschwabe
authored andcommitted
Add PUSH_UPDATE part
Fixes OVPN3-1230 Signed-off-by: Lev Stipakov <[email protected]>
1 parent 1d4d8ff commit 07de450

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

openvpn-wire-protocol.xml

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1458,12 +1458,13 @@ struct key_exchange {
14581458
<li>bit 4: The client is capable of accepting additional arguments
14591459
to the <xref target="authpending">AUTH_PENDING</xref> message.</li>
14601460
<li>bit 5: The client supports doing feature negotiation in P2P mode.</li>
1461-
<li>bit 6: The client is capable of parsing and receiving the <xref target="dnsproto">dns</xref> messages pushed option</li>
1461+
<li>bit 6: The client is capable of parsing and receiving the <xref target="dnsproto">dns</xref> messages pushed option. DEPRECATED. Do not use.</li>
14621462
<li>bit 7: The client is capable of sending exit notification via control channel using <xref target="exitcc">EXIT</xref> message. The client is accpting the protocol-flags pushed option for the EKM capability</li>
14631463
<li>bit 8: The client is capable of accepting <xref target="authfailed">AUTH_FAILED,TEMP</xref> messages.</li>
14641464
<li>bit 9: The client is capable of dynamic tls-crypt</li>
1465-
<li>bit 10: The client is capaple of AEAD tag at the end of a data channel packet and capable of using 64bit packet counters for AEAD ciphers.</li>
1466-
1465+
<li>bit 10: The client is capable of AEAD tag at the end of a data channel packet and capable of using 64bit packet counters for AEAD ciphers.</li>
1466+
<li>bit 11: The client is capable of parsing and receiving the <xref target="dnsproto">dns</xref> messages pushed option.</li>
1467+
<li>bit 12: The client is capable of receiving <xref target="pushupdate">PUSH_UPDATE</xref> message.</li>
14671468
</ul>
14681469
</t>
14691470
<t>
@@ -1814,6 +1815,32 @@ datakeys = TLS_PRF(key_seed, key_seed)
18141815
without waiting for the <tt>PUSH_REQUEST</tt> from the client.
18151816
</t>
18161817
</section>
1818+
<section anchor="pushupdate" title="PUSH_UPDATE">
1819+
<t>
1820+
Format: <sourcecode>PUSH_UPDATE [comma separated options]</sourcecode>
1821+
</t>
1822+
<t>
1823+
This message includes dynamic configuration options that can be pushed from the server to the client without reconnecting.
1824+
These options augment existing options. Options with the same name are replaced. To remove an option, it should be prefixed
1825+
with <tt>-</tt>. For example, the following code replaces all routes (if there were any) with the provided one and removes the <tt>dns</tt> option:
1826+
<sourcecode>
1827+
PUSH_UPDATE,route 10.10.10.0 255.255.255.0,-dns
1828+
</sourcecode>
1829+
The client SHOULD support updating all pushed options; otherwise, it SHOULD reconnect. This also applies to removal.
1830+
<t>
1831+
Options prefixed with <tt>?</tt> are considered optional. The client MAY support them. If the client cannot support some optional options,
1832+
they can be ignored, and the client does not have to reconnect. This also applies to removal. Example syntax:
1833+
<sourcecode>
1834+
PUSH_UPDATE,-?block-ipv6
1835+
</sourcecode>
1836+
Here client should remove <tt>block-ipv6</tt> option. However, if client does not support updating it, it does not need to reconnect.
1837+
</t>
1838+
</t>
1839+
<t>
1840+
This message is only sent if the client has set the IV_PROTO_PUSH_UPDATE bit in the IV_PROTO
1841+
<xref target="peerinfo">peerinfo</xref> client variable.
1842+
</t>
1843+
</section>
18171844
<section anchor="authpending" title="AUTH_PENDING">
18181845
<t>
18191846
Format:

0 commit comments

Comments
 (0)