Skip to content

Commit 86b2e3b

Browse files
authored
Prepare v1.5.0 release (#574) (#586)
* Updated reference to the P4 language spec. * Fixed broken P4 language spec links. * Added v1.5.0 changelist to revision history. * Set version to "v1.5.0" in various places. NOTE: these reference need to be reset to "HEAD" on the main branch after merging in this PR. Signed-off-by: Steffen Smolka <steffen.smolka@gmail.com>
1 parent 4fd9f43 commit 86b2e3b

8 files changed

Lines changed: 65 additions & 28 deletions

File tree

MODULE.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module(
22
name = "p4runtime",
33
# TODO(#582): Remove upper bound once we support Bazel 9.x.
44
bazel_compatibility = [">=7.0.0", "<9.0.0"],
5+
version = "1.5.0",
56
)
67

78
bazel_dep(name = "bazel_skylib", version = "1.7.1")

bazel/example/using-bzlmod/MODULE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ local_path_override(
1111

1212
# git_override(
1313
# module_name = "p4runtime",
14-
# strip_prefix = "p4runtime-1.4.1",
15-
# urls = ["https://github.com/p4lang/p4runtime/archive/v1.4.1.tar.gz"],
14+
# strip_prefix = "p4runtime-1.5.0",
15+
# urls = ["https://github.com/p4lang/p4runtime/archive/v1.5.0.tar.gz"],
1616
# # sha256 = "<insert hash value here>",
1717
# )

docs/v1/P4Runtime-Spec.adoc

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= P4Runtime Specification : The P4.org API Working Group
22
:doctype: book
3-
:revnumber: version 1.5.0-dev
3+
:revnumber: 1.5.0
44
:imagesdir: resources/figs
55
:font-size: 10
66
:sectnums: 5
@@ -52,15 +52,15 @@ protocol-independent runtime APIs for P4-defined or P4-described data
5252
planes. This document specifies one such API, called *P4Runtime*. It is meant to
5353
disambiguate and augment the programmatic API definition expressed in Protobuf
5454
format and available at
55-
link:https://github.com/p4lang/p4runtime/tree/main/proto[https://github.com/p4lang/p4runtime/tree/main/proto].
55+
link:https://github.com/p4lang/p4runtime/tree/v1.5.0/proto[https://github.com/p4lang/p4runtime/tree/v1.5.0/proto].
5656

5757
=== P4 Language Version Applicability
5858

5959
P4Runtime is designed to be implemented in conjunction with the P4~16~ language
6060
version or later. P4~14~ programs should be translated into P4~16~ to be made
6161
compatible with P4Runtime. This version of P4Runtime utilizes features which are
6262
not in P4~16~ 1.0, but were introduced in P4~16~ 1.2.4 cite:[P4Revisions124]. For
63-
this version of P4Runtime, we recommend using P4~16~ 1.2.4 cite:[P4Revisions124].
63+
this version of P4Runtime, we recommend using P4~16~ 1.2.5 cite:[P4Revisions125].
6464

6565
This version of the P4Runtime specification does not yet explicitly
6666
address compatibility with the following P4~16~ language features
@@ -6658,6 +6658,37 @@ properties, but we may include on in future versions of the API.
66586658
= Appendix
66596659

66606660
=== Revision History
6661+
6662+
==== Changes in v1.5.0
6663+
6664+
* Action Profiles / Load Balancing
6665+
** Added `weights_disallowed` field to `ActionProfile` in P4Info.
6666+
If this field is set to true, the server will reject any attempt to program weights for this action profile. This is intended to be used for action profiles whose weights are controlled by the switch, i.e. when the switch implements dynamic load balancing/adaptive routing.
6667+
** Added `action_selection_mode` and `size_semantics` to `ActionProfileActionSet`.
6668+
These fields provide per-group control over the action selection algorithm and resource allocation scheme. Previous versions of P4Runtime only allowed a single action selection algorithm and resource allocation scheme for all groups in an action profile.
6669+
** Clarified that `ActionProfile` members with duplicate actions are allowed and why a client might want to program them.
6670+
6671+
* Capabilities
6672+
** Added `device_id` field to `CapabilitiesRequest`.
6673+
This enables clients to query capabilities specific to a particular device when a P4Runtime server manages multiple devices.
6674+
** Added `Any` protobuf message to `CapabilitiesResponse` for experimental features.
6675+
This provides a mechanism to expose experimental or proprietary capabilities without modifying the core P4Runtime protocol.
6676+
6677+
* Controller Sessions, Roles, Arbitration
6678+
** Clarified that `device_id` can never be 0.
6679+
Since 0 is the default value for integers in Protobuf, explicit prohibition avoids ambiguity between "unset" and "device 0".
6680+
6681+
* Multicast / Replication
6682+
** Added support for "backup replicas" to multicast groups.
6683+
This enables fast failover for multicast traffic by allowing backup ports to be specified for each replica.
6684+
6685+
* Miscellaneous
6686+
** Fixed broken reference to P4 language spec.
6687+
** Switched from Madoko to AsciiDoc for P4Runtime specification.
6688+
** [Bazel] Added support for Bzlmod and Bazel 7 and 8.
6689+
** [Rust] Redesigned Crates to be more idiomatic, future-proof, and maintainable.
6690+
6691+
66616692
==== Changes in v1.4.1
66626693
No content changes; tag was incremented only.
66636694

docs/v1/guidance-for-generating-p4info.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ representing the name of the library, its major version, etc.
3838

3939
## Handling P4_16 `type` and the `p4runtime_translation` annotation
4040

41-
The P4Runtime v1.4 specification restricts the types that it supports
41+
The P4Runtime v1.5 specification restricts the types that it supports
4242
for the following kinds of things:
4343

4444
+ table search key fields, defined in the P4Info message in a
@@ -54,13 +54,13 @@ for the following kinds of things:
5454

5555
Later in this section, we will use the term "constrained value" for
5656
brevity, instead of repeating all of the kinds of objects listed
57-
above. For such values, the P4Runtime specification v1.4 supports all
57+
above. For such values, the P4Runtime specification v1.5 supports all
5858
of the following types, but currently no others:
5959

6060
+ `bit<W>`
6161
+ an `enum` with an underlying type of `bit<W>`, also called a
6262
serializable `enum` (TBD whether all of the pieces needed to make
63-
this work are actually supported for P4Runtime 1.4)
63+
this work are actually supported for P4Runtime 1.5)
6464
+ a `typedef` or `type` name that, when "followed back" to the lowest
6565
base type, is one of the above. (As of the P4_16 language
6666
specification version 1.2.1, it is not required to support a `type`
@@ -100,7 +100,7 @@ type_list(x) {
100100
Note that `type_list(x)` always starts with zero or more `type` names,
101101
and always ends with one type that is neither a `type` nor `typedef`
102102
name, e.g. `bit<W>`, a header type, struct type, etc. It never
103-
contains the name of a type declared using `typedef`. P4Runtime v1.4
103+
contains the name of a type declared using `typedef`. P4Runtime v1.5
104104
only supports `p4runtime_translation` annotations on `type`
105105
definitions. If any such annotations occur on a `typedef` definition,
106106
they should be ignored.
@@ -111,7 +111,7 @@ of type names. In order to create such a cycle, the first `type` or
111111
type name, and this is not allowed.
112112

113113
If the last type is not `bit<W>` or `enum bit<W>`, that is an error
114-
for P4Runtime v1.4. The "base" type must always be one of those for
114+
for P4Runtime v1.5. The "base" type must always be one of those for
115115
every constrained value.
116116

117117

docs/v1/resources/theme/references.bib

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ @ONLINE { Stratum
3131

3232
@ONLINE { P4ComplexTypes,
3333
title = "Complex types in $P4_{16}$",
34-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-p4-type"
34+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-p4-type"
3535
}
3636

3737
@ONLINE { ProtoDefaults,
@@ -47,37 +47,42 @@ @ONLINE { PIRepo
4747

4848
@ONLINE { P4TableProperties,
4949
title = "Table properties in $P4_{16}$",
50-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-table-props"
50+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-table-props"
5151
}
5252

5353
@ONLINE { P4ValueSets,
5454
title = "Value Sets in $P4_{16}$",
55-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-value-set"
55+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-value-set"
5656
}
5757

5858
@ONLINE { P4SelectExpr,
5959
title = "Select expressions in $P4_{16}$",
60-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-select"
60+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-select"
6161
}
6262

6363
@ONLINE { P4Revisions110,
6464
title = "Summary of changes made in $P4_{16}$ version 1.1.0",
65-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-summary-of-changes-made-in-version-110"
65+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-summary-of-changes-made-in-version-110-released-november-26-2017"
6666
}
6767

6868
@ONLINE { P4Revisions122,
6969
title = "Summary of changes made in $P4_{16}$ version 1.2.2",
70-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.4.html#sec-summary-of-changes-made-in-version-122-released-may-17-2021"
70+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-summary-of-changes-made-in-version-122-released-may-17-2021"
7171
}
7272

7373
@ONLINE { P4Revisions124,
7474
title = "Summary of changes made in $P4_{16}$ version 1.2.4",
75-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.4.html#sec-summary-of-changes-made-in-version-124"
75+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-summary-of-changes-made-in-version-124released-may-15-2023"
76+
}
77+
78+
@ONLINE { P4Revisions125,
79+
title = "Summary of changes made in $P4_{16}$ version 1.2.5",
80+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-summary-of-changes-made-in-version-125-released-october-11-2024"
7681
}
7782

7883
@ONLINE { P4Spec,
7984
title = "$P4_{16}$ 1.2.1 specification",
80-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html"
85+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html"
8186
}
8287

8388
@ONLINE { PSA,
@@ -92,7 +97,7 @@ @ONLINE { PNA
9297

9398
@ONLINE { P4Enums,
9499
title = "Enums in $P4_{16}$",
95-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-enum-types"
100+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-enum-types"
96101
}
97102

98103
@ONLINE { ProtoAny,
@@ -133,7 +138,7 @@ @ONLINE { P4APIWGCharter
133138

134139
@ONLINE { P4NewTypes,
135140
title = "Introducing new types in $P4_{16}$",
136-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-newtype"
141+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-newtype"
137142
}
138143

139144
@ONLINE { APIVersioning,
@@ -163,7 +168,7 @@ @ONLINE { RFC2697
163168

164169
@ONLINE { P4MatchTypes,
165170
title = "Match types in P4",
166-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-match-kind-type"
171+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-match-kind-type"
167172
}
168173

169174
@ONLINE { gRPCStreamC,
@@ -178,7 +183,7 @@ @ONLINE { gRPCAuth
178183

179184
@ONLINE { P4ActionAnnotations,
180185
title = "P4 standard annotations on table actions",
181-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-table-action-anno"
186+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-table-action-anno"
182187
}
183188

184189
@ONLINE { PSAActionSelector,
@@ -198,7 +203,7 @@ @ONLINE { PSAAtomicityOfControlPlaneOps
198203

199204
@ONLINE { P4Concurrency,
200205
title = "P4 Concurrency Model",
201-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-concurrency"
206+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-concurrency"
202207
}
203208

204209
@ONLINE { PSATranslation,
@@ -218,7 +223,7 @@ @ONLINE { ProtoOneOfBackwardsCompatibility
218223

219224
@ONLINE { P4Annotations,
220225
title = "P4 Annotations",
221-
url = "https://p4.org/p4-spec/docs/P4-16-v1.2.1.html#sec-annotations"
226+
url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-annotations"
222227
}
223228

224229
@ONLINE { v1model,

rust/Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/p4runtime-prost/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "p4runtime-prost"
3-
version = "1.4.0"
3+
version = "1.5.0"
44
edition = "2021"
55
authors = ["P4 API Working Group <p4-api@lists.p4.org>"]
66
description = "P4Runtime Specification - Protobuf message API (Prost)"

rust/p4runtime-tonic/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "p4runtime-tonic"
3-
version = "1.4.0"
3+
version = "1.5.0"
44
edition = "2021"
55
authors = ["P4 API Working Group <p4-api@lists.p4.org>"]
66
description = "P4Runtime Specification - gRPC service definitions"

0 commit comments

Comments
 (0)