Protocol levels of server and client by release

As part of the initial communication, the client and server negotiate which protocol levels to use so they can understand each other. The logs might show a protocol level instead of a release number. The Table of protocols by release shows the server protocol number and client protocol numbers.

Example of server protocol level

When launching a 2020.1 Helix Server with RPC tracing set to level 5 (-vrpc=5), the server protocol level of 50 appears as the value of the server2 variable.

p4d -r . -p 1666 -vrpc=5
RpcSendBuffer xfiles = 5
RpcSendBuffer server = 3
RpcSendBuffer server2 = 50
RpcSendBuffer revver = 7
RpcSendBuffer nocase = Perforce Server starting...

Note

The server protocol level is unrelated to the Upgrades counter of the Helix Server Database Schema.

Setting the client protocol level

A later client protocol might provide information in a format that earlier client applications are unable to handle without additional parsing or translation. When using the Perforce Helix API, you can set this value to your required protocol level:

Using the Perforce Helix API

 ClientAPI::SetProtocol("api","<value>");

See the example code at ClientApi::SetProtocol( char *, char * ) in Helix Core C/C++ Developer Guide

Note

By default, the Perforce Helix API uses a protocol level matching the version of the API libraries. Therefore, it is often not necessary to set the protocol level value explicitly.

Table of protocols by release

Note

A client release might use the client protocol associated with an earlier server release. For example, the 2020.2 P4V client uses the client protocol 88, which is associated with the 2020.1 server release.

Release Server Protocol Client Protocol
2020.1 50 88
2019.2 49 87
2019.1
patch 2
48 -
2019.1 47 86
2018.2 46 85
2018.1 45 84
2017.2 44 83
2017.1 43 82
2016.2 42 81
2016.1 41 80
2015.2 40 79
2015.1 39 78
2014.2 38 77
2014.1 37 76
2013.3 36 75
2013.2 35 74
2013.1 34 73
2012.2 33 72
2012.1 32 71
2011.1 31 70
2011.1
early
- 69 (action resolves disabled)
2010.2 30 68
2010.1 29 67
2009.2 28 66
2009.1 27 65
2008.2 26 64
Release Server Protocol Client Protocol
2008.1 25 63
2007.3 24 62
2007.2 23 61
2006.2 22 60
2006.1 21 59
2005.2 20 58
2005.1 19 -
2004.2 18 -
2004.1 - 57
2003.2 17 56
2003.1 16 -
2003.1 early 15 -
2002.2 14 55
2002.1 13 54
2001.2 12 52
2001.1 11 51
2000.2 10 -
2000.1 9 -
99.2 8 8
99.1 7 7
99.1 early 6 6
98.2 5 5
98.2 early 4 -
98.1 - 4
97.3 3 3
97.2 2 2
97.1 1 1