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 Summary
FieldsModifier and TypeFieldDescriptionstatic final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierprotected final FlowspecTypeRegistrystatic final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierstatic final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierstatic final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractFlowspecNlriParser(FlowspecTypeRegistry flowspecTypeRegistry) -
Method Summary
Modifier and TypeMethodDescriptionprotected static final voidappendNlri(@Nullable PathId pathId, @NonNull io.netty.buffer.ByteBuf nlri, @NonNull io.netty.buffer.ByteBuf output) Appends a Flowspec NLRI buffer to an output ByteBuf.extractFlowspec(org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode route) abstract voidextractSpecificFlowspec(org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode fsType, FlowspecBuilder fsBuilder) protected abstract @NonNull DestinationTypeparseAdvertizedNlri(@NonNull io.netty.buffer.ByteBuf nlri, @Nullable PathId pathId) Create advertized destination type.final voidparseNlri(io.netty.buffer.ByteBuf nlri, MpReachNlriBuilder builder, PeerSpecificParserConstraint constraint) Parse MP UN_REACH NLRI from buffer.final voidparseNlri(io.netty.buffer.ByteBuf nlri, MpUnreachNlriBuilder builder, PeerSpecificParserConstraint constraint) Parse MP UN_REACH NLRI from buffer.parseNlriFlowspecList(@NonNull io.netty.buffer.ByteBuf nlri) Parses Flowspec NLRI into list of Flowspec.protected abstract @NonNull DestinationTypeparseWithdrawnNlri(@NonNull io.netty.buffer.ByteBuf nlri, @Nullable PathId pathId) Parse and create withdrawn destination type.static intreadNlriLength(@NonNull io.netty.buffer.ByteBuf nlri) protected static final @Nullable PathIdreadPathId(@NonNull io.netty.buffer.ByteBuf nlri, AddressFamily afi, SubsequentAddressFamily safi, PeerSpecificParserConstraint constraint) final voidserializeAttribute(Attributes pathAttributes, io.netty.buffer.ByteBuf byteAggregator) protected abstract voidserializeMpReachNlri(DestinationType dstType, io.netty.buffer.ByteBuf byteAggregator) protected abstract voidserializeMpUnreachNlri(DestinationType dstType, io.netty.buffer.ByteBuf byteAggregator) protected final voidserializeNlri(List<Flowspec> flowspecList, @NonNull io.netty.buffer.ByteBuf buffer) protected final StringstringNlri(List<Flowspec> flows) stringNlri(org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode flowspec) protected abstract voidstringSpecificFSNlriType(FlowspecType value, StringBuilder buffer) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.opendaylight.protocol.bgp.parser.spi.NlriParser
convertMpReachToMpUnReach
-
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
-
-
Constructor Details
-
AbstractFlowspecNlriParser
-
-
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
-
serializeAttribute
public final void serializeAttribute(Attributes pathAttributes, io.netty.buffer.ByteBuf byteAggregator) - Specified by:
serializeAttributein interfaceNlriSerializer
-
serializeNlri
-
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 IDnlri- NLRI to be appendedoutput- where flowspec NLRI will be appended
-
stringNlri
public String stringNlri(org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode flowspec) -
stringNlri
-
extractFlowspec
-
readNlriLength
public static int readNlriLength(@NonNull io.netty.buffer.ByteBuf nlri) -
parseNlriFlowspecList
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:NlriParserParse MP UN_REACH NLRI from buffer.- Specified by:
parseNlriin interfaceNlriParser- 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:NlriParserParse MP UN_REACH NLRI from buffer.- Specified by:
parseNlriin interfaceNlriParser- 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 peeledpathId- 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 peeledpathId- 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)
-