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 TypeMethodDescriptionabstract DestinationTypecreateAdvertizedRoutesDestinationType(Object @NonNull [] nlriFields, @Nullable PathId pathId) Create advertized destination type.abstract DestinationTypecreateWithdrawnDestinationType(Object @NonNull [] nlriFields, @Nullable PathId pathId) Create withdrawn destination type.extractFlowspec(org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode route) abstract voidextractSpecificFlowspec(org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode fsType, FlowspecBuilder fsBuilder) protected Object @NonNull []parseNlri(@NonNull io.netty.buffer.ByteBuf nlri) Override this function to parse additional NLRI fields.final voidparseNlri(@NonNull io.netty.buffer.ByteBuf nlri, @NonNull MpReachNlriBuilder builder, PeerSpecificParserConstraint constraint) Parse MP UN_REACH NLRI from buffer.final voidparseNlri(@NonNull io.netty.buffer.ByteBuf nlri, @NonNull 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.static intreadNlriLength(@NonNull io.netty.buffer.ByteBuf nlri) protected static @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 voidserializeNlri(Object @NonNull [] nlriFields, @NonNull io.netty.buffer.ByteBuf buffer) protected final voidserializeNlri(Object @NonNull [] nlriFields, @Nullable PathId pathId, @NonNull io.netty.buffer.ByteBuf buffer) Serializes Flowspec NLRI to ByteBuf.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
-
createWithdrawnDestinationType
public abstract DestinationType createWithdrawnDestinationType(Object @NonNull [] nlriFields, @Nullable PathId pathId) Create withdrawn destination type.- Parameters:
nlriFields- a list of NLRI fields to be included in the destination typepathId- associated path id with given NLRI- Returns:
- created destination type
-
createAdvertizedRoutesDestinationType
public abstract DestinationType createAdvertizedRoutesDestinationType(Object @NonNull [] nlriFields, @Nullable PathId pathId) Create advertized destination type.- Parameters:
nlriFields- a list of NLRI fields to be included in the destination typepathId- associated path id with given NLRI- Returns:
- created destination type
-
serializeAttribute
public final void serializeAttribute(Attributes pathAttributes, io.netty.buffer.ByteBuf byteAggregator) - Specified by:
serializeAttributein interfaceNlriSerializer
-
serializeNlri
protected void serializeNlri(Object @NonNull [] nlriFields, @NonNull io.netty.buffer.ByteBuf buffer) -
serializeNlri
-
serializeNlri
protected final void serializeNlri(Object @NonNull [] nlriFields, @Nullable PathId pathId, @NonNull io.netty.buffer.ByteBuf buffer) Serializes Flowspec NLRI to ByteBuf.- Parameters:
nlriFields- NLRI fields to be serializedpathId- path IDbuffer- where flowspec NLRI will be serialized
-
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
protected Object @NonNull [] parseNlri(@NonNull io.netty.buffer.ByteBuf nlri) throws BGPParsingException Override this function to parse additional NLRI fields.- Parameters:
nlri- NLRI buffer- Returns:
- Parsed additional fields
- Throws:
BGPParsingException
-
parseNlri
public final void parseNlri(@NonNull io.netty.buffer.ByteBuf nlri, @NonNull 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(@NonNull io.netty.buffer.ByteBuf nlri, @NonNull 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.
-
readPathId
protected static @Nullable PathId readPathId(@NonNull io.netty.buffer.ByteBuf nlri, AddressFamily afi, SubsequentAddressFamily safi, PeerSpecificParserConstraint constraint)
-