Method and apparatus for processing labels
AssigneeEricsson Inc.
InventorsRahul Aggarwal, Pedro Miguel Martins Roque Marques
Life of this patent
Estimating the term…
Abstract
Methods and apparatus for processing labels is described. An exemplary method includes allocating labels at a network device in accordance with a set of one or more ranges, and reflecting, in the set of ranges, labels allocated for label switching with peers of the network device. According to an embodiment, the labels and the set of ranges are within a sub-space of a logically partitioned label space, the sub-space being designated to a client.
Claims56
A method in a network device comprising:
- logically partitioning a contiguous range of labels within a label space by a computer processor of said network device, wherein the contiguous range of labels is designated for a client and each of the labels from the range of labels is only allocable for use by the client;
- logically partitioning a second contiguous range of labels within the label space by said computer processor of said network device, wherein the second contiguous range of labels is designated for a second client and each of the labels from the second range of labels is only allocable for use by the second client;
- reflecting, in said range, one or more sets of labels allocated and one or more sets of labels unallocated by said client for label switching with peers of said network device through a free range structure that tracks a hierarchy of unallocated sub-ranges within said range;
- and
- reflecting, in said second range, one or more sets of labels allocated and one or more sets of labels unallocated by said second client for label switching with the peers of said network device through a second free range structure that tracks a hierarchy of unallocated sub-ranges within said second range.
A method in a network device comprising:
- receiving a request from a first of a plurality of clients for an available label within a label space, wherein each of said plurality of clients has been designated a different, mutually exclusive partition of said label space;
- selecting a currently unallocated label in accordance with a set of label ranges that reflect labels currently allocable for label switching within the partition of the label space designated for the first of the plurality of clients;
- and
- modifying the set of label ranges to reflect allocation of the selected label by updating a free range structure that tracks a hierarchy of unallocated sub-ranges within a partition.
A network device comprising:
- a set of one or more control cards to host a set of one or more client protocol modules and to maintain a set of one or more trees of one or more ranges, the set of trees to reflect labels allocated in response to label requests from said set of clients, the labels for label switching with peers of the network device, the set of control cards to exclusively designate different ones of a plurality of partitions of a label space to different ones of each of the clients, wherein each of the set of trees reflects labels allocated from different ones of the plurality of partitions, wherein each of the set of trees references a free range structure that tracks a hierarchy of unallocated sub-ranges within a respective partition of the label space;
- and
- a set of one or more line cards coupled with the set of control cards to receive forwarding information associated with said labels, the set of line cards to forward packets in accordance with the forwarding information.
An apparatus comprising:
- a processor;
- and
- a memory to store a tree data structure including,
- a first field to indicate a beginning label of a range of contiguous labels within a label space, the labels for label switching with peers of the network device and the range reflecting labels that have been allocated but not released;
- a second field to indicate an ending label of the range of contiguous labels within the label space, the range of contiguous labels is only allocable for use by a first client and another range of contiguous labels within the label space is only allocable for use by a second client;
- and
- a third field to reference a free range structure that tracks a hierarchy of unallocated sub-ranges within the range of contiguous labels.
A non-transitory machine-readable storage medium that provides instructions, which when executed by a set of one or more processors, cause said set of processors to perform operations comprising:
- receiving a request from a first of a plurality of clients for an available label within a label space, wherein each of said plurality of clients has been designated a different, mutually exclusive partition of said label space;
- selecting a currently unallocated label in accordance with a set of label ranges that reflect labels currently allocable for label switching within the partition of the label space designated for the first of the plurality of clients;
- and
- modifying the set of label ranges to reflect allocation of the selected label by updating a free range structure that tracks a hierarchy of unallocated sub-ranges within a partition.
A non-transitory machine-readable storage medium that provides instructions, which when executed by a set of one or more processors of a network device, cause said set of processors to perform operations comprising:
- receiving a label request indicating a request range, the request range indicating a range of acceptable labels;
- selecting a set of one or more currently unallocated labels within the request range in accordance with the set of one or more label ranges that reflect labels currently allocated for label switching with peers of the network device, wherein the set of one or more label ranges are included in a designated, mutually exclusive partition of a label space attributable to a client and is separate from a different set of one or more label ranges of the label space attributable to a different client;
- and
- modifying the set of label ranges to reflect allocation of the selected set of labels by updating a free range structure that tracks a hierarchy of unallocated sub-ranges within a partition.
The non-transitory machine-readable storage medium that provides instructions, which when executed by a set of one or more processors, cause said set of processors to perform operation comprising:
- different ones of a plurality of clients generating requests for labels, wherein each of said plurality of clients has been designated a different, mutually exclusive partition of a label space, and wherein each of said request identifies a range of labels that are not outside the partition of the one of the plurality of clients that generated the request;
- responsive to each of said requests, providing a currently unallocated label in accordance with a set of one or more label ranges that reflect labels currently allocable for label switching within the partition of the one of the plurality of clients that generated the request;
- and
- modifying the set of label ranges to reflect allocation of the provided label by updating a free range structure that tracks a hierarchy of unallocated sub-ranges within a partition.
A method in a network device comprising:
- partitioning a label space into a plurality of partitions, wherein each client of a plurality of clients of the network device is designated a different, mutually exclusive partition, the partition to include one or more sets of ranges of allocated labels and one or more sets of ranges of unallocated labels by updating a free range structure that tracks a hierarchy of unallocated sub-ranges within a partition;
- allocating labels by a computer processor of said network device for a client from the set of a set of one or more unallocated labels;
- and
- excluding the labels allocated for label switching with peers of said network device from the one or more set of ranges of unallocated labels and including the allocated labels into the set of one or more allocated labels.
Dependencies are inferred from the claim text.