TE solution
The generated TE solution is represented in protobuf format.
message PrefixIntent {
enum PrefixType {
UNKNOWN = 0; // Unknown as the default forces explicitly set type.
SRC = 1; // The PrefixIntent is programmed at the source node.
TRANSIT = 2; // The PrefixIntent is programmed at the transit node.
}
message NexthopEntry {
// Unique name identifier for nexthop (physical) port.
string nexthop_port = 1;
// Weight fraction of traffic to be distributed on this port.
double weight = 2;
}
// An ipv4 prefix of the destination.
string dst_prefix = 1;
// Net mask in slash notation.
uint32 mask = 2;
// (optional) FQDN of dst entity. If PrefixIntent is for aggregation blocks,
// there is only one PrefixIntent per dst AggrBlock, and the dst_prefix may
// not be set, in which case, dst_name should be set to the name of the dst
// AggrBlock. For ToR-level PrefixIntent, dst_name may not be set.
string dst_name = 3;
// Type of this PrefixIntent.
PrefixType type = 4;
// Nexthop entries used to reach the destination prefix.
// Note: all weights must normalize and sum to 1.
repeated NexthopEntry nexthop_entries = 5;
}
message TEIntent {
// Unique name identifier for the originating aggregation block.
string target_block = 1;
// TE traffic distribution intents for each destination prefix.
repeated PrefixIntent prefix_intents = 2;
}
message TESolution {
enum SolutionType {
LEVEL_UNKNOWN = 0; // Unknown as the default forces explicitly set type.
LEVEL_TOR = 1; // ToR-level solution.
LEVEL_AGGR_BLOCK = 2; // Aggregation-block-level solution.
}
// TE solution type could be ToR-level or AggrBlock-level, depending on the
// corresponding traffic demand type.
SolutionType type = 1;
// Traffic engineering intents grouped by target nodes.
repeated TEIntent te_intents = 2;
}
A TESolution
contains multiple TEIntent
, where each TEIntent
contains all
the detailed TE solution info for a cluster. In the TEIntent
, there are
PrefixIntent
, which is the intent of traffic placement for each destination
address prefix. A PrefixIntent
is the minimal unit of traffic split, it indicates
the prefix type (e.g., SRC or TRANSIT) and a list of NexthopEntry
. The NexthopEntry
is a simple data structure of the port name and the amount traffic to be placed
on it. Once it is converted to a group, it can be consumed by each switch.
- Previous
- Next