Search in sources :

Example 11 with Rp

use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.Rp in project bgpcep by opendaylight.

the class PCEPNotificationMessageParser method insertObject.

private static State insertObject(final State state, final Object obj, final List<Message> errors, final List<Rps> requestParameters, final List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.pcntf.message.notifications.Notifications> notifications) {
    switch(state) {
        case INIT:
            if (obj instanceof Rp) {
                final Rp rp = (Rp) obj;
                if (rp.isProcessingRule()) {
                    errors.add(createErrorMsg(PCEPErrors.P_FLAG_NOT_SET, Optional.absent()));
                    return null;
                }
                requestParameters.add(new RpsBuilder().setRp(rp).build());
                return State.INIT;
            }
        case RP_IN:
            if (obj instanceof CNotification) {
                final CNotification n = (CNotification) obj;
                notifications.add(new NotificationsBuilder().setCNotification(n).build());
                return State.RP_IN;
            }
        case NOTIFICATION_IN:
        case END:
            return State.END;
        default:
            return state;
    }
}
Also used : RpsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.pcntf.message.notifications.RpsBuilder) Rp(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.Rp) CNotification(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.notification.object.CNotification) NotificationsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.pcntf.message.notifications.NotificationsBuilder)

Example 12 with Rp

use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.Rp in project bgpcep by opendaylight.

the class PCEPRequestParameterObjectParser method serializeObject.

@Override
public void serializeObject(final Object object, final ByteBuf buffer) {
    Preconditions.checkArgument(object instanceof Rp, "Wrong instance of PCEPObject. Passed %s. Needed RPObject.", object.getClass());
    final ByteBuf body = Unpooled.buffer();
    final Rp rpObj = (Rp) object;
    final BitArray flags = new BitArray(FLAGS_SIZE);
    flags.set(R_FLAG_OFFSET, rpObj.isReoptimization());
    flags.set(B_FLAG_OFFSET, rpObj.isBiDirectional());
    flags.set(O_FLAG_OFFSET, rpObj.isLoose());
    flags.set(M_FLAG_OFFSET, rpObj.isMakeBeforeBreak());
    flags.set(D_FLAG_OFFSET, rpObj.isOrder());
    flags.set(P_FLAG_OFFSET, rpObj.isPathKey());
    flags.set(S_FLAG_OFFSET, rpObj.isSupplyOf());
    flags.set(F_FLAG_OFFSET, rpObj.isFragmentation());
    flags.set(N_FLAG_OFFSET, rpObj.isP2mp());
    flags.set(E_FLAG_OFFSET, rpObj.isEroCompression());
    final byte[] res = flags.array();
    if (rpObj.getPriority() != null) {
        final byte p = UnsignedBytes.checkedCast(rpObj.getPriority());
        res[res.length - 1] = (byte) (res[res.length - 1] | p);
    }
    body.writeBytes(res);
    Preconditions.checkArgument(rpObj.getRequestId() != null, "RequestId is mandatory");
    writeUnsignedInt(rpObj.getRequestId().getValue(), body);
    serializeTlvs(rpObj.getTlvs(), body);
    ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), body, buffer);
}
Also used : BitArray(org.opendaylight.protocol.util.BitArray) ByteBuf(io.netty.buffer.ByteBuf) Rp(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.Rp)

Aggregations

Rp (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.Rp)9 ArrayList (java.util.ArrayList)5 Object (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object)4 ErrorObject (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject)4 ErrorsBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder)4 RpsBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.request._case.request.RpsBuilder)4 ByteBuf (io.netty.buffer.ByteBuf)3 VendorInformationObject (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.vendor.information.objects.VendorInformationObject)3 Preconditions (com.google.common.base.Preconditions)2 PCEPDeserializerException (org.opendaylight.protocol.pcep.spi.PCEPDeserializerException)2 PCEPErrors (org.opendaylight.protocol.pcep.spi.PCEPErrors)2 UnknownObject (org.opendaylight.protocol.pcep.spi.UnknownObject)2 SrpsBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev171025.pcerr.pcerr.message.error.type.stateful._case.stateful.SrpsBuilder)2 Srp (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev171025.srp.object.Srp)2 PcerrBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcerrBuilder)2 MetricPce (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.monitoring.metrics.MetricPce)2 Open (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open)2 PcerrMessageBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder)2 Errors (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors)2 RequestCaseBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.RequestCaseBuilder)2