4.7. Session Attribute Object
The Session Attribute Class is 207. Two C_Types are defined,
LSP_TUNNEL, C-Type = 7 and LSP_TUNNEL_RA, C-Type = 1. The
LSP_TUNNEL_RA C-Type includes all the same fields as the LSP_TUNNEL
C-Type. Additionally it carries resource affinity information. The
formats are as follows:
4.7.1. Format without resource affinities
SESSION_ATTRIBUTE class = 207, LSP_TUNNEL C-Type = 7
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Setup Prio | Holding Prio | Flags | Name Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// Session Name (NULL padded display string) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Setup Priority
The priority of the session with respect to taking resources,
in the range of 0 to 7. The value 0 is the highest priority.
The Setup Priority is used in deciding whether this session can
preempt another session.
Holding Priority
The priority of the session with respect to holding resources,
in the range of 0 to 7. The value 0 is the highest priority.
Holding Priority is used in deciding whether this session can
be preempted by another session.
Awduche, et al. Standards Track [Page 43]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
Flags
0x01 Local protection desired
This flag permits transit routers to use a local repair
mechanism which may result in violation of the explicit
route object. When a fault is detected on an adjacent
downstream link or node, a transit router can reroute
traffic for fast service restoration.
//邻接的下游链路或节点.
0x02 Label recording desired
This flag indicates that label information should be
included when doing a route record.
0x04 SE Style desired
This flag indicates that the tunnel ingress node may
choose to reroute this tunnel without tearing it down.
A tunnel egress node SHOULD use the SE Style when
responding with a Resv message.
Name Length
The length of the display string before padding, in bytes.
Session Name
A null padded string of characters.
Awduche, et al. Standards Track [Page 44]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
4.7.2. Format with resource affinities
SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Exclude-any |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-any |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-all |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Setup Prio | Holding Prio | Flags | Name Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// Session Name (NULL padded display string) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Exclude-any
A 32-bit vector representing a set of attribute filters
associated with a tunnel any of which renders a link
unacceptable.
Include-any
A 32-bit vector representing a set of attribute filters
associated with a tunnel any of which renders a link acceptable
(with respect to this test). A null set (all bits set to zero)
automatically passes.
Include-all
A 32-bit vector representing a set of attribute filters
associated with a tunnel all of which must be present for a
link to be acceptable (with respect to this test). A null set
(all bits set to zero) automatically passes.
Setup Priority
The priority of the session with respect to taking resources,
in the range of 0 to 7. The value 0 is the highest priority.
The Setup Priority is used in deciding whether this session can
preempt another session.
Awduche, et al. Standards Track [Page 45]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
Holding Priority
The priority of the session with respect to holding resources,
in the range of 0 to 7. The value 0 is the highest priority.
Holding Priority is used in deciding whether this session can
be preempted by another session.
Flags
0x01 Local protection desired
This flag permits transit routers to use a local repair
mechanism which may result in violation of the explicit
route object. When a fault is detected on an adjacent
downstream link or node, a transit router can reroute
traffic for fast service restoration.
0x02 Label recording desired
This flag indicates that label information should be
included when doing a route record.
0x04 SE Style desired
This flag indicates that the tunnel ingress node may
choose to reroute this tunnel without tearing it down.
A tunnel egress node SHOULD use the SE Style when
responding with a Resv message.
Name Length
The length of the display string before padding, in bytes.
Session Name
A null padded string of characters.
4.7.3. Procedures applying to both C-Types
The support of setup and holding priorities is OPTIONAL. A node can
recognize this information but be unable to perform the requested
operation. The node SHOULD pass the information downstream
unchanged.
//支持创建和保持优先级是可选功能。节点可以识别但是不理会该请求信息。
//节点应该无修改的传送到下游节点。
As noted above, preemption is implemented by two priorities. The
Setup Priority is the priority for taking resources. The Holding
Priority is the priority for holding a resource. Specifically, the
Awduche, et al. Standards Track [Page 46]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
Holding Priority is the priority at which resources assigned to this
session will be reserved. The Setup Priority SHOULD never be higher
than the Holding Priority for a given session.
//抢占在两个优先级之间实现。创建优先级是占有资源的优先级。保持优先级
//是保留资源的优先级。对于一个会话而言,创建优先级不能比保持优先级更高。
The setup and holding priorities are directly analogous to the
preemption and defending priorities as defined in [9]. While the
interaction of these two objects is ultimately a matter of policy,
the following default interaction is RECOMMENDED.
//创建和保持优先级与[9]中定义的抢占和防御优先级非常相似。
When both objects are present, the preemption priority policy element
is used. A mapping between the priority spaces is defined as
follows. A session attribute priority S is mapped to a preemption
priority P by the formula P = 2^(14-2S). The reverse mapping is
shown in the following table.
Preemption Priority Session Attribute Priority
0 - 3 7
4 - 15 6
16 - 63 5
64 - 255 4
256 - 1023 3
1024 - 4095 2
4096 - 16383 1
16384 - 65535 0
When a new Path message is considered for admission, the bandwidth
requested is compared with the bandwidth available at the priority
specified in the Setup Priority.
If the requested bandwidth is not available a PathErr message is
returned with an Error Code of 01, Admission Control Failure, and an
Error Value of 0x0002. The first 0 in the Error Value indicates a
globally defined subcode and is not informational. The 002 indicates
"requested bandwidth unavailable".
If the requested bandwidth is less than the unused bandwidth then
processing is complete. If the requested bandwidth is available, but
is in use by lower priority sessions, then lower priority sessions
(beginning with the lowest priority) MAY be preempted to free the
necessary bandwidth.
When preemption is supported, each preempted reservation triggers a
TC_Preempt() upcall to local clients, passing a subcode that
indicates the reason. A ResvErr and/or PathErr with the code "Policy
Control failure" SHOULD be sent toward the downstream receivers and
upstream senders.
Awduche, et al. Standards Track [Page 47]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
The support of local-protection is OPTIONAL. A node may recognize
the local-protection Flag but may be unable to perform the requested
operation. In this case, the node SHOULD pass the information
downstream unchanged.
The recording of the Label subobject in the ROUTE_RECORD object is
controlled by the label-recording-desired flag in the
SESSION_ATTRIBUTE object. Since the Label subobject is not needed
for all applications, it is not automatically recorded. The flag
allows applications to request this only when needed.
//SESSION_ATTRIBUTE中的标签记录flag标识RRO中是否记录标签信息。只有
//应用程序要求,RRO才会记录标签信息。
The contents of the Session Name field are a string, typically of
display-able characters. The Length MUST always be a multiple of 4
and MUST be at least 8. For an object length that is not a multiple
of 4, the object is padded with trailing NULL characters. The Name
Length field contains the actual string length.
//会话名字段是一个字符串,通常是可打印字符。长度必须是4的倍数,且
//至少是8.如果不是4的倍数,将被填充NULL字符。名字长度字段包含实际的
//字符串长度。
4.7.4. Resource Affinity Procedures
//资源亲和处理
Resource classes and resource class affinities are described in [3].
In this document we use the briefer term resource affinities for the
latter term. Resource classes can be associated with links and
advertised in routing protocols. Resource class affinities are used
by RSVP in two ways. In order to be validated a link MUST pass the
three tests below. If the test fails a PathErr with the code "policy
control failure" SHOULD be sent.
//资源类别和资源类别亲和在[3]中描述。在本文档中,我们将资源类别亲和简
//称为资源亲和。资源类别和链路相关并且可以在路由协议中被泛洪。在RSVP
//中两处会使用资源类别亲和。为了确认,一条链路必须通过一下3个检测。如
//果检测失败,将抛出一个错误码为"policy control failure"的PATHERR。
When a new reservation is considered for admission over a strict node
in an ERO, a node MAY validate the resource affinities with the
resource classes of that link. When a node is choosing links in
order to extend a loose node of an ERO, the node MUST validate the
resource classes of those links against the resource affinities. If
no acceptable links can be found to extend the ERO, the node SHOULD
send a PathErr message with an error code of "Routing Problem" and an
error value of "no route available toward destination".
//当一个新的预留被准入,如果处理一个严格节点ERO时,本节点可能校验链路的
//资源亲和属性。如果处理一个松散节点ERO时,对于那些不符合资源亲和的链路,
//本节点必须校验链路资源等级,如果没有合适的链路,本节点应该抛出一个错误
//码为Routing Problem,错误值为no route available toward destination的
//PATHERR。
In order to be validated a link MUST pass the following three tests.
//为了通过校验,一条链路必须通过一下三个检测。
To precisely describe the tests use the definitions in the object
description above. We also define
//为了精确的描述该检测过程。我们定义以下内容
Link-attr A 32-bit vector representing attributes associated
with a link.
//一个32bit向量描述一个链路相关的属性。
Awduche, et al. Standards Track [Page 48]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
The three tests are
1. Exclude-any
This test excludes a link from consideration if the link
carries any of the attributes in the set.
//执行检测时,如果链路属性与ERO中Exclude-any没有任何相同
//之处,排除该链路。(即:链路属性与Exclude-any无交集)
(link-attr & exclude-any) == 0
2. Include-any
This test accepts a link if the link carries any of the
attributes in the set.
//执行检测时,如果链路属性与ERO中Include-any有任一相似
//之处(二进制与运算),接受该链路。(即:链路属性与
Include-any有交集)
(include-any == 0) | ((link-attr & include-any) != 0)
3. Include-all
This test accepts a link only if the link carries all of the
attributes in the set.
//执行检测时,如果链路属性完全包含ERO中Include-all,则接受该
//链路。(即:链路属性真包含include-all)
(include-all == 0) | (((link-attr & include-all) ^ include-
all) == 0)
For a link to be acceptable, all three tests MUST pass. If the test
fails, the node SHOULD send a PathErr message with an error code of
"Routing Problem" and an error value of "no route available toward
destination".
If a Path message contains multiple SESSION_ATTRIBUTE objects, only
the first SESSION_ATTRIBUTE object is meaningful. Subsequent
SESSION_ATTRIBUTE objects can be ignored and need not be forwarded.
//如果一个PATH消息包含多个SESSION_ATTRIBUTE对象,只有第一个有意义。
//其他的被忽略且不被转发出去。
All RSVP routers, whether they support the SESSION_ATTRIBUTE object
or not, SHALL forward the object unmodified. The presence of non-
RSVP routers anywhere between senders and receivers has no impact on
this object.
//所有的RSVP路由器,无论是否支持SESSION_ATTRIBUTE对象,都应该鸳鸯的
//转发该对象。不支持的RSVP的路由器不影响该对象。