示例#1
0
def mpls_operation(stub, oper):

    # MPLS Message
    mplsMsg = sl_mpls_pb2.SLMplsLabelBlockMsg()

    block = []

    for label in range(10):
        #Reserve the MPLS Space
        mplsBlock = sl_mpls_pb2.SLMplsLabelBlockKey()
        mplsBlock.StartLabel = 30000 + 1000 * label
        mplsBlock.LabelBlockSize = 100
        block.append(mplsBlock)

    mplsMsg.MplsBlocks.extend(block)

    #Make an RPC Call
    Timeout = 10
    mplsMsg.Oper = oper
    response = stub.SLMplsLabelBlockOp(mplsMsg, Timeout)

    #
    # Check the received result from the Server
    #
    if (sl_common_types_pb2.SLErrorStatus.SL_SUCCESS ==
            response.StatusSummary.Status):
        print "MPLS %s Success!" % (
            sl_common_types_pb2.SLObjectOp.keys()[oper])
    else:
        print "Error code for mpls %s is 0x%x" % (
            sl_common_types_pb2.SLObjectOp.keys()[oper],
            response.StatusSummary.Status)
def label_block_serializer(batch):
    """MPLS label block serializer"""
    serializer = sl_mpls_pb2.SLMplsLabelBlockMsg()
    if 'blocks' in batch:
        blk_list = []
        for block in batch['blocks']:
            b = sl_mpls_pb2.SLMplsLabelBlockKey()
            if 'block_size' in block:
                b.LabelBlockSize = block['block_size']
            if 'start_label' in block:
                b.StartLabel = block['start_label']
            blk_list.append(b)
    serializer.MplsBlocks.extend(blk_list)
    return serializer
示例#3
0
def label_block_serializer(batch_info):
    """MPLS label block serializer"""
    serializer = sl_mpls_pb2.SLMplsLabelBlockMsg()
    if 'blocks' in batch_info:
        blk_list = []
        for block in batch_info['blocks']:
            b = sl_mpls_pb2.SLMplsLabelBlockKey()
            if 'block_size' in block:
                b.LabelBlockSize = block['block_size']
            if 'start_label' in block:
                b.StartLabel = block['start_label']
            if 'block_type' in block:
                b.BlockType = block['block_type']
            if 'client_name' in block:
                b.ClientName = block['client_name']
            blk_list.append(b)
    serializer.MplsBlocks.extend(blk_list)
    return serializer