/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://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.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/compute/v1/compute.proto

package com.google.cloud.compute.v1;

public interface BfdPacketOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.compute.v1.BfdPacket)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool authentication_present = 105974260;</code>
   *
   * @return Whether the authenticationPresent field is set.
   */
  boolean hasAuthenticationPresent();
  /**
   *
   *
   * <pre>
   * The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool authentication_present = 105974260;</code>
   *
   * @return The authenticationPresent.
   */
  boolean getAuthenticationPresent();

  /**
   *
   *
   * <pre>
   * The Control Plane Independent bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool control_plane_independent = 62363573;</code>
   *
   * @return Whether the controlPlaneIndependent field is set.
   */
  boolean hasControlPlaneIndependent();
  /**
   *
   *
   * <pre>
   * The Control Plane Independent bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool control_plane_independent = 62363573;</code>
   *
   * @return The controlPlaneIndependent.
   */
  boolean getControlPlaneIndependent();

  /**
   *
   *
   * <pre>
   * The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool demand = 275180107;</code>
   *
   * @return Whether the demand field is set.
   */
  boolean hasDemand();
  /**
   *
   *
   * <pre>
   * The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool demand = 275180107;</code>
   *
   * @return The demand.
   */
  boolean getDemand();

  /**
   *
   *
   * <pre>
   * The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880
   * Check the Diagnostic enum for the list of possible values.
   * </pre>
   *
   * <code>optional string diagnostic = 62708647;</code>
   *
   * @return Whether the diagnostic field is set.
   */
  boolean hasDiagnostic();
  /**
   *
   *
   * <pre>
   * The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880
   * Check the Diagnostic enum for the list of possible values.
   * </pre>
   *
   * <code>optional string diagnostic = 62708647;</code>
   *
   * @return The diagnostic.
   */
  java.lang.String getDiagnostic();
  /**
   *
   *
   * <pre>
   * The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880
   * Check the Diagnostic enum for the list of possible values.
   * </pre>
   *
   * <code>optional string diagnostic = 62708647;</code>
   *
   * @return The bytes for diagnostic.
   */
  com.google.protobuf.ByteString getDiagnosticBytes();

  /**
   *
   *
   * <pre>
   * The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool final = 97436022;</code>
   *
   * @return Whether the final field is set.
   */
  boolean hasFinal();
  /**
   *
   *
   * <pre>
   * The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool final = 97436022;</code>
   *
   * @return The final.
   */
  boolean getFinal();

  /**
   *
   *
   * <pre>
   * The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 length = 504249062;</code>
   *
   * @return Whether the length field is set.
   */
  boolean hasLength();
  /**
   *
   *
   * <pre>
   * The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 length = 504249062;</code>
   *
   * @return The length.
   */
  int getLength();

  /**
   *
   *
   * <pre>
   * The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 min_echo_rx_interval_ms = 97286868;</code>
   *
   * @return Whether the minEchoRxIntervalMs field is set.
   */
  boolean hasMinEchoRxIntervalMs();
  /**
   *
   *
   * <pre>
   * The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 min_echo_rx_interval_ms = 97286868;</code>
   *
   * @return The minEchoRxIntervalMs.
   */
  int getMinEchoRxIntervalMs();

  /**
   *
   *
   * <pre>
   * The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 min_rx_interval_ms = 463399028;</code>
   *
   * @return Whether the minRxIntervalMs field is set.
   */
  boolean hasMinRxIntervalMs();
  /**
   *
   *
   * <pre>
   * The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 min_rx_interval_ms = 463399028;</code>
   *
   * @return The minRxIntervalMs.
   */
  int getMinRxIntervalMs();

  /**
   *
   *
   * <pre>
   * The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 min_tx_interval_ms = 526023602;</code>
   *
   * @return Whether the minTxIntervalMs field is set.
   */
  boolean hasMinTxIntervalMs();
  /**
   *
   *
   * <pre>
   * The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 min_tx_interval_ms = 526023602;</code>
   *
   * @return The minTxIntervalMs.
   */
  int getMinTxIntervalMs();

  /**
   *
   *
   * <pre>
   * The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 multiplier = 191331777;</code>
   *
   * @return Whether the multiplier field is set.
   */
  boolean hasMultiplier();
  /**
   *
   *
   * <pre>
   * The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 multiplier = 191331777;</code>
   *
   * @return The multiplier.
   */
  int getMultiplier();

  /**
   *
   *
   * <pre>
   * The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool multipoint = 191421431;</code>
   *
   * @return Whether the multipoint field is set.
   */
  boolean hasMultipoint();
  /**
   *
   *
   * <pre>
   * The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool multipoint = 191421431;</code>
   *
   * @return The multipoint.
   */
  boolean getMultipoint();

  /**
   *
   *
   * <pre>
   * The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 my_discriminator = 76663113;</code>
   *
   * @return Whether the myDiscriminator field is set.
   */
  boolean hasMyDiscriminator();
  /**
   *
   *
   * <pre>
   * The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 my_discriminator = 76663113;</code>
   *
   * @return The myDiscriminator.
   */
  int getMyDiscriminator();

  /**
   *
   *
   * <pre>
   * The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool poll = 3446719;</code>
   *
   * @return Whether the poll field is set.
   */
  boolean hasPoll();
  /**
   *
   *
   * <pre>
   * The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional bool poll = 3446719;</code>
   *
   * @return The poll.
   */
  boolean getPoll();

  /**
   *
   *
   * <pre>
   * The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880
   * Check the State enum for the list of possible values.
   * </pre>
   *
   * <code>optional string state = 109757585;</code>
   *
   * @return Whether the state field is set.
   */
  boolean hasState();
  /**
   *
   *
   * <pre>
   * The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880
   * Check the State enum for the list of possible values.
   * </pre>
   *
   * <code>optional string state = 109757585;</code>
   *
   * @return The state.
   */
  java.lang.String getState();
  /**
   *
   *
   * <pre>
   * The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880
   * Check the State enum for the list of possible values.
   * </pre>
   *
   * <code>optional string state = 109757585;</code>
   *
   * @return The bytes for state.
   */
  com.google.protobuf.ByteString getStateBytes();

  /**
   *
   *
   * <pre>
   * The version number of the BFD protocol, as specified in section 4.1 of RFC5880.
   * </pre>
   *
   * <code>optional uint32 version = 351608024;</code>
   *
   * @return Whether the version field is set.
   */
  boolean hasVersion();
  /**
   *
   *
   * <pre>
   * The version number of the BFD protocol, as specified in section 4.1 of RFC5880.
   * </pre>
   *
   * <code>optional uint32 version = 351608024;</code>
   *
   * @return The version.
   */
  int getVersion();

  /**
   *
   *
   * <pre>
   * The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 your_discriminator = 515634064;</code>
   *
   * @return Whether the yourDiscriminator field is set.
   */
  boolean hasYourDiscriminator();
  /**
   *
   *
   * <pre>
   * The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880
   * </pre>
   *
   * <code>optional uint32 your_discriminator = 515634064;</code>
   *
   * @return The yourDiscriminator.
   */
  int getYourDiscriminator();
}
