@ONLINE { P4RuntimeRepo,
    title  = "p4lang/p4Runtime repository",
    subtitle = "P4Runtime Protobuf definition files and specification",
    url = "https://github.com/p4lang/p4runtime"
}

@ONLINE { gRPC,
    title = "gRPC main site",
    url = "https://grpc.io"
}

@ONLINE { Proto,
    title = "Protocol buffers main site",
    url = "https://developers.google.com/protocol-buffers"
}

@ONLINE { P4.org,
    title = "P4.org main site",
    url = "https://p4.org/"
}

@ONLINE { OpenConfig,
    title = "the OpenConfig project",
    url = "http://openconfig.net"
}

@ONLINE { Stratum,
    title = "the Stratum project",
    url = "https://stratumproject.org/"
}

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

@ONLINE { ProtoDefaults,
    title = "Default values for Protobuf 3 ($proto3$) fields",
    url = "https://developers.google.com/protocol-buffers/docs/proto3#default"
}

@ONLINE { PIRepo,
    title = "p4lang/PI repository",
    subtitle = "Legacy repository for P4Runtime, includes reference implementation",
    url = "https://github.com/p4lang/PI"
}

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

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

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

@ONLINE { P4Revisions110,
    title = "Summary of changes made in $P4_{16}$ version 1.1.0",
    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"
}

@ONLINE { P4Revisions122,
    title = "Summary of changes made in $P4_{16}$ version 1.2.2",
    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"
}

@ONLINE { P4Revisions124,
    title = "Summary of changes made in $P4_{16}$ version 1.2.4",
    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"
}

@ONLINE { P4Revisions125,
    title = "Summary of changes made in $P4_{16}$ version 1.2.5",
    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"
}

@ONLINE { P4Spec,
    title = "$P4_{16}$ 1.2.1 specification",
    url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html"
}

@ONLINE { PSA,
    title = "Portable Switch Architecture specification (v1.1.0)",
    url = "https://p4.org/p4-spec/docs/PSA-v1.1.0.html"
}

@ONLINE { PNA,
    title = "Portable NIC Architecture specification (v0.7)",
    url = "https://p4.org/p4-spec/docs/PNA-v0.7.html"
}

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

@ONLINE { ProtoAny,
    title = "the Any Protobuf message",
    url = "https://developers.google.com/protocol-buffers/docs/proto3#any"
}

@ONLINE { ProtoExtension,
    title = "Protobuf extension feature",
    url = "https://protobuf.dev/programming-guides/editions/#extensions"
}

@ONLINE { gRPCStatus,
    title = "the gRPC $Status$ class",
    url = "https://github.com/grpc/grpc/blob/master/include/grpcpp/impl/codegen/status.h"
}

@ONLINE { gRPCStatusCodes,
    title = "the gRPC canonical status codes",
    url = "https://developers.google.com/maps-booking/reference/grpc-api/status_codes"
}

@ONLINE { ProtoStatus,
    title = "status.proto",
    subtitle = "the Protobuf Status message",
    url = "https://github.com/grpc/grpc/blob/master/src/proto/grpc/status/status.proto"
}

@ONLINE { gRPCErrorDetails,
    title = "the gRPC C++ error details library",
    url = "https://github.com/grpc/grpc/blob/master/include/grpcpp/support/error_details.h"
}

@ONLINE { P4APIWGCharter,
    title  = "P4.org API Working Group Charter",
    url = "https://p4.org/p4-spec/docs/P4_API_WG_charter.html"
}

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

@ONLINE { APIVersioning,
    title = "Google Cloud APIs versioning",
    url = "https://cloud.google.com/apis/design/versioning"
}

@ONLINE { APIVersioningBackwardsCompatibility,
    title = "Google Cloud APIs versioning - Backwards-compatibility",
    url = "https://cloud.google.com/apis/design/versioning#backwards_compatibility"
}

@ONLINE { SemVer,
    title = "Semantic versioning",
    url = "https://semver.org/"
}

@ONLINE { RFC2698,
    title = "A Two Rate Three Color Marker",
    url = "https://tools.ietf.org/html/rfc2698"
}

@ONLINE { RFC2697,
    title = "A Single Rate Three Color Marker",
    url = "https://tools.ietf.org/html/rfc2697"
}

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

@ONLINE { gRPCStreamC,
    title = "gRPC Streaming RPCs in C++",
    url = "https://grpc.io/docs/tutorials/basic/c.html#streaming-rpcs"
}

@ONLINE { gRPCAuth,
    title = "gRPC Authentication",
    url = "https://grpc.io/docs/guides/auth.html"
}

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

@ONLINE { PSAActionSelector,
    title = "PSA Action Selector",
    url = "https://p4.org/p4-spec/docs/PSA-v1.1.0.html#sec-action-selector"
}

@ONLINE { PSAEmptyGroupActionAppendix,
    title = "PSA Empty Group Action Appendix",
    url = "https://p4.org/p4-spec/docs/PSA-v1.1.0.html#appendix-empty-action-selector-groups"
}

@ONLINE { PSAAtomicityOfControlPlaneOps,
    title = "PSA Atomicity of Control Plane Operations",
    url = "https://p4.org/p4-spec/docs/PSA-v1.1.0.html#sec-atomicity-of-control-plane-api-operations"
}

@ONLINE { P4Concurrency,
    title = "P4 Concurrency Model",
    url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-concurrency"
}

@ONLINE { PSATranslation,
    title = "PSA Data Plane vs Control Plane Types",
    url = "https://p4.org/p4-spec/docs/PSA-v1.1.0.html#sec-data-plane-vs-control-plane-values"
}

@ONLINE { ProtoMessageDifferencer,
    title = "The Protobuf MessageDifferencer in the C++ API",
    url = "https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.util.message_differencer"
}

@ONLINE { ProtoOneOfBackwardsCompatibility,
    title = "Protobuf OneOf backwards-compatibility issues",
    url = "https://developers.google.com/protocol-buffers/docs/proto3#backwards-compatibility-issues"
}

@ONLINE { P4Annotations,
    title = "P4 Annotations",
    url = "https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html#sec-annotations"
}

@ONLINE { v1model,
    title = "v1model Architecture Definition",
    url = "https://github.com/p4lang/p4c/blob/master/p4include/v1model.p4"
}

@ONLINE { ArenaAllocation,
    title = "C++ Arena Allocation Guide",
    url = "https://developers.google.com/protocol-buffers/docs/reference/arenas"
}

@ONLINE { p4c,
    title = "P4_16 reference compiler",
    url = "https://github.com/p4lang/p4c"
}

@ONLINE { p4cTestProgramForConstEntries,
    title = "P4_16 reference compiler test program table-entries-ternary-bmv2.p4",
    url = "https://github.com/p4lang/p4c/blob/main/testdata/p4_16_samples/table-entries-ternary-bmv2.p4"
}
