sFlow interface VG counters
Change-Id: I16744c601913cf71af2ed49ebf127e2196105ce2
diff --git a/apps/ipflow-monitor/sflow/api/src/main/java/org/onosproject/sflow/VgCounter.java b/apps/ipflow-monitor/sflow/api/src/main/java/org/onosproject/sflow/VgCounter.java
new file mode 100644
index 0000000..f229437
--- /dev/null
+++ b/apps/ipflow-monitor/sflow/api/src/main/java/org/onosproject/sflow/VgCounter.java
@@ -0,0 +1,411 @@
+/*
+ * Copyright 2024-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.sflow;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Represents VG counters for network interfaces.
+ */
+public final class VgCounter {
+
+ private InterfaceCounter generic;
+ private int dot12InHighPriorityFrames;
+ private long dot12InHighPriorityOctets;
+ private int dot12InNormPriorityFrames;
+ private long dot12InNormPriorityOctets;
+ private int dot12InIpmErrors;
+ private int dot12InOversizeFrameErrors;
+ private int dot12InDataErrors;
+ private int dot12InNullAddressedFrames;
+ private int dot12OutHighPriorityFrames;
+ private long dot12OutHighPriorityOctets;
+ private int dot12TransitionIntoTrainings;
+ private long dot12HCInHighPriorityOctets;
+ private long dot12HCInNormPriorityOctets;
+ private long dot12HCOutHighPriorityOctets;
+
+ private VgCounter(Builder builder) {
+ this.generic = builder.generic;
+ this.dot12InHighPriorityFrames = builder.dot12InHighPriorityFrames;
+ this.dot12InHighPriorityOctets = builder.dot12InHighPriorityOctets;
+ this.dot12InNormPriorityFrames = builder.dot12InNormPriorityFrames;
+ this.dot12InNormPriorityOctets = builder.dot12InNormPriorityOctets;
+ this.dot12InIpmErrors = builder.dot12InIpmErrors;
+ this.dot12InOversizeFrameErrors = builder.dot12InOversizeFrameErrors;
+ this.dot12InDataErrors = builder.dot12InDataErrors;
+ this.dot12InNullAddressedFrames = builder.dot12InNullAddressedFrames;
+ this.dot12OutHighPriorityFrames = builder.dot12OutHighPriorityFrames;
+ this.dot12OutHighPriorityOctets = builder.dot12OutHighPriorityOctets;
+ this.dot12TransitionIntoTrainings = builder.dot12TransitionIntoTrainings;
+ this.dot12HCInHighPriorityOctets = builder.dot12HCInHighPriorityOctets;
+ this.dot12HCInNormPriorityOctets = builder.dot12HCInNormPriorityOctets;
+ this.dot12HCOutHighPriorityOctets = builder.dot12HCOutHighPriorityOctets;
+
+ }
+
+ /**
+ * Gets the generic interface counter.
+ *
+ * @return generic interface counter.
+ */
+ public InterfaceCounter getGeneric() {
+ return generic;
+ }
+
+ /**
+ * Gets the count of high priority frames.
+ *
+ * @return count of high priority frames.
+ */
+ public int getDot12InHighPriorityFrames() {
+ return dot12InHighPriorityFrames;
+ }
+
+ /**
+ * Gets the count of high priority octets.
+ *
+ * @return high priority octets.
+ */
+ public long getDot12InHighPriorityOctets() {
+ return dot12InHighPriorityOctets;
+ }
+
+ /**
+ * Gets the count of normal priority frames.
+ *
+ * @return count of normal priority frames.
+ */
+ public int getDot12InNormPriorityFrames() {
+ return dot12InNormPriorityFrames;
+ }
+
+ /**
+ * Gets the count of normal priority octets.
+ *
+ * @return count of normal priority octets.
+ */
+ public long getDot12InNormPriorityOctets() {
+ return dot12InNormPriorityOctets;
+ }
+
+ /**
+ * Gets the count of ipm errors.
+ *
+ * @return count of ipm errors.
+ */
+ public int getDot12InIpmErrors() {
+ return dot12InIpmErrors;
+ }
+
+ /**
+ * Gets the count of over size frame errors.
+ *
+ * @return count of over size frame errors.
+ */
+ public int getDot12InOversizeFrameErrors() {
+ return dot12InOversizeFrameErrors;
+ }
+
+ /**
+ * Gets the count of in data errors.
+ *
+ * @return count of in data errors.
+ */
+ public int getDot12InDataErrors() {
+ return dot12InDataErrors;
+ }
+
+ /**
+ * Gets the count of in null addressed frames.
+ *
+ * @return count of in null addressed frames.
+ */
+ public int getDot12InNullAddressedFrames() {
+ return dot12InNullAddressedFrames;
+ }
+
+ /**
+ * Gets the count of out high priority frames.
+ *
+ * @return count of out high priority frames.
+ */
+ public int getDot12OutHighPriorityFrames() {
+ return dot12OutHighPriorityFrames;
+ }
+
+ /**
+ * Gets the count of out high priority octets.
+ *
+ * @return count of out high priority octets.
+ */
+ public long getDot12OutHighPriorityOctets() {
+ return dot12OutHighPriorityOctets;
+ }
+
+ /**
+ * Gets the count of transition.
+ *
+ * @return count of transition.
+ */
+ public int getDot12TransitionIntoTrainings() {
+ return dot12TransitionIntoTrainings;
+ }
+
+ /**
+ * Gets the count of high priority octets.
+ *
+ * @return count of high priority octets.
+ */
+ public long getDot12HCInHighPriorityOctets() {
+ return dot12HCInHighPriorityOctets;
+ }
+
+ /**
+ * Gets the count of in normal priority octets.
+ *
+ * @return count of in normal priority octets.
+ */
+ public long getDot12HCInNormPriorityOctets() {
+ return dot12HCInNormPriorityOctets;
+ }
+
+ /**
+ * Gets the count of out high priority octets.
+ *
+ * @return count of out high priority octets.
+ */
+ public long getDot12HCOutHighPriorityOctets() {
+ return dot12HCOutHighPriorityOctets;
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(getClass())
+ .add("generic", generic)
+ .add("dot12InHighPriorityFrames", dot12InHighPriorityFrames)
+ .add("dot12InHighPriorityOctets", dot12InHighPriorityOctets)
+ .add("dot12InNormPriorityFrames", dot12InNormPriorityFrames)
+ .add("dot12InNormPriorityOctets", dot12InNormPriorityOctets)
+ .add("dot12InIPMErrors", dot12InIpmErrors)
+ .add("dot12InOversizeFrameErrors", dot12InOversizeFrameErrors)
+ .add("dot12InDataErrors", dot12InDataErrors)
+ .add("dot12InNullAddressedFrames", dot12InNullAddressedFrames)
+ .add("dot12OutHighPriorityFrames", dot12OutHighPriorityFrames)
+ .add("dot12OutHighPriorityOctets", dot12OutHighPriorityOctets)
+ .add("dot12TransitionIntoTrainings", dot12TransitionIntoTrainings)
+ .add("dot12HCInHighPriorityOctets", dot12HCInHighPriorityOctets)
+ .add("dot12HCInNormPriorityOctets", dot12HCInNormPriorityOctets)
+ .add("dot12HCOutHighPriorityOctets", dot12HCOutHighPriorityOctets)
+ .toString();
+ }
+
+ /**
+ * Builder pattern to create an instance of InterfaceCounter.
+ */
+ private static class Builder {
+ private InterfaceCounter generic;
+ private int dot12InHighPriorityFrames;
+ private long dot12InHighPriorityOctets;
+ private int dot12InNormPriorityFrames;
+ private long dot12InNormPriorityOctets;
+ private int dot12InIpmErrors;
+ private int dot12InOversizeFrameErrors;
+ private int dot12InDataErrors;
+ private int dot12InNullAddressedFrames;
+ private int dot12OutHighPriorityFrames;
+ private long dot12OutHighPriorityOctets;
+ private int dot12TransitionIntoTrainings;
+ private long dot12HCInHighPriorityOctets;
+ private long dot12HCInNormPriorityOctets;
+ private long dot12HCOutHighPriorityOctets;
+
+ /**
+ * Sets the generic interface counter.
+ *
+ * @param generic the generic interface counter.
+ * @return this builder instance.
+ */
+ public Builder generic(InterfaceCounter generic) {
+ this.generic = generic;
+ return this;
+ }
+
+ /**
+ * Sets the count of high priority frames.
+ *
+ * @param dot12InHighPriorityFrames the count of high priority frames.
+ * @return this builder instance.
+ */
+ public Builder dot12InHighPriorityFrames(int dot12InHighPriorityFrames) {
+ this.dot12InHighPriorityFrames = dot12InHighPriorityFrames;
+ return this;
+ }
+
+ /**
+ * Sets the count of high priority octets.
+ *
+ * @param dot12InHighPriorityOctets the high priority octets.
+ * @return this builder instance.
+ */
+ public Builder dot12InHighPriorityOctets(long dot12InHighPriorityOctets) {
+ this.dot12InHighPriorityOctets = dot12InHighPriorityOctets;
+ return this;
+ }
+
+ /**
+ * Sets the count of normal priority frames.
+ *
+ * @param dot12InNormPriorityFrames the count of normal priority frames.
+ * @return this builder instance.
+ */
+ public Builder dot12InNormPriorityFrames(int dot12InNormPriorityFrames) {
+ this.dot12InNormPriorityFrames = dot12InNormPriorityFrames;
+ return this;
+ }
+
+ /**
+ * Sets the count of normal priority octets.
+ *
+ * @param dot12InNormPriorityOctets the count of normal priority octets.
+ * @return this builder instance.
+ */
+ public Builder dot12InNormPriorityOctets(long dot12InNormPriorityOctets) {
+ this.dot12InNormPriorityOctets = dot12InNormPriorityOctets;
+ return this;
+ }
+
+ /**
+ * Sets the count of ipm errors.
+ *
+ * @param dot12InIPMErrors the count of ipm errors.
+ * @return this builder instance.
+ */
+ public Builder dot12InIpmErrors(int dot12InIpmErrors) {
+ this.dot12InIpmErrors = dot12InIpmErrors;
+ return this;
+ }
+
+ /**
+ * Sets the count of over size frame errors.
+ *
+ * @param dot12InOversizeFrameErrors the count of over size frame errors.
+ * @return this builder instance.
+ */
+ public Builder dot12InOversizeFrameErrors(int dot12InOversizeFrameErrors) {
+ this.dot12InOversizeFrameErrors = dot12InOversizeFrameErrors;
+ return this;
+ }
+
+ /**
+ * Sets the count of in data errors.
+ *
+ * @param dot12InDataErrors the count of in data errors.
+ * @return this builder instance.
+ */
+ public Builder dot12InDataErrors(int dot12InDataErrors) {
+ this.dot12InDataErrors = dot12InDataErrors;
+ return this;
+ }
+
+ /**
+ * Sets the count of in null addressed frames.
+ *
+ * @param dot12InNullAddressedFrames the count of in null addressed frames.
+ * @return this builder instance.
+ */
+ public Builder dot12InNullAddressedFrames(int dot12InNullAddressedFrames) {
+ this.dot12InNullAddressedFrames = dot12InNullAddressedFrames;
+ return this;
+ }
+
+ /**
+ * Sets the count of out high priority frames.
+ *
+ * @param dot12OutHighPriorityFrames the count of out high priority frames.
+ * @return this builder instance.
+ */
+ public Builder dot12OutHighPriorityFrames(int dot12OutHighPriorityFrames) {
+ this.dot12OutHighPriorityFrames = dot12OutHighPriorityFrames;
+ return this;
+ }
+
+ /**
+ * Sets the count of out high priority octets.
+ *
+ * @param dot12OutHighPriorityOctets the count of out high priority octets.
+ * @return this builder instance.
+ */
+ public Builder dot12OutHighPriorityOctets(long dot12OutHighPriorityOctets) {
+ this.dot12OutHighPriorityOctets = dot12OutHighPriorityOctets;
+ return this;
+ }
+
+ /**
+ * Sets the count of transition.
+ *
+ * @param dot12TransitionIntoTrainings the count of transition.
+ * @return this builder instance.
+ */
+ public Builder dot12TransitionIntoTrainings(int dot12TransitionIntoTrainings) {
+ this.dot12TransitionIntoTrainings = dot12TransitionIntoTrainings;
+ return this;
+ }
+
+ /**
+ * Sets the count of high priority octets.
+ *
+ * @param dot12HCInHighPriorityOctets the count of high priority octets.
+ * @return this builder instance.
+ */
+ public Builder dot12HCInHighPriorityOctets(long dot12HCInHighPriorityOctets) {
+ this.dot12HCInHighPriorityOctets = dot12HCInHighPriorityOctets;
+ return this;
+ }
+
+ /**
+ * Sets the count of in normal priority octets.
+ *
+ * @param dot12HCInNormPriorityOctets the count of in normal priority octets.
+ * @return this builder instance.
+ */
+ public Builder dot12HCInNormPriorityOctets(long dot12HCInNormPriorityOctets) {
+ this.dot12HCInNormPriorityOctets = dot12HCInNormPriorityOctets;
+ return this;
+ }
+
+ /**
+ * Sets the count of out high priority octets.
+ *
+ * @param dot12HCOutHighPriorityOctets the count of out high priority octets.
+ * @return this builder instance.
+ */
+ public Builder dot12HCOutHighPriorityOctets(long dot12HCOutHighPriorityOctets) {
+ this.dot12HCOutHighPriorityOctets = dot12HCOutHighPriorityOctets;
+ return this;
+ }
+
+ /**
+ * Builds an instance of VgCounter based on the configured parameters.
+ *
+ * @return an instance of VgCounter.
+ */
+ public VgCounter build() {
+ return new VgCounter(this);
+ }
+
+ }
+}