Class AbstractFlowspecNlriParser

java.lang.Object
org.opendaylight.protocol.bgp.flowspec.AbstractFlowspecNlriParser
All Implemented Interfaces:
NlriParser, NlriSerializer
Direct Known Subclasses:
AbstractFlowspecL3vpnNlriParser, SimpleFlowspecIpv4NlriParser, SimpleFlowspecIpv6NlriParser

public abstract class AbstractFlowspecNlriParser extends Object implements NlriParser, NlriSerializer
  • Field Details

    • DEST_PREFIX_NID

      public static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier DEST_PREFIX_NID
    • SOURCE_PREFIX_NID

      public static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier SOURCE_PREFIX_NID
    • OP_NID

      public static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier OP_NID
    • VALUE_NID

      public static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier VALUE_NID
    • flowspecTypeRegistry

      protected final FlowspecTypeRegistry flowspecTypeRegistry
  • Constructor Details

    • AbstractFlowspecNlriParser

      protected AbstractFlowspecNlriParser(FlowspecTypeRegistry flowspecTypeRegistry)
  • Method Details

    • serializeMpReachNlri

      protected abstract void serializeMpReachNlri(DestinationType dstType, io.netty.buffer.ByteBuf byteAggregator)
    • serializeMpUnreachNlri

      protected abstract void serializeMpUnreachNlri(DestinationType dstType, io.netty.buffer.ByteBuf byteAggregator)
    • extractSpecificFlowspec

      public abstract void extractSpecificFlowspec(org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode fsType, FlowspecBuilder fsBuilder)
    • stringSpecificFSNlriType

      protected abstract void stringSpecificFSNlriType(FlowspecType value, StringBuilder buffer)
    • serializeAttribute

      public final void serializeAttribute(Attributes pathAttributes, io.netty.buffer.ByteBuf byteAggregator)
      Specified by:
      serializeAttribute in interface NlriSerializer
    • serializeNlri

      protected final void serializeNlri(List<Flowspec> flowspecList, @NonNull io.netty.buffer.ByteBuf buffer)
    • appendNlri

      protected static final void appendNlri(@Nullable PathId pathId, @NonNull io.netty.buffer.ByteBuf nlri, @NonNull io.netty.buffer.ByteBuf output)
      Appends a Flowspec NLRI buffer to an output ByteBuf.
      Parameters:
      pathId - path ID
      nlri - NLRI to be appended
      output - where flowspec NLRI will be appended
    • stringNlri

      public String stringNlri(org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode flowspec)
    • stringNlri

      protected final String stringNlri(List<Flowspec> flows)
    • extractFlowspec

      public final List<Flowspec> extractFlowspec(org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode route)
    • readNlriLength

      public static int readNlriLength(@NonNull io.netty.buffer.ByteBuf nlri)
    • parseNlriFlowspecList

      protected final List<Flowspec> parseNlriFlowspecList(@NonNull io.netty.buffer.ByteBuf nlri)
      Parses Flowspec NLRI into list of Flowspec.
      Parameters:
      nlri - byte representation of NLRI which will be parsed
      Returns:
      list of Flowspec
    • parseNlri

      public final void parseNlri(io.netty.buffer.ByteBuf nlri, MpReachNlriBuilder builder, PeerSpecificParserConstraint constraint) throws BGPParsingException
      Description copied from interface: NlriParser
      Parse MP UN_REACH NLRI from buffer.
      Specified by:
      parseNlri in interface NlriParser
      Parameters:
      nlri - Encoded reachable NLRI in ByteBuf.
      builder - MP REACH NLRI builder.
      constraint - Peer specific constraints.
      Throws:
      BGPParsingException - exception.
    • parseNlri

      public final void parseNlri(io.netty.buffer.ByteBuf nlri, MpUnreachNlriBuilder builder, PeerSpecificParserConstraint constraint) throws BGPParsingException
      Description copied from interface: NlriParser
      Parse MP UN_REACH NLRI from buffer.
      Specified by:
      parseNlri in interface NlriParser
      Parameters:
      nlri - Encoded unreachable NLRI in ByteBuf.
      builder - MP UNREACH NLRI builder.
      constraint - Peer specific constraints.
      Throws:
      BGPParsingException - exception.
    • parseAdvertizedNlri

      protected abstract @NonNull DestinationType parseAdvertizedNlri(@NonNull io.netty.buffer.ByteBuf nlri, @Nullable PathId pathId) throws BGPParsingException
      Create advertized destination type.
      Parameters:
      nlri - on-wire NLRI, with path ID already peeled
      pathId - associated path id with given NLRI
      Returns:
      created destination type
      Throws:
      BGPParsingException
    • parseWithdrawnNlri

      protected abstract @NonNull DestinationType parseWithdrawnNlri(@NonNull io.netty.buffer.ByteBuf nlri, @Nullable PathId pathId) throws BGPParsingException
      Parse and create withdrawn destination type.
      Parameters:
      nlri - on-wire NLRI, with path ID already peeled
      pathId - associated path id with given NLRI
      Returns:
      created destination type
      Throws:
      BGPParsingException
    • readPathId

      protected static final @Nullable PathId readPathId(@NonNull io.netty.buffer.ByteBuf nlri, AddressFamily afi, SubsequentAddressFamily safi, PeerSpecificParserConstraint constraint)