grpc/include/grpc/impl
Bjorn Svensson ac874c2c83
[core] Add a channel argument to set DSCP on streams (#28322)
This adds a new channel argument `GRPC_ARG_DSCP` which allows users to
create classified gRPC streams with a
Differentiated Services Code Point (DSCP) marking on the IP frames.

The channel argument is handled on both clients and servers, but
currently only on posix based systems.

Fixes #17225

**Background**:
In addition to what is already described is #17225, when gRPC is used in
telco systems there is often a need to classify streams of importance.
There can be multiple hops between two endpoints (e.g. between 2 telecom
operators) and some streams that are more important than others (e.g.
emergency call related or similar). By marking the IP packets using DSCP
the aware routers can make a sound decision of the prioritization.

This PR propose to use DSCP as the configuration value since its common
for both IPv4/IPv6, an alternative would be to use a config name that
includes TOS and Traffic Class.
There might be more needed regarding documentation and end2end testing,
but there I need some advice.

**References**
https://datatracker.ietf.org/doc/html/rfc2474
https://www.iana.org/assignments/dscp-registry/dscp-registry.xhtml

<!--

Your pull request will be routed to the following person by default for
triaging.
If you know who should review your pull request, please remove the
mentioning below.

-->

@yashykt
2023-06-30 16:10:21 -07:00
..
codegen [cleanups] Remove `include/grpc/impl/codegen/slice.h` (#31871) 2022-12-15 14:36:04 +08:00
compression_types.h Remove `include/grpc/impl/codegen/compression_types.h` (#31726) 2022-11-22 14:41:55 -05:00
connectivity_state.h Remove `include/grpc/impl/codegen/connectivity_state.h` (#31728) 2022-12-12 18:03:33 +08:00
grpc_types.h [core] Add a channel argument to set DSCP on streams (#28322) 2023-06-30 16:10:21 -07:00
propagation_bits.h [cleanups] Remove `include/grpc/impl/codegen/propagation_bits.h` (#31870) 2022-12-15 11:08:02 +08:00
slice_type.h [cleanups] Remove `include/grpc/impl/codegen/slice.h` (#31871) 2022-12-15 14:36:04 +08:00