-
Notifications
You must be signed in to change notification settings - Fork 656
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into bootz_skip_ownership
- Loading branch information
Showing
119 changed files
with
10,714 additions
and
1,178 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
name: Breaking Changes | ||
|
||
on: | ||
pull_request: | ||
branches: [ master ] | ||
|
||
jobs: | ||
build: | ||
name: major version update check | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Install go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: '1.x' | ||
|
||
- name: Check out code | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Install openconfig-ci CLI | ||
run: | | ||
go install github.com/openconfig/models-ci/openconfig-ci@05dd074 | ||
- name: Make sure all backward-incompatible changes are covered by version changes. | ||
id: check | ||
run: | | ||
readonly HEAD=${{ github.event.pull_request.head.sha }} | ||
readonly BASE="$(git merge-base origin/master "${HEAD}")" | ||
BASEREPODIR=public_base | ||
mkdir -p "${BASEREPODIR}/release" | ||
git checkout "${BASE}" | ||
cp -r release/models "${BASEREPODIR}/release" | ||
cp -r third_party "${BASEREPODIR}" | ||
git checkout "${HEAD}" | ||
oldroot="${BASEREPODIR}" | ||
newroot=. | ||
openconfig-ci diff --disallowed-incompats --oldp "${oldroot}/third_party" --oldroot "${oldroot}/release/models" --newp "${newroot}/third_party" --newroot "${newroot}/release/models" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: 'Close stale issues and PRs' | ||
on: | ||
schedule: | ||
- cron: '42 2 * * *' | ||
|
||
jobs: | ||
stale: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/stale@v9 | ||
with: | ||
stale-issue-message: 'This issue is stale because it has been open 180 days with no activity. If you wish to keep this issue active, please remove the stale label or add a comment, otherwise will be closed in 14 days.' | ||
days-before-stale: 180 | ||
days-before-close: 14 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -52,7 +52,7 @@ steps: | |
git clone [email protected]:openconfig/models-ci.git /go/src/github.com/openconfig/models-ci | ||
cd /go/src/github.com/openconfig/models-ci | ||
# Modify the major version to update models-ci version. | ||
branch=$(git tag -l 'v9*' | sort -V | tail -1) | ||
branch=$(git tag -l 'v13.*' | sort -V | tail -1) | ||
git checkout $branch | ||
volumes: | ||
- name: 'ssh' | ||
|
@@ -89,7 +89,6 @@ steps: | |
-pr-number=$_PR_NUMBER | ||
-skipped-validators=confd,yanglint | ||
-extra-pyang-versions=2.2.1 | ||
#-compat-report=yanglint | ||
-branch=$BRANCH_NAME | ||
secretEnv: ['GITHUB_ACCESS_TOKEN'] | ||
env: | ||
|
@@ -213,16 +212,6 @@ steps: | |
id: 'oc-pyang' | ||
|
||
############### GOYANG/YGOT ############### | ||
- name: 'golang' | ||
entrypoint: 'go' | ||
args: ['install', 'github.com/openconfig/ygot/generator@latest'] | ||
volumes: | ||
- name: 'gopath' | ||
path: /go | ||
env: | ||
- 'GOPATH=/go' | ||
waitFor: ['go path creation'] | ||
id: 'goyang-ygot prep' | ||
- name: 'us-west1-docker.pkg.dev/$PROJECT_ID/models-ci/models-ci-image' | ||
entrypoint: 'bash' | ||
args: ['-c', "/go/src/github.com/openconfig/models-ci/validators/goyang-ygot/test.sh"] | ||
|
@@ -237,7 +226,7 @@ steps: | |
- 'COMMIT_SHA=$COMMIT_SHA' | ||
- '_REPO_SLUG=$_REPO_SLUG' | ||
- 'BRANCH_NAME=$BRANCH_NAME' | ||
waitFor: ['validator prep', 'goyang-ygot prep', 'oc-pyang'] | ||
waitFor: ['validator prep', 'go path creation', 'oc-pyang'] | ||
id: 'goyang-ygot' | ||
|
||
############### PYANG ############### | ||
|
@@ -276,6 +265,24 @@ steps: | |
waitFor: ['validator prep', 'oc-pyang'] | ||
id: 'pyangbind' | ||
|
||
############### YGNMI ############### | ||
- name: 'us-west1-docker.pkg.dev/$PROJECT_ID/models-ci/models-ci-image' | ||
entrypoint: 'bash' | ||
args: ['-c', "/go/src/github.com/openconfig/models-ci/validators/ygnmi/test.sh"] | ||
secretEnv: ['GITHUB_ACCESS_TOKEN'] | ||
volumes: | ||
- name: 'gopath' | ||
path: /go | ||
env: | ||
- 'GOPATH=/go' | ||
- '_PR_NUMBER=$_PR_NUMBER' | ||
- '_MODEL_ROOT=$_MODEL_ROOT' | ||
- 'COMMIT_SHA=$COMMIT_SHA' | ||
- '_REPO_SLUG=$_REPO_SLUG' | ||
- 'BRANCH_NAME=$BRANCH_NAME' | ||
waitFor: ['validator prep', 'go path creation', 'oc-pyang', 'pyangbind'] # wait for pyangbind to avoid possible OOM. | ||
id: 'ygnmi' | ||
|
||
############### COMPATIBILITY REPORT ############### | ||
- name: 'us-west1-docker.pkg.dev/$PROJECT_ID/models-ci/models-ci-image' | ||
entrypoint: 'bash' | ||
|
@@ -296,6 +303,7 @@ steps: | |
timeout: 600s | ||
options: | ||
machineType: 'E2_HIGHCPU_32' | ||
logging: CLOUD_LOGGING_ONLY | ||
|
||
availableSecrets: | ||
inline: | ||
|
72 changes: 72 additions & 0 deletions
72
doc/Integrated-Circuit_pipeline_aggregated_counters_guide.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# Integrated Circuit aggregated pipeline counters guide | ||
## Introduction | ||
This guide discusses semantics of different counters provided under the | ||
`openconfig-platform/components/component/integrated-circuit/pipeline-counters` container. | ||
The `INTEGRATED_CIRCUIT` or I-C, in this document refers to the OpenConfig [INTEGRATED_CIRCUIT](https://github.com/openconfig/public/blob/5d38d8531ef9c5b998262207eb6dbdae8968f9fe/release/models/platform/openconfig-platform-types.yang#L346) component type which is typically an ASIC or NPU (or combination of both) that provides packet processing capabilities. | ||
|
||
## Per-block packets/octets counters | ||
[TODO] more detailed description | ||
## Drop packets/octets counters | ||
The `/components/component/integrated-circuit/pipeline-counters/drop` container collects counters related to packets dropped by the `INTEGRATED_CIRCUIT`. | ||
### Aggregated drop counters | ||
These 4 counters should cover all packets dropped by the IC which are not already covered by the /interfaces tree. For example, a packet which is dropped due to QoS policy for WRED should be counted only by the appropriate /interfaces path [dropped-pkts](https://github.com/openconfig/public/blob/5d38d8531ef9c5b998262207eb6dbdae8968f9fe/release/models/qos/openconfig-qos-interfaces.yang#L375). | ||
|
||
Aggregated drop counters are modeled as below: | ||
``` | ||
module: openconfig-platform | ||
+--rw components | ||
+--rw component* [name] | ||
+--rw integrated-circuit | ||
+--ro oc-ppc:pipeline-counters | ||
+--ro oc-ppc:drop | ||
+--ro oc-ppc:state | ||
+--ro oc-ppc:adverse-aggregate? oc-yang:counter64 | ||
+--ro oc-ppc:congestion-aggregate? oc-yang:counter64 | ||
+--ro oc-ppc:packet-processing-aggregate? oc-yang:counter64 | ||
+--ro oc-ppc:urpf-aggregate? oc-yang:counter64 | ||
``` | ||
#### urpf-aggregate | ||
|
||
##### Usability | ||
The increments of this counter are typically signal of some form of attack with spoofed source address. Typically dDOS class. | ||
|
||
#### packet-processing-aggregate | ||
|
||
##### Usability | ||
The increments of this counter are expected during convergence events as well as during stable operation. However rapid increase in drop rate **may** be a signal of network being unhealthy and typically requires further investigation. | ||
The further break down of this counter, if available as vendor extension under `/openconfig-platform:components/component/integrated-circuit/openconfig-platform-pipeline-counters:pipeline-counters/drop/vendor` container could help to further narrow-down cause of drops. | ||
|
||
If prolonged packet drops are found to be caused by lack of FIB entry for incoming packets, this suggest inconsistency between Network Control plane protocols (BGP, IGP, RSVP, gRIBI), FIB calculated by Controller Card and FIB programmed into given Integrated Circuit. | ||
|
||
If an implementation supports `urpf-aggregate` counter, packets discarded due to uRPF should not be counted as `packet-processing-aggregate`. Else, uRPF discarded oacket should be counted against this counter. | ||
|
||
#### congestion-aggregate | ||
|
||
|
||
##### Usability | ||
The increments of this counter are signal of given Integrated Circuit being overhelmed by incoming traffic and complexity of packet processing that is required. | ||
|
||
#### adverse-aggregate | ||
##### Usability | ||
The increments of this counter are generally a signal of a hardware defect (e.g. memory errors or signal integrity issues) or (micro)code software defects. | ||
|
||
#### Queue tail and AQM drops exception discussion. | ||
Drops associated with QoS queue tail or AQM are the result of egress interface congestion. This is NOT the same as I-C congestion, and should be counted using /interfaces counters as it is expected state from the platform (router) point of view. It may be not expected state from a network design point of view but from the INTEGRATED_CIRCUIT, it is behaving according to design. | ||
|
||
The OpenConfig definition for [congestion-aggregate](https://github.com/openconfig/public/blob/5d38d8531ef9c5b998262207eb6dbdae8968f9fe/release/models/platform/openconfig-platform-pipeline-counters.yang#L1096-L1099) excludes "queue drop counters". It desirable to not count QoS queue drops under this `congestion-aggregate` in order to maintain a clear signal of hitting I-C performance limitations, rather then blend it with basic, simple egress interface speed limitations. | ||
|
||
### Per-Block drop copunters | ||
[TODO] more detailed description for standard OpenConfig drop counters defined for Interface-, Lookup-, Queueing-, Fabric- and Host-Interface- blocks. Also discuss relationship with Control plane traffic packets/octets counters. | ||
### Vendor extensions | ||
Please refer to [Vendor-Specific Augmentation for Pipeline Counter](vendor_counter_guide.md) | ||
## Error counters | ||
These leafs **do not** count **packets or bytes**. | ||
They count error events. | ||
|
||
For example corruption of on chip, HBM or chip external memory buffers (soft-error) which also are not already counted as queue drops for interfaces. | ||
|
||
[TODO] more detailed description | ||
## Control plane traffic packets/octets counters | ||
[TODO] more detailed description. Also discuss relationship with Host-Interface block counters. | ||
### Standard OpenConfig counters | ||
### Vendor extensions |
Oops, something went wrong.