Patent Description:
Introduction of a concept of a flexible Ethernet (Flexible Ethernet, FlexE) provides a feasible evolution direction for Ethernet physical link virtualization. In the FlexE, one or more bound PHYs constitute a flexible Ethernet group (FlexE Group). The FlexE group may be considered as a FlexE link between a sending device and a receiving device. The FlexE link is a logical link. Bandwidth of the logical link is equal to a sum of bandwidth of the multiple bound PHYs. In a FlexE technical solution, bandwidth resources of the FlexE group are used by allocating time domain resources (for example, the time domain resources are divided into <NUM> or <NUM> timeslots), and a virtual link is implemented by performing timeslot configuration, so that the FlexE provides a service to a flexible Ethernet client (FlexE client).

When a sending device and a receiving device transmit a FlexE client via multiple nodes by using a FLexE technology, each node needs to perform forwarding in a conventional layer <NUM> (link layer) or layer <NUM> (network layer) forwarding mode according to a layer <NUM> or layer <NUM> forwarding table. Therefore, a delay is relatively large.

<CIT> discloses systems and methods for providing a channelized Optical channel Data Unit flexible (ODUflex) including receiving a signal; multiplexing the signal into a Tributary Slot (TS) of the channelized ODUflex, wherein the channelized ODUflex supports a variable number of TSs and a variable size; and mapping the channelized ODUflex into an Optical channel Transport Unit k/Cn (OTUk/Cn) (k=<NUM>, <NUM>, <NUM>, <NUM>), (n=<NUM>, <NUM>, <NUM>,. A network element configured to operate in an OTN network includes one or more ports coupled to switching circuitry, wherein a first port is configured to receive a signal, wherein the switching circuitry is configured to multiplex the signal into a TS of a channelized ODUflex, wherein the channelized ODUflex supports a variable number of TSs and a variable size (rate), and wherein a second port is configured to map the channelized ODUflex into an OTUk/Cn.

"<NPL>" describes the extensions to the Resource Reservation Protocol Traffic Engineering (RSVP-TE) signaling protocol to support Label Switched Paths (LSPs) in a GMPLS-controlled flexible Ethernet network.

"<NPL>" discloses that Flex Ethernet (FlexE) technology is a new kind of data plane technology and can be used to provide a generic mechanism for supporting a variety of Ethernet MAC rates that may or may not correspond to any existing Ethernet PHY rate. This includes MAC rates that are both greater than (though bonding) and less than (though sub-rate and channelization) the Ethernet PHY rate used to carry FlexE.

To describe the technical solutions in the embodiments of the present invention more clearly, the following briefly describes the accompanying drawings required for describing the embodiments or the prior art.

The following briefly describes the technical terms used in the embodiments of the present invention.

A flexible Ethernet client (FlexE client) is an Ethernet flow (Ethernet flow). For the Ethernet flow, an Ethernet MAC rate (Ethernet MAC rate) is corresponding to or not corresponding to an Ethernet PHY rate (Ethernet PHY rate).

A flexible Ethernet group (FlexE Group) is a group of from <NUM> to n bonded Ethernet PHYs (a Group of from <NUM> to n bonded Ethernet PHYs), where a value of n is equal to <NUM>. For example, the FlexE group may be one bonded Ethernet PHY. The FlexE group may be two bonded Ethernet PHYs. The FlexE group may be five bonded Ethernet PHYs.

For one bonded Ethernet PHY, one send PHY (send PHY) is bonded to a receive PHY (receive PHY). The number of send PHYs is equal to the number of receive PHYs.

For multiple bonded Ethernet PHYs, multiple send PHYs are respectively bonded to multiple receive PHYs. The number of multiple send PHYs is equal to the number of multiple receive PHYs.

The send PHY is a PHY used for sending data.

The receive PHY is a PHY used for receiving data.

All PHYs in this application are Ethernet PHYs.

For a flexible Ethernet (Flex Ethernet, FlexE), the FlexE client, and the FlexE group, refer to the Flexible Ethernet <NUM> Implementation Agreement (Flex Ethernet <NUM> Implementation Agreement) published by the Optical Internetworking Forum (Optical Internetworking Forum) on March, <NUM>. This application includes the Flexible Ethernet <NUM> Implementation Agreement.

A logical link is a link established on a physical link. One physical link may be divided into multiple logical links. Alternatively, multiple physical links may constitute one logical link.

Technical solutions provided in the embodiments of the present invention may be applied to a backbone network, a convergence network, an access network, an enterprise network, a mobile fronthaul network, or a mobile backhaul network.

<FIG> is a schematic diagram of an application scenario according to an embodiment of the present invention. As shown in <FIG>, a first device <NUM>, a forwarding device <NUM>, and a second device <NUM> are included. The second device <NUM> may be a sending device, for example, may be a router or a switch. The first device <NUM> may be a receiving device, for example, may be a router or a switch. The forwarding device <NUM> may be a router or a switch. The forwarding device <NUM> is a device that has a function of forwarding a FlexE client.

In the prior art, when the second device <NUM> forwards a FlexE client to the first device <NUM> via (via) the forwarding device <NUM>, the forwarding device <NUM> needs to perform forwarding in a conventional layer <NUM> (link layer) or layer <NUM> (network layer) forwarding mode by searching a layer <NUM> or layer <NUM> forwarding table. This is a relatively complex operation, and a transmission delay is relatively large. Therefore, the present invention provides a forwarding table generation method, so as to reduce a transmission delay and improve transmission efficiency.

The following describes the forwarding table generation method according to the embodiments of the present invention in detail with reference to <FIG>.

<FIG> is a schematic flowchart of a forwarding table generation method <NUM> according to an embodiment of the present invention. It should be understood that <FIG> shows detailed communication steps or operations of the forwarding table generation method. These steps or operations are merely examples. Other operations or transformations of the operations in <FIG> may also be performed in this embodiment of the present invention. In addition, the steps in <FIG> may be performed according to a sequence different from that presented in <FIG>, and it is likely that not all the operations in <FIG> need to be performed. It should be further understood that a timeslot used in this embodiment of the present invention may be specifically a calendar slot (calendar slot). For details of the calendar slot, refer to the Flexible Ethernet <NUM> Implementation Agreement.

A forwarding device determines a first timeslot set.

Specifically, the first timeslot set may include multiple timeslots. The multiple timeslots may be multiple timeslots used when the forwarding device sends, to a first device by using a first FlexE group, multiple encoded data blocks generated by a PCS. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks, that is, one timeslot is used to transmit one encoded data block.

The first FlexE group includes one or more send PHYs. The first FlexE group includes one or more receive PHYs. The send PHY in the first FlexE group is bonded to the receive PHY in the first FlexE group.

Herein, the multiple encoded data blocks may be data blocks generated after a second device (or may be referred to as a sending device) encodes an Ethernet frame corresponding to a FlexE client. For example, the multiple encoded data blocks may be multiple 64B/66B data blocks or multiple 8B/10B data blocks.

In this embodiment of the present invention, the forwarding device and the first device may establish a logical link by using the first FlexE group. The forwarding device may send the multiple encoded data blocks by using the first FlexE group and in the multiple timeslots included in the first timeslot set. The first device (or may be referred to as a receiving device) may receive, by using the first FlexE group and in the multiple timeslots included in the first timeslot set, the multiple encoded data blocks sent by the forwarding device. In addition, the first device may generate, according to the multiple received encoded data blocks, an Ethernet frame corresponding to a FlexE client.

For example, during allocation of time domain resources, the time domain resources may be divided into multiple periods. Each period in the multiple periods includes <NUM> timeslots, which are a timeslot <NUM> to a timeslot <NUM> respectively. Duration of each timeslot may be <NUM> millisecond (millisecond, ms). Duration of a period may be <NUM>. The forwarding device may allocate timeslots <NUM>, <NUM>, <NUM>, and <NUM> in each period to the first FlexE group. The first FlexE group may be a FlexE group <NUM>, and the first timeslot set may include the timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The forwarding device may respectively send, by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM> in each period, the multiple encoded data blocks generated by a physical coding sublayer of the second device. The first device respectively receives the multiple encoded data blocks by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM> in each period, and generates the Ethernet frame according to the multiple received encoded data blocks. That is, the first device may restore, according to the multiple encoded data blocks, the Ethernet frame obtained by the second device. For example, the first device may reorder and reassemble the multiple encoded data blocks to generate the Ethernet frame. Alternatively, the forwarding device may allocate timeslots <NUM>, <NUM>, <NUM>, and <NUM> in a first period to the first FlexE group, but the forwarding device does not allocate timeslots <NUM>, <NUM>, <NUM>, and <NUM> in another period to the first FlexE group. In this case, the forwarding device may send the multiple encoded data blocks by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM> in the first period. The first device receives the multiple encoded data blocks by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM> in the first period, and generates the Ethernet frame according to the multiple received encoded data blocks.

The forwarding device determines a second timeslot set.

Specifically, the second timeslot set may include multiple timeslots. The multiple timeslots may be multiple timeslots used when the forwarding device receives, by using a second FlexE group, the multiple encoded data blocks sent by the second device. Herein, the multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks, that is, one timeslot is used to transmit one encoded data block.

The forwarding device includes a receive PHY in the second FlexE group. The second device includes a send PHY in the second FlexE group.

In this embodiment of the present invention, the forwarding device and the second device may establish a logical link by using the second FlexE group. The second device may send the multiple encoded data blocks by using the second FlexE group and in the multiple timeslots included in the second timeslot set. The forwarding device may receive, by using the second FlexE group and in the multiple timeslots included in the second timeslot set, the multiple encoded data blocks sent by the second device.

For example, the second FlexE group may be a FlexE group <NUM>, and the second timeslot set may include timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The second device may respectively transmit, by using the FlexE group <NUM> and in timeslots <NUM>, <NUM>, <NUM>, and <NUM> in each timeslot period, the encoded data blocks generated by the physical coding sublayer of the second device. The forwarding device may respectively receive the encoded data blocks by using the FlexE group <NUM> and in the timeslots in each timeslot period, and then respectively send, to the first device, the encoded data blocks by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM> in each timeslot period.

The forwarding device generates a forwarding table, where the forwarding table includes a mapping relationship between multiple timeslots included in the second timeslot set of a second FlexE group, and multiple timeslots included in the first timeslot set of a first FlexE group.

Specifically, the forwarding device may establish, according to the determined second FlexE group, the multiple timeslots included in the second timeslot set, the first FlexE group, and the multiple timeslots included in the first timeslot set, the mapping relationship between the multiple timeslots included in the second timeslot set of the second FlexE group, and the multiple timeslots included in the first timeslot set of the first FlexE group. It should be understood that the multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple timeslots included in the second timeslot set.

For example, the mapping relationship included in the forwarding table specifically includes a mapping relationship between first information and second information. The first information includes the second FlexE group and the multiple timeslots included in the second timeslot set. The second information includes the first FlexE group and the multiple timeslots included in the first timeslot set.

Optionally, the method may further include: sending, by the forwarding device, the multiple encoded data blocks according to the forwarding table.

Optionally, the method may further include: skipping performing, by the forwarding device, layer <NUM> (link layer) or layer <NUM> (network layer) processing on the multiple encoded data blocks after the forwarding device receives the multiple encoded data blocks by using the second FlexE group and in the multiple timeslots included in the second timeslot set, and before the forwarding device sends the multiple encoded data blocks by using the first FlexE group and in the multiple timeslots included in the first timeslot set.

For ease of understanding and description, a specific process of forwarding encoded data blocks corresponding to a FlexE client is used as an example in the following, and a mapping table established by the forwarding device is described in detail with reference to <FIG> and Table <NUM>.

It is assumed that a forwarding path of the FlexE client is the second device <NUM> -> the forwarding device <NUM> -> the first device <NUM> shown in <FIG>.

For example, the second FlexE group is the FlexE group <NUM>, the second timeslot set includes the timeslots <NUM>, <NUM>, <NUM>, and <NUM>, the first FlexE group is the FlexE group <NUM>, and the first timeslot set includes the timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The mapping table established by the forwarding device may be shown in Table <NUM>. It should be understood that an inbound FlexE group in Table <NUM> represents a FlexE group used by the forwarding device to receive encoded data blocks, and is represented by using a FlexE group number (number). An inbound timeslot set includes timeslots used by the forwarding device to receive the encoded data blocks, and is represented by using a timeslot number. An outbound FlexE group represents a FlexE group used by the forwarding device to send the encoded data blocks, and is represented by using a FlexE group number. An outbound timeslot set includes timeslots used by the forwarding device to send the encoded data blocks, and is represented by using a timeslot number.

It may be learned, with reference to Table <NUM> and <FIG>, that the encoded data blocks generated from the FlexE client by the physical coding sublayer of the second device <NUM> are sent by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The forwarding device <NUM> receives, by using the FlexE group <NUM> between the forwarding device <NUM> and the second device <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>, the encoded data blocks sent by the second device <NUM>, and sends the encoded data blocks by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The first device <NUM> receives, by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>, the encoded data blocks sent by the forwarding device <NUM>, and may restore the FlexE client according to the encoded data blocks. In this way, the FlexE client is transmitted by using an end-to-end channel established by using the FlexE group <NUM>, the FlexE group <NUM>, and Table <NUM>, thereby improving transmission efficiency.

It should be understood that the forwarding table shown in Table <NUM> is merely an example for description, and shall not constitute any limitation on the present invention. The forwarding table established by the forwarding device includes the inbound FlexE group, the inbound timeslot set, the outbound FlexE group, and the outbound timeslot set. However, Table <NUM> is not necessarily an expression form of the forwarding table, that is, the forwarding device may represent the forwarding table by using Table <NUM> or by using another form different from Table <NUM>.

It should be further understood that only one forwarding device <NUM> is used as an example in <FIG>. There may be multiple forwarding devices on a forwarding path from the second device <NUM> to the first device <NUM>. Each forwarding device may establish a forwarding table as that shown in Table <NUM>, and each forwarding device performs forwarding according to the forwarding table.

According to the forwarding table generation method in this embodiment of the present invention, a forwarding device can establish a transmission path between two nodes by generating a forwarding table, so that a FlexE client can be transmitted by using a mapping relationship, in the forwarding table, between multiple timeslots in a second timeslot set of a second FlexE group, and multiple timeslots in a first timeslot set of a first FlexE group. Compared with the prior art in which the forwarding device needs to perform forwarding in a conventional layer <NUM> (link layer) or layer <NUM> (network layer) forwarding mode by searching a layer <NUM> or layer <NUM> forwarding table, the present invention can reduce a transmission delay, and improve transmission efficiency.

Optionally, when determining the first timeslot set, the forwarding device may determine the first timeslot set according to a first message sent by the first device.

Specifically, the forwarding device may receive the first message sent by the first device. The first message is used to instruct the forwarding device to determine the first timeslot set. The forwarding device determines first available timeslots of the forwarding device as the first timeslot set according to the first message. Herein, the first timeslot set is determined by the forwarding device. The forwarding device may detect available timeslots by using a slot (Slot) configuration module in the device, select the first available timeslots (for example, the timeslots <NUM>, <NUM>, <NUM>, and <NUM>) from the available timeslots, and use the first available timeslots as the first timeslot set.

In this embodiment of the present invention, the first message may be specifically a reservation (Resv) message in the Resource Reservation Protocol (Resource Reservation Protocol, RSVP). For ease of description, the reservation message herein may be referred to as a first reservation message. The first reservation information may be used to instruct the first device to determine the first timeslot set.

The first reservation message may further include path type instruction information, which is used to instruct to establish a FlexE-based path.

The foregoing technical solution may be implemented by extending RFC3473 published by the Internet Engineering Task Force (Internet Engineering Task Force, IETF). Specifically, the path type instruction information may be a new class-type value (Class-Type value) added to a flow specification FLOWSPEC object carried in the first reservation message. The new class-type value may be implemented by extending a field defined in RFC3473. For example, when the class-type value is <NUM>, it may indicate establishment of a FlexE-based path. It should be understood that, that the class-type value being <NUM> indicates establishment of a FlexE-based path is merely an example of the present invention, and shall not constitute any limitation on this embodiment of the present invention.

The path type instruction information may further be a new extended session type in the RSVP, for example, may be a new class-type value in a session object of the RSVP. For example, when the class-type value is <NUM>, it indicates establishment of a FlexE-based path. It should be understood that, that the class-type value being <NUM> indicates establishment of a FlexE-based path is merely an example of the present invention, and shall not constitute any limitation on this embodiment of the present invention.

In addition, the first reservation message may further include traffic parameter (Traffic Parameter) attribute information.

As an example, a format of the traffic parameter attribute information may be shown in <FIG>. As shown in <FIG>, the traffic parameter attribute information may include a signal type (signal type) field, a reserved field, and a bit_rate field. The signal type field is used to represent a type of a carried signal. For example, when the signal type = <NUM>, it indicates that a signal type is an encoded data block whose rate is <NUM> Gbps. The bit_rate field represents a rate of a FlexE client corresponding to the multiple encoded data blocks. For example, when the Bit_rate = <NUM>, it indicates that a rate of the FlexE client corresponding to the multiple encoded data blocks is <NUM> Gbps.

It should be understood that the format of the traffic parameter attribute information shown in <FIG> is merely an example of the traffic parameter attribute information in this embodiment of the present invention, and shall not constitute any limitation on this embodiment of the present invention. The format of the traffic parameter attribute information is not limited in this embodiment of the present invention.

Further, after the forwarding device determines the first timeslot set, optionally, the method may further include: sending, by the forwarding device, a second message to the first device, where the second message may carry identifiers of the multiple timeslots included in the first timeslot set.

Specifically, the forwarding device may notify, by sending the second message to the first device, the first device of the first timeslot set determined by the forwarding device, and instruct, by using the second message, the first device to determine the multiple timeslots included in the first timeslot set as timeslots used when the first device receives the multiple encoded data blocks by using the first FlexE group.

Herein, the forwarding device may send the second message to the first device by using an in-band control channel in a FlexE.

Optionally, that the forwarding device determines a second timeslot set may include: the forwarding device sends a third message to the second device, where the third message is used to instruct the second device to determine second available timeslots of the second device as the second timeslot set; the forwarding device receives a fourth message sent by the second device, where the fourth message carries identifiers of the multiple timeslots included in the second timeslot set; and the forwarding device determines the second timeslot set according to the identifiers that are of the multiple timeslots included in the second timeslot set and that are carried in the fourth message.

Specifically, the forwarding device may instruct, by sending the third message to the second device, the second device to determine the second timeslot set. After receiving the third message, the second device may determine the second timeslot set. Herein, the second device may specifically detect available timeslots by using a timeslot configuration module in the device, select the second available timeslots (for example, the timeslots <NUM>, <NUM>, <NUM>, and <NUM>) from the available timeslots, and use the second available timeslots as the second timeslot set. After determining the second timeslot set, the second device sends the fourth message to the forwarding device to notify the forwarding device of the second timeslot set determined by the second device. The forwarding device determines the second timeslot set according to the identifiers that are of the multiple timeslots included in the second timeslot set and that are carried in the received fourth message.

In this embodiment of the present invention, the third message may be specifically a reservation message in the RSVP. For ease of description, the reservation message in the RSVP herein may be referred to as a second reservation message. The second reservation information may be used to instruct the second device to determine the second timeslot set.

For the second reservation message, refer to description of the first reservation message. For brevity, details are not described herein again.

Herein, the second device may send the fourth message to the forwarding device by using an in-band control channel in the FlexE.

Optionally, when determining the first timeslot set, the forwarding device may determine the first timeslot set according to identifiers that are of the multiple timeslots included in the first timeslot set and that are sent by the first device.

Specifically, the first device may first determine the first timeslot set (for example, the timeslots <NUM>, <NUM>, <NUM>, and <NUM>), and then send the identifiers of the multiple timeslots included in the first timeslot set to the forwarding device. Herein, the multiple timeslots included in the first timeslot set are timeslots that are determined by the first device and that are used to receive the multiple encoded data blocks by using the first FlexE group. The forwarding device may determine the first timeslot set after receiving the identifiers that are of the multiple timeslots included in the first timeslot set and that are sent by the first device.

In this embodiment of the present invention, when sending the identifiers of the multiple timeslots included in the first timeslot set to the forwarding device, the first device may send, by sending a reservation (Resv) message in the RSVP to the forwarding device, the identifiers of the multiple timeslots included in the first timeslot set. For ease of description, the reservation message herein may be referred to as a third reservation message. Specifically, the third reservation message may carry the identifiers of the multiple timeslots included in the first timeslot set.

For the third reservation message, refer to description of the first reservation message and the second reservation message. For brevity, details are not described herein again.

Further, the first device may use a generalized multiprotocol label switching GMPLS label included in the third reservation message to carry the identifiers of the multiple timeslots included in the first timeslot set. For ease of description, the GMPLS label herein may be referred to as a first GMPLS label.

As an example, a format of the GMPLS label may be shown in <FIG>. As shown in <FIG>, the first GMPLS label may include a first field and a second field. The first field may be referred to as a used slot (used slot) field. The used slot field may represent the identifiers of the multiple timeslots in the first timeslot set. The second field may be referred to as a flexible Ethernet group number (FlexE Group number) field, and represents that a used FlexE group is the first FlexE group herein. The first GMPLS label may further include a third field and a fourth field. The third field may represent a length (Length) of the used slot field. The fourth field may be referred to as padding bits (Padding Bits). If a sum of lengths of the first field, the second field, and the third field is not a multiple of four bytes, padding bits are used to enable the sum of the lengths of the first field, the second field, and the third field to be a multiple of four bytes. For example, the first field may occupy <NUM> bits (Bit) to represent used timeslots. For example, the multiple timeslots included in the first timeslot set may be represented by setting bits in the used slot field that are corresponding to the timeslots <NUM>, <NUM>, <NUM>, and <NUM> to <NUM> and setting other bits to <NUM>. The first field may also have <NUM> bits, and this is not limited in this embodiment of the present invention. The second field may occupy <NUM> bits. When a FlexE group number = <NUM>, it indicates that the FlexE group <NUM> (an example of the first FlexE group) is used. The third field may have <NUM> bits. For example, when a Length = <NUM>, it indicates that a length of the used slot field is <NUM> bits. A length of the fourth field may be <NUM>. In this way, a sum of lengths of the first field, the second field, the third field, and the fourth field is a multiple of four bytes.

It should be understood that the first GMPLS label shown in <FIG> is merely a specific format of a GMPLS label in this embodiment of the present invention, and a format of the GMPLS label is not limited in this embodiment of the present invention.

Optionally, the method may further include: sending, by the forwarding device, an instruction message to the second device. The instruction message carries identifiers of the multiple timeslots included in the second timeslot set. The instruction message is used to instruct the second device to configure the multiple timeslots included in the second timeslot set as timeslots used when the second device sends the multiple encoded data blocks to the forwarding device by using the second FlexE group.

After determining the second timeslot set (for example, the timeslots <NUM>, <NUM>, <NUM>, and <NUM>), the forwarding device may notify, by sending the instruction information to the second device, the second device of the second timeslot set that is determined by the forwarding device. Specifically, the forwarding device may add the identifiers of the multiple timeslots included in the second timeslot set to the instruction information. After receiving the instruction information sent by the forwarding device, the second device may learn of the second timeslot set, and may configure the multiple timeslots included in the second timeslot set as the timeslots used when the second device sends the multiple encoded data blocks to the forwarding device by using the second FlexE group. That is, when forwarding the FlexE client, the second device may send the multiple encoded data blocks to the forwarding device by using the second FlexE group and in the multiple timeslots included in the second timeslot set.

In this embodiment of the present invention, when sending the instruction information to the second device, the forwarding device may send, by sending a reservation message in the RSVP to the forwarding device, the identifiers of the multiple timeslots included in the second timeslot set. For ease of description, the reservation message herein may be referred to as a fourth reservation message. Specifically, the fourth reservation message may carry the identifiers of the multiple timeslots included in the second timeslot set.

For the fourth reservation message, refer to description of the first reservation message, the second reservation message, and the third reservation message. For brevity, details are not described herein again.

Further, the forwarding device may use a GMPLS label included in the fourth reservation message to carry the identifiers of the multiple timeslots included in the second timeslot set. For ease of description, the GMPLS label herein may be referred to as a second GMPLS label. For the second GMPLS label, refer to description of the first GMPLS label. For brevity, details are not described herein again. It should be noted that when the first timeslot set is different from the second timeslot set, a value of a used slot in the second GMPLS label is different from a value of the used slot in the first GMPLS label.

This embodiment of the present invention may be based on the RSVP. Based on extension of the RSVP, a FlexE-based path from the second device to the first device via the forwarding device is established by establishing a forwarding table.

The following describes the forwarding table generation method according to the embodiments of the present invention in detail with reference to <FIG> and <FIG>. Methods shown in <FIG> and <FIG> may be obtained by extending the method shown in <FIG>. During specific implementation of the methods shown in <FIG> and <FIG>, refer to the foregoing description for the method shown in <FIG>, and details are not described herein again.

It should be noted that for the following terms, words, or the like same as those in the foregoing, refer to the foregoing description. For brevity, details are not described again in the following.

<FIG> is a schematic flowchart of a forwarding table generation method according to an embodiment of the present invention. It should be understood that <FIG> shows detailed communication steps or operations of the forwarding table generation method. However, these steps or operations are merely examples. Other operations or transformations of the operations in <FIG> may also be performed in this embodiment of the present invention. In addition, the steps in <FIG> may be performed according to a sequence different from that presented in <FIG>, and it is likely that not all the operations in <FIG> need to be performed.

A second device sends a path message to a forwarding device.

The path (Path) message may carry path type instruction information.

The path type instruction information may be a new class-type value (class-type value) added (or extended) to a sender traffic specification SENDER_TSPEC object carried in the path message. The new class-type value may be implemented by extending a field defined in RFC3473. For example, the Class-Type value. For example, when the class-type value = <NUM>, it may indicate establishment of a FlexE-based path. It should be understood that, that the class-type value being <NUM> indicates establishment of a FlexE-based path is merely an example of the present invention, and shall not constitute any limitation on this embodiment of the present invention.

The path type instruction information may further be a new extended session type in the RSVP, for example, may be a new class-type value (Class-Type value) in a session object of the RSVP. For example, when the class-type value is <NUM>, it may indicate establishment of a FlexE-based path. It should be understood that, that the class-type value being <NUM> indicates establishment of a FlexE-based path is merely an example of the present invention, and shall not constitute any limitation on this embodiment of the present invention.

Further, the path message may further carry traffic parameter (Traffic Parameter) attribute information. For the traffic parameter attribute information, refer to the foregoing description for the traffic parameter attribute information in the first reservation message. For brevity, details are not described herein again.

The forwarding device forwards the path message to a first device.

The first device sends a first reservation message to the forwarding device.

Specifically, after receiving the path message, the first device sends, to the forwarding device, the first reservation message in response to the path message. The first reservation message may be used to instruct the forwarding device to determine a first timeslot set.

The forwarding device determines a first timeslot set.

Specifically, after receiving the first reservation message, the forwarding device may detect available timeslots by using a timeslot configuration module in the device, and select the first timeslot set from the available timeslots.

The forwarding device sends a second message to the first device, where the second message may carry identifiers of multiple timeslots in the first timeslot set.

The first device determines the first timeslot set.

After receiving the second message sent by the first device, the first device determines the first timeslot set according to the identifiers that are of the multiple timeslots included in the first timeslot set and that are carried in the second message, and configures the first timeslot set as timeslots used to receive, by using a first FlexE group, a FlexE client sent by the forwarding device.

The forwarding device sends a second reservation message to the second device.

The second reservation message may be used to instruct the second device to determine a second timeslot set.

The second device determines a second timeslot set.

Specifically, after receiving the second reservation message, the second device may detect available timeslots by using a slot (Slot) configuration module in the device, and select the second timeslot set (for example, timeslots <NUM>, <NUM>, <NUM>, and <NUM>) from the available timeslots.

The second device sends a fourth message to the forwarding device.

The forwarding device determines the second timeslot set.

Specifically, after receiving the fourth message sent by the second device, the forwarding device determines the second timeslot set according to identifiers that are of multiple timeslots included in the second timeslot set and that are carried in the fourth message.

The forwarding device generates a mapping table.

The mapping table shown in Table <NUM> is generated, and when the FlexE client is being forwarded, encoded data blocks generated from the FlexE client by a physical coding sublayer of the second device are sent by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The forwarding device receives, by using the FlexE group <NUM> between the forwarding device and the second device and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>, the encoded data blocks sent by the second device, and sends the encoded data blocks by using the FlexE group <NUM> and in timeslots <NUM>, <NUM>, <NUM>, and <NUM>. The first device receives, by using the FlexE group <NUM> and in the timeslots <NUM>, <NUM>, <NUM>, and <NUM>, the encoded data blocks sent by the forwarding device, and may restore the FlexE client according to the encoded data blocks. In this way, the FlexE client is transmitted by using an end-to-end channel established by using the FlexE group <NUM>, the FlexE group <NUM>, and Table <NUM>, thereby improving transmission efficiency.

<FIG> is a schematic flowchart of a forwarding table generation method according to another embodiment of the present invention. It should be understood that <FIG> shows detailed communication steps or operations of the forwarding table generation method. However, these steps or operations are merely examples. Other operations or transformations of the operations in <FIG> may also be performed in this embodiment of the present invention. In addition, the steps in <FIG> may be performed according to a sequence different from that presented in <FIG>, and it is likely that not all the operations in <FIG> need to be performed.

Specifically, for the path message, refer to description of step <NUM> in the method shown in <FIG>.

In addition, in this embodiment of the present invention, the path message may further carry a label request (LABEL Request) object. A format of the label request object is shown in <FIG>. The format of the label request object includes a length (length) field, a class-number (class-num) field, a class-type (Class-Type) field, an LSP encoding type (LSP Encoding type) field, a switch type (Switch type) field, and a generalized protocol identifier (G-PID) field. The length field represents a length of the label request object. The class-number field represents that the object is a label request object, and a value of the class-num field is <NUM>. The class-type field represents that a label request is a generalized label request, and a value of the class-type field may be <NUM>. The LSP encoding type field represents a FlexE-based path, and a value of the LSP encoding type field may be <NUM>. The switch type field represents that an applied switching technology is a FlexE, and a value of the switch type field may be <NUM>. The generalized protocol identifier field represents that a 64B/66B Ethernet technology is used and is applied to a flexible Ethernet, and a value of the G-PID field may be <NUM>.

It should be understood that the format of the label request object shown in <FIG> is merely an example of the label request object in this embodiment of the present invention, and shall not constitute any limitation on this embodiment of the present invention. The format of the label request object is not limited in this embodiment of the present invention.

The forwarding device sends the path message to a first device.

The first device determines a first timeslot set.

Specifically, the first device may detect available timeslots by using a slot (Slot) configuration module in the first device, select the first timeslot set (for example, timeslots <NUM>, <NUM>, <NUM>, and <NUM>) from the available timeslots, and configure the first timeslot set as timeslots used to receive, by using a first FlexE group, a FlexE client sent by the forwarding device.

The first device sends a third reservation message to the forwarding device.

Specifically, the third reservation message may carry identifiers of multiple timeslots included in the first timeslot set.

The forwarding device determines the first timeslot set.

After receiving the third reservation message, the forwarding device may determine the first timeslot set according to the identifiers that are of the multiple timeslots included in the first timeslot set and that are carried in the third reservation message.

Specifically, the forwarding device may detect available timeslots by using a slot (Slot) configuration module in the device, and select the second timeslot set (for example, timeslots <NUM>, <NUM>, <NUM>, and <NUM>) from the available timeslots.

The forwarding device generates a forwarding table.

The forwarding device sends a fourth reservation message to the second device.

Specifically, the fourth reservation message may carry identifiers of multiple timeslots included in the second timeslot set.

The second device determines the second timeslot set.

After receiving the fourth reservation message, the second device may determine the second timeslot set according to the identifiers that are of the multiple timeslots included in the second timeslot set and that are carried in the fourth reservation message, and set the second timeslot set to timeslots used to send the FlexE client to the forwarding device by using a second FlexE group.

Therefore, according to the forwarding table generation method in this embodiment of the present invention, a forwarding device can establish a transmission path between two nodes by generating a forwarding table, so that a FlexE client can be transmitted by using a mapping relationship, in the forwarding table, between multiple timeslots in a second timeslot set of a second FlexE group, and multiple timeslots in a first timeslot set of a first FlexE group. Compared with the prior art in which the forwarding device needs to perform forwarding in a conventional layer <NUM> (link layer) or layer <NUM> (network layer) forwarding mode by searching a layer <NUM> or layer <NUM> forwarding table, the present invention can reduce a transmission delay, and improve transmission efficiency.

The foregoing describes the forwarding table generation method according to the embodiments of the present invention with reference to <FIG>. The following describes a forwarding device according to the embodiments of the present invention with reference to <FIG> and <FIG>.

<FIG> shows a schematic block diagram of a forwarding device <NUM> according to an embodiment of the present invention. As shown in <FIG>, the forwarding device <NUM> includes a determining unit <NUM> and a generation unit <NUM>. The forwarding device <NUM> may be used to execute the method shown in <FIG>. Specifically, the forwarding device <NUM> may be used to implement the forwarding device in <FIG>. Alternatively, the forwarding device <NUM> may be used to perform steps performed by a forwarding device in the method shown in <FIG>. Specifically, the forwarding device <NUM> may be used to implement the forwarding device in <FIG>. Alternatively, the forwarding device <NUM> may be used to perform steps performed by a forwarding device in the method shown in <FIG>. Specifically, the forwarding device <NUM> may be used to implement the forwarding device in <FIG>. For specific implementation of the forwarding device <NUM>, refer to the foregoing description for <FIG>, <FIG>, and <FIG>, and details are not described herein again.

The determining unit <NUM> is configured to determine a first timeslot set. The first timeslot set includes multiple timeslots used when the forwarding device sends, to a first device by using a first flexible Ethernet group FlexE group, multiple encoded data blocks generated by a physical coding sublayer. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The determining unit <NUM> is further configured to determine a second timeslot set. The second timeslot set includes multiple timeslots used when the forwarding device receives, by using a second FlexE group, the multiple encoded data blocks sent by a second device. The multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The generation unit <NUM> is configured to generate a forwarding table. The forwarding table includes a mapping relationship between the multiple timeslots included in the second timeslot set of the second FlexE group, and the multiple timeslots included in the first timeslot set of the first FlexE group.

The units of the forwarding device <NUM> in this embodiment of the present invention and the foregoing other operations or functions are separately for implementing corresponding procedures executed by a forwarding device in the foregoing method. For brevity, details are not described herein.

The forwarding device in this embodiment of the present invention can establish a transmission path between two nodes by generating a forwarding table, so that a FlexE client can be transmitted by using a mapping relationship, in the forwarding table, between multiple timeslots in a second timeslot set of a second FlexE group, and multiple timeslots in a first timeslot set of a first FlexE group. Compared with the prior art in which the forwarding device needs to perform forwarding in a conventional layer <NUM> (link layer) or layer <NUM> (network layer) forwarding mode by searching a layer <NUM> or layer <NUM> forwarding table, the present invention can reduce a transmission delay, and improve transmission efficiency.

The embodiments of the present invention further provide a first device, including a sending unit, a receiving unit, and a determining unit. The first device may be used to execute the method shown in <FIG>. Specifically, the first device may be used to implement the first device in <FIG>. Alternatively, the first device may be used to perform steps performed by a first device in the method shown in <FIG>. Specifically, the first device may be used to implement the first device in <FIG>. For specific implementation of the first device, refer to the foregoing description for <FIG> and <FIG>, and details are not described herein again.

The sending unit is configured to send a first message to a forwarding device. The first message is used to instruct the forwarding device to determine a first timeslot set. The first timeslot set includes multiple timeslots used when the forwarding device sends, to the first device by using a first flexible Ethernet group FlexE group, multiple encoded data blocks generated by a physical coding sublayer. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The receiving unit is configured to receive a second message sent by the forwarding device based on the first message. The second message carries identifiers of the multiple timeslots included in the first timeslot set.

The determining unit is configured to determine the first timeslot set according to the second message, and determine the multiple timeslots included in the first timeslot set as timeslots used when the first device receives the multiple encoded data blocks by using the first FlexE group.

The embodiments of the present invention further provide a first device, including a determining unit and a sending unit. The first device may be used to execute the method shown in <FIG>. Specifically, the first device may be used to implement the first device in <FIG>. Alternatively, the first device may be used to perform steps performed by a first device in the method shown in <FIG>. Specifically, the first device may be used to implement the first device in <FIG>. For specific implementation of the first device, refer to the foregoing description for <FIG> and <FIG>, and details are not described herein again.

The determining unit is configured to determine a first timeslot set. The first timeslot set includes multiple timeslots used when the first device receives, by using a first flexible Ethernet group FlexE group, multiple encoded data blocks generated by a physical coding sublayer that are sent by the first device. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The sending unit is configured to send identifiers of the multiple timeslots included in the first timeslot set to a forwarding device, so that the forwarding device determines the multiple timeslots included in the first timeslot set as timeslots used when the forwarding device sends the multiple encoded data blocks to the first device by using the first FlexE group.

The embodiments of the present invention further provide a second device, including a receiving unit, a determining unit, and a sending unit. The second device may be used to execute the method shown in <FIG>. Specifically, the second device may be used to implement the second device in <FIG>. Alternatively, the second device may be used to perform steps performed by a second device in the method shown in <FIG>. Specifically, the second device may be used to implement the second device in <FIG>. For specific implementation of the second device, refer to the foregoing description for <FIG> and <FIG>, and details are not described herein again.

The receiving unit is configured to receive a third message sent by a forwarding device. The third message is used to instruct the second device to determine a second timeslot set. The second timeslot set includes multiple timeslots used when the forwarding device receives, by using a second FlexE group, multiple encoded data blocks sent by the second device. The multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The determining unit is configured to determine the second timeslot set according to the third message.

The sending unit is configured to send a fourth message to the forwarding device. The fourth message carries identifiers of the multiple timeslots included in the second timeslot set. The fourth message is used to instruct the forwarding device to configure the multiple timeslots included in the second timeslot set as timeslots used when the second device sends the multiple encoded data blocks to the forwarding device by using the second FlexE group.

The embodiments of the present invention further provide a second device, including a receiving unit and a configuration unit. The second device may be used to execute the method shown in <FIG>. Specifically, the second device may be used to implement the second device in <FIG>. Alternatively, the second device may be used to perform steps performed by a second device in the method shown in <FIG>. Specifically, the second device may be used to implement the second device in <FIG>. For specific implementation of the second device, refer to the foregoing description for <FIG> and <FIG>, and details are not described herein again.

The receiving unit is configured to receive an instruction message sent by a forwarding device. The instruction message carries identifiers of multiple timeslots included in a second timeslot set. The second timeslot set includes the multiple timeslots used when the forwarding device receives, by using a second FlexE group, multiple encoded data blocks sent by the second device. The multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The configuration unit is configured to configure, according to the instruction message, the multiple timeslots included in the second timeslot set as timeslots used when the second device sends the multiple encoded data blocks to the forwarding device by using the second FlexE group.

<FIG> is a schematic structural diagram of a forwarding device <NUM> according to an embodiment of the present invention. The forwarding device <NUM> may be used to implement the forwarding device <NUM> shown in <FIG>. For specific implementation of the forwarding device <NUM>, refer to the foregoing description for the forwarding device <NUM>, and details are not described herein again. As shown in <FIG>, the forwarding device <NUM> includes a receiver <NUM>, a transmitter <NUM>, a processor <NUM>, a memory <NUM>, and a bus system <NUM>. The receiver <NUM>, the transmitter <NUM>, the processor <NUM>, and the memory <NUM> are connected by using the bus system <NUM>. The memory <NUM> is configured to store an instruction. The processor <NUM> is configured to execute the instruction stored in the memory <NUM>, so as to control the receiver <NUM> to receive a signal and control the transmitter <NUM> to send a signal.

The processor <NUM> is configured to determine a first timeslot set. The first timeslot set includes multiple timeslots used when the forwarding device sends, to a first device by using a first flexible Ethernet group FlexE group, multiple encoded data blocks generated by a physical coding sublayer. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The processor <NUM> is further configured to determine a second timeslot set. The second timeslot set includes multiple timeslots used when the forwarding device receives, by using a second FlexE group, the multiple encoded data blocks sent by a second device. The multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The processor <NUM> is further configured to generate a forwarding table. The forwarding table includes a mapping relationship between the multiple timeslots included in the second timeslot set of the second FlexE group, and the multiple timeslots included in the first timeslot set of the first FlexE group.

It should be understood that, in this embodiment of the present invention, the processor <NUM> may be a central processing unit (central processing unit, "CPU" for short), or the processor <NUM> may be another general purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or another programmable logic device, a discrete gate, or a transistor logic device, a discrete hardware component, or the like. The general purpose processor may be a microprocessor or the processor may be any normal processor, or the like.

The memory <NUM> may include a read-only memory and a random access memory, and provide an instruction and data to the processor <NUM>. A part of the memory <NUM> may further include a nonvolatile random access memory. For example, the memory <NUM> may further store device-type information.

In addition to a data bus, the bus system <NUM> may further include a power bus, a control bus, a status signal bus, and the like. However, for clarity of description, various buses are marked as the bus system <NUM> in the figure.

In an implementation process, the steps in the foregoing method may be completed by using an integrated logic circuit of hardware in the processor <NUM> or using an instruction in a form of software. The steps of the forwarding table generation method disclosed with reference to the embodiments of the present invention may be directly completed by a hardware processor, or may be completed by using a combination of hardware in the processor and a software module. The software module may be located in a mature storage medium in the field, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically-erasable programmable memory, or a register. The storage medium is located in the memory <NUM>. The processor <NUM> reads information in the memory <NUM>, and completes the steps of the foregoing method in combination with hardware of the processor <NUM>. To avoid repetition, details are not described herein.

The embodiments of the present invention further provide a first device, including a receiver, a transmitter, a processor, a memory, and a bus system. The receiver, the transmitter, the processor, and the memory are connected by using the bus system. The memory is configured to store an instruction. The processor is configured to execute the instruction stored in the memory, so as to control the receiver to receive a signal and control the transmitter to send a signal.

The transmitter is configured to send a first message to a forwarding device. The first message is used to instruct the forwarding device to determine a first timeslot set. The first timeslot set includes multiple timeslots used when the forwarding device sends, to the first device by using a first flexible Ethernet group FlexE group, multiple encoded data blocks generated by a physical coding sublayer. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The receiver is configured to receive a second message sent by the forwarding device based on the first message. The second message carries identifiers of the multiple timeslots included in the first timeslot set.

The processor is configured to determine the first timeslot set according to the second message, and determine the multiple timeslots included in the first timeslot set as timeslots used when the first device receives the multiple encoded data blocks by using the first FlexE group.

It should be understood that for the memory, the processor, and the bus system, refer to the foregoing description. For brevity, details are not described herein.

The units of the first device in this embodiment of the present invention and the foregoing other operations or functions are separately for implementing corresponding procedures executed by a first device in the foregoing method. For brevity, details are not described herein.

The processor is configured to determine a first timeslot set. The first timeslot set includes multiple timeslots used when the first device receives, by using a first flexible Ethernet group FlexE group, multiple encoded data blocks generated by a physical coding sublayer that are sent by the first device. The multiple timeslots included in the first timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The transmitter is configured to send identifiers of the multiple timeslots included in the first timeslot set to a forwarding device, so that the forwarding device determines the multiple timeslots included in the first timeslot set as timeslots used when the forwarding device sends the multiple encoded data blocks to the first device by using the first FlexE group.

The embodiments of the present invention further provide a second device, including a receiver, a transmitter, a processor, a memory, and a bus system. The receiver, the transmitter, the processor, and the memory are connected by using the bus system. The memory is configured to store an instruction. The processor is configured to execute the instruction stored in the memory, so as to control the receiver to receive a signal and control the transmitter to send a signal.

The receiver is configured to receive a third message sent by a forwarding device. The third message is used to instruct the second device to determine a second timeslot set. The second timeslot set includes multiple timeslots used when the forwarding device receives, by using a second FlexE group, multiple encoded data blocks sent by the second device. The multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The processor is configured to determine the second timeslot set according to the third message.

The transmitter is configured to send a fourth message to the forwarding device. The fourth message carries identifiers of the multiple timeslots included in the second timeslot set. The fourth message is used to instruct the forwarding device to configure the multiple timeslots included in the second timeslot set as timeslots used when the second device sends the multiple encoded data blocks to the forwarding device by using the second FlexE group.

The units of the second device in this embodiment of the present invention and the foregoing other operations or functions are separately for implementing corresponding procedures executed by a second device in the foregoing method. For brevity, details are not described herein.

The receiver is configured to receive an instruction message sent by a forwarding device. The instruction message carries identifiers of multiple timeslots included in a second timeslot set. The second timeslot set includes multiple timeslots used when the forwarding device receives, by using a second FlexE group, multiple encoded data blocks sent by the second device. The multiple timeslots included in the second timeslot set are in a one-to-one correspondence with the multiple encoded data blocks.

The processor is configured to configure, according to the instruction message, the multiple timeslots included in the second timeslot set as timeslots used when the second device sends the multiple encoded data blocks to the forwarding device by using the second FlexE group.

Claim 1:
A method, comprising:
determining (<NUM>), by a forwarding device, an outbound timeslot set, wherein the outbound timeslot set comprises multiple timeslots used when the forwarding device sends, to a first device by using an outbound flexible Ethernet, FlexE, group, multiple encoded data blocks generated by a physical coding sublayer, and the multiple timeslots comprised in the outbound timeslot set are in a one-to-one correspondence with the multiple encoded data blocks;
determining (<NUM>), by the forwarding device, an inbound timeslot set, wherein the inbound timeslot set comprises multiple timeslots used when the forwarding device receives, by using an inbound FlexE group, the multiple encoded data blocks sent by a second device and the multiple timeslots comprised in the inbound timeslot set are in a one-to-one correspondence with the multiple encoded data blocks;
generating (<NUM>), by the forwarding device, a mapping relationship between the multiple timeslots comprised in the inbound timeslot set of the inbound FlexE group and the multiple timeslots comprised in the outbound timeslot set of the outbound FlexE group;
receiving, by the forwarding device, from the second device, the multiple encoded data blocks by using the multiple timeslots comprised in the inbound timeslot set; and
sending, by the forwarding device, to the first device based on the mapping relationship, the multiple encoded data blocks by using the multiple timeslots comprised in the outbound timeslot set;
wherein the forwarding device skips performing layer <NUM> or layer <NUM> processing on the multiple encoded data blocks after receiving the multiple encoded data blocks by using the multiple timeslots comprised in the second timeslot set, and before sending the multiple encoded data blocks by using the multiple timeslots comprised in the first timeslot set.