RFC3630 - TE Extensions to OSPF Version 2中文

2023-05-16

Traffic Engineering (TE) Extensions to OSPF Version 2

该标准是RFC2370的更新。标准RFC2370是关于OSPFv2的Opaque LSA的扩展,在被更新以后,已经变为失效状态。

该标准脱胎于草案draft-katz-yeung-ospf-traffic,该草案从1999年10月开始,先后经历了12个草案版本,最终于2003年9月成为建议标准(Proposed Standard)。本文档的翻译时间开始于2016年5月12日。

该标准被OSPF的GMPLS扩展RFC4203,以及在OSPF-TE扩展中通告路由器的本地地址的标准RFC5786

本文档的状态

This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the “Internet
Official Protocol Standards” (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.

版权声明

Copyright (C) The Internet Society (2003). All Rights Reserved.

摘要

本文档描述了针对OSPF v2所做的支持intra-area的TE扩展,该扩展使用了Opaque LSA。

1. Introduction

本文档提供了一种在OSPF v2[1]中增加TE能力的方法。TE的结构在[5]中有所描述。本文档中的语义内容和对IS-IS的相应扩展[6]大致相同。预计OSPF的TE扩展将能够反映到IS-IS的扩展上。

这个扩展提供了一种描述TE拓扑(包括带宽和管理限制),以及在给定的OSPF area内部分发TE拓扑信息的方法。这个TE拓扑没有必要匹配常规的路由拓扑,尽管本标准依赖于network-LSAs来描述multi-access links。本文档不会解释此处描述的机制如何在多个OSPF areas中跨域应用;这个任务留给了未来的文档。更进一步,本文档没有对OSPFv2的泛洪操作做任何修改;尤其是,如果拓扑中存在不具备TE能力的节点,则它们MUST以type 10(area-local scope)的Opaque LSAs泛洪所有的TE LSAs(见3)。

1.1 Applicability

本文档中引入的很多扩展都符合[5]的需求,因此被认为是“traffic engineering extensions”,通常也被认为和MPLS Traffic Engineering有联系。一个更加明确(虽然普通)的设计是“extended link attributes”,作为建议,它简单地在OSPF通告中增加了一些links的属性。

这些扩展中包含的信息可以被用来构建一个扩展的LSDB,就像router-LSAs能用来构建一个“常规的”LSDB一样;不同之处在于扩展的LSDB(下面成为流量工程数据库,TED)有额外的链路属性。TED的使用包括:

  • 监控扩展的链路属性;
  • 本地基于限制的源路由;以及(local constraint-based source routing; and)
  • 全局流量工程(global traffic engineering.)

比如,一个支持OSPF的设备能够参与到一个OSPF area中,它能构建一个TED,因此能报告在所在area的链路的预留状态(reservation state)。

在“本地基于限制的源路由”的说法中,一个路由器R能够计算从源节点A到目的节点B的路径;典型地,A就是R本身,B被指定为“router address”(见下)。这条路径可能会遵循多个其所经过的链路和节点上的属性的一些限制,比如说,使用非预留带宽(unreserved bandwidth)至少是10Mbps的绿色链路。这条路径接下来可以承载流量中的从A到B的一部分,形成一个简单但有效的流量工程的手段。穿过该路径的这部分流量如何确定,这个路径如何初始化,这些都超出了本文档的讨论范围;简单来说一种定义流量中指定部分的方式是“那些IP目的地址是从B学习到的”这样,一种初始化路径的方式是使用MPLS tunels。

顺便说一句,基于限制的路由可能是NP-hard问题,甚至是不可解的,这取决于链路和节点属性和限制的具体情况,因此很多真正的实现都会使用试探法(heuristics)。因此,我们在这里不会尝试去提出这样的算法。

最后,在“全局流量工程”的说法中,一个设备能构建TED,向TED中输入流量矩阵,以及优化函数,对信息进行处理,然后为整个网络计算出最优或近似最优的路由。这个设备还能监控流量工程拓扑,并且对于拓扑的改变能够重新计算最优路由。

1.2 Limitations

如上面所提到的,本文档所引入的扩展和处理流程仅仅涉及到流量工程信息在area内部的分发。inter-area和inter-AS的分发不在本文档讨论范围内。

本文档中引入的扩展能够捕获点到点链路的预留状态。多路访问链路的预留状态可能无法准确捕获,除了MA子网中只有两台设备这种特殊情况以外。对于超过两个设备的MA网络的操作没有明确禁止。关于对MA网络的预留状态的更明确的描述留待后来研究。

这个文档不支持unnumbered links。这一缺陷会在未来的文档中得到弥补;也可以见[7]和[8].

1.3 Conventions

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this
document are to be interpreted as described in BCP 14, RFC 2119 [2].

2 LSA Format

2.1 LSA type

本扩展使用了opaque LSA [3]。

Opaque LSAs当前有三种存在,每种都有不同的泛洪范围。本文档中仅仅使用Type 10 LSAs,其泛洪范围是area内部。

需要定义一个新的LSA,即Traffic Engineering LSA。这种LSA描述了路由器,点到点链路,以及到MA网络的连接(类似于router-LSA)。为了达到流量工程的目的,当前已存在的network-LSA已经足以用来描述多路访问(MA, multi-access)链路了,所以不需要为它定义额外的LSA。

2.2 LSA ID

Opaque LSA的LSA ID定义为8-bit的类型数据和24-bit的根据类型指定的数据。流量工程的LSA使用type 1.剩下的24-bit是Instance field,如下:

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       1       |                   Instance                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Instance field是一个任意值,用来维护多个TE LSAs。

流量工程的LSA的最大值16777216(2的24次方)可能由一个单独的系统采用(may be sourced by a single system)。LSA ID的值没有任何拓扑意义。

2.3 LSA Format Overview

2.3.1 LSA Header

TE LSA的构建开始于一个标准的LSA头:

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            LS age             |    Options    |      10       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       1       |                   Instance                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     Advertising Router                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     LS sequence number                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         LS checksum           |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.3.2 TLV Header

LSA的payload是由一个或者多个Type/Length/Value(TLV)元组组成的。每个TLV的格式如下:

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |              Type             |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                            Value...                           |
  .                                                               .
  .                                                               .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length定义了以字节为单位的value部分的长度(因此没有value的TLV的长度为0)。TLV需要进行4-octet的对齐;对齐所增加的位数不包含在length的计算中(因此一个3-octet的value的lenght为3,但是整个TLV的长度却是8)。需要知道嵌入的TLV(即subtlv)也需要进行32-bit对齐。如果不能识别type,则忽略该TLV。

本文档定义了Type 1和Type 2的TLV。可从IANA Considerations小节看到新的Types的分配。

2.4 LSA payload details

一个LSA包含一个顶级的TLV。顶级TLV有两种定义:

  • Router Address
  • Link

2.4.1 Router Address TLV

Router Address TLV标明了一个通告路由器的稳定IP地址,但凡有到路由器的任何连接,这个路由器总是可达的;这个IP地址被成为“loopback address”。这个IP地址的关键属性是即便路由器的接口down了,这个地址仍然可以访问到路由器。在其它的协议中,这被称为“router ID”,但是出于显然的原因,该术语在本文档中不会这么用(Router ID在OSPF中表示其它的意思)。如果一个路由器在BGP的下一跳属性设置为BGP router ID,以此来声明BGP路由,则这个Router Address SHOULD和BGP的router ID一致。

不知道BGP的router ID是什么值?

如果IS-IS在这个domain中也在运行,这个地址也可以用来做OSPF和IS-IS拓扑之间的映射。比如,假设一个路由器R同时声明了IS-IS和OSPF TE LSAs,进一步假设某个路由器S基于IS-IS和OSPF TE信息构建了一个TED。则R有可能会在S的TED中作为两个独立的节点出现。然而,如果R生成的IS-IS和OSPF LSAs包含了相同的Router Address,则S能够判断接收到的这两个R发来的IS-IS TE LSA和OSPF TE LSA其实是同一个路由器。

这里的意思是IS-IS也有TE扩展哦。。。

Router Address TLV是type 1,length值为4,value就是4-octet的IP地址。由路由器生成的TE LSA中必须要包含这个TLV。

2.4.2 Link TLV

Link TLV描述了一个链路。它是由一系列的sub-TLVs组成的。这些sub-TLVs之间没有先后顺序。

考虑到拓扑中的变化的粒度,每个LSA只能包含一个Link TLV。

Link TLV的type为2,length是变量。

在Link TLV中有以下9种sub-TLV被定义:

  1. Link type(1 octet)
  2. Link ID(4 octets)
  3. Local interface IP address(4 octets)
  4. Remote interface IP address(4 octets)
  5. Traffic engineering metric(4 octets)
  6. Maximum bandwidth(4 octets)
  7. Maximum reservable bandwidth(4 octets)
  8. Unreserved bandwidth(32 octets)
  9. Administrative group(4 octets)

本文档中定义了1-9的sub-type。这些新sub-types的分配可见IANA Considerations小节。

Link Type和Link ID这俩sub-TLVs都是强制的,也就是说只能且必须出现一次。一个Link TLV中出现的其它sub-Tlv都最多出现一次。这些限制对于未来要定义的sub-TLVs并不是必须有效的。不能识别sub-type的sub-tlv会被忽略。

下面提到的不同的values都使用了32-bit的IEEE Floating Point format。其格式如下:

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |S|    Exponent   |                  Fraction                   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

S表示符号位,Exponent是以2为底的指数,使用了“excess 127”记号法,Fraction是尾数-1,其前面有一个隐含的二进制小数点。因此,上述字段表示的数值是:

  (-1)**(S) * 2**(Exponent-127) * (1 + Fraction)

更多细节可见[4]。

后面有些sub-tlv的value表示需要用到这个。不过这个的表示范围大小是从哪里到哪里呢???一会儿回头看看

2.5 Sub-TLV Details

2.5.1 Link Type

Link Type sub-TLV定义了链路的类型:

  1. Point-to-point
  2. Multi-access

Link Type sub-TLV的type为1,length是1。

2.5.2 Link ID

Link ID sub-TLV是链路另一端的标识。对于点到点链路来说,就是邻居的Router ID。对于多路访问链路来说,就是DR的接口的地址。Link ID等于router-LSA中的这些链路类型的Link ID的内容。

Link ID sub-TLV的type是2,length是4。

2.5.3 Local Interface IP Address

Local Interface IP Address sub-TLV指定了这个link对应的接口的IP地址。如果链路上有多个本地地址,则将它们全部列在sub-TLV中。

Local Interface IP Address sub-TLV的type是3,length是4N,N是本地地址的个数。

2.5.4 Remote Interface IP Address

Remote Interface IP Address sub-TLV指定了这个link对应的邻居的接口的IP地址。这个地址和上面的本地地址一起被用作多条平行链路的判定。如果Link Type是Multi-access,Remote Interface IP Address设置为0.0.0.0;具体的实现MAY选择不去发送这样的sub-TLV。

Remote Interface IP Address sub-TLV的type是4,length是4N,N是邻居地址的数量。

2.5.5 Traffic Engineering Metric

Traffic Engineering Metric sub-TLV指定了用于流量工程的链路metric。这个metric可能和标准的OSPF的link metric不不相等。一般来说,metric的值是由网络管理员指定的。

Traffic Engineering Metric sub-TLV的type是5,length是4。

2.5.6 Maximum Bandwidth

Maximum Bandwidth sub-TLV指定了在这条链路上的这个方向(从生成这个LSA的路由器到它的对端的邻居的方向)的能够通行的最大带宽,表示格式是IEEE floating point format。它表示了链路真实的能力,单位是bytes per second。

Maximum Bandwidth sub-TLV的type是6,length是4。

2.5.7 Maximum Reservable Bandwidth

Maximum Reservable Bandwidth sub-TLV指定了这条链路的这个方向上要预留的最大带宽,表示格式是IEEE floating point format。需要知道,这个值可能会比maximum bandwodth更大(这种情况下link可能会预订过载oversubscribed)。这个值SHOULD对用户来说是可配置的;默认值应该就是Maximum Bandwodth。其单位是bytes per second。

Maximum Reservable Bandwidth sub-TLV的type是7,length是4。

对于这个预留带宽的理解不是很清晰?是指预订了但是没有分配的吗???那么是谁预订的,又是怎样进行分配的呢?

2.5.8 Unreserved Bandwidth

Unreserved Bandwidth sub-TLV指定了在8个优先级别的每个级别上还没有预留的带宽的总和,其表示格式是IEEE floating point format。这些对应的带宽值能以0-7的启动级别被预留,其顺序是从级别0,到sub-TLV的终点级别7。在带宽被预留之前,所有级别的初始值都是Maximum Reservable Bandwidth。其单位是bytes per second。

Unreserved Bandwidth sub-TLV的type是8,长度是32个octets。

2.5.9 Administrative Group

Administrative Group sub-TLV包含了被网络管理员指定的4-octet长度的掩码。每个bit的设置都对应一个指定给接口的管理组(administrative group)。一个链路可能属于多个管理组。

按照管理,最低位bit被称为“group 0”,最高位bit被称为“group 31”。

Administrative Group也被称为Resource Class/Color [5]。

Administrative Group sub-TLV的type是9,length是4

type1-4这四种sub-tlv都可以在OSPFv2的前五种TLV中获取,还专门定义了这样的sub-TLV???TED的构建是不是完全不需要借力于LSDB呢???

3 Elements of Procedure

无论何时,只要LSA内容改变,以及OSPF的其它要求出现(比如LSA的刷新),路由器都应该生成TE LSAs。需要知道这并不意味着每个改变都必须要被立即泛洪;具体实现的时候MAY设置触发即时泛洪的阈值(比如,带宽改变阈值),以及较短时间间隔之后开始泛洪其它的改变。在任何情况下,TE LSAs的产生SHOULD有频率限制,生成时间间隔最短不能短于MinLSInterval[1]。

收到一个更改的TE LSA或者network-LSA(因为它们都要用于TE的计算)后,路由器应该更新它的TED。不需要执行SPF或者其它的路由算法。

4 Compatibility Issues

没有实现本文档的扩展的路由器之间不应该存在互操作性的问题,因为Opaque LSAs会被忽略。

网络中存在没有实现这些扩展的路由器的后果就是流量工程拓扑会有缺失,不能完全反映真实拓扑。然而,如果拓扑仍然是联通的,则TE路径仍然能够计算并且正常工作。

5 Security Considerations

本文档采用了OSPFv2中的Opaque LSAs来传递TE信息。由于Opaque LSAs不会用于最短路径计算或者正常的路由,本文档中引入的扩展对于IP路由没有什么影响。然而,针对TE LSAs的篡改会影响到流量工程的计算,出于安全考虑,任何一般OSPF LSAs传输所采用的保障安全的机制都应该等同地应用在所有的Opaque LSAs上,其中就包括这里提到的TE LSAs。

都不知道有啥保障安全的机制???

需要直到[1和[9]中提到的机制被应用于Opaque LSAs。建议未来提出的任何保障/认证OSPFv2 LSA 交换的机制都应该足以应用在Opaque LSAs上。

6 IANA Considerations

The top level Types in a TE LSA, as well as Types for sub-TLVs for
each top level Type, have been registered with IANA, except as noted.

Here are the guidelines (using terms defined in [10]) for the
assignment of top level Types in TE LSAs:

o Types in the range 3-32767 are to be assigned via Standards
Action.

o Types in the range 32768-32777 are for experimental use; these
will not be registered with IANA, and MUST NOT be mentioned by
RFCs.

o Types in the range 32778-65535 are not to be assigned at this
time. Before any assignments can be made in this range, there
MUST be a Standards Track RFC that specifies IANA Considerations
that covers the range being assigned.

The guidelines for the assignment of types for sub-TLVs in a TE LSA
are as follows:

o Types in the range 10-32767 are to be assigned via Standards
Action.

o Types in the range 32768-32777 are for experimental use; these
will not be registered with IANA, and MUST NOT be mentioned by
RFCs.

o Types in the range 32778-65535 are not to be assigned at this
time. Before any assignments can be made in this range, there
MUST be a Standards Track RFC that specifies IANA Considerations
that covers the range being assigned.

7 Intellectual Property Rights Statement

知识产权声明。无用。

The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF’s procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.

The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.

8 References

8.1 Normative References

[1] Moy, J., “OSPF Version 2”, STD 54, RFC 2328, April 1998.

[2] Bradner, S., “Key words for use in RFCs to Indicate Requirement
Levels”, BCP 14, RFC 2119, March 1997.

[3] Coltun, R., “The OSPF Opaque LSA Option”, RFC 2370, July 1998.

[4] IEEE, “IEEE Standard for Binary Floating-Point Arithmetic”,
Standard 754-1985, 1985 (ISBN 1-5593-7653-8).

8.2 Informative References

[5] Awduche, D., Malcolm, J., Agogbua, J., O’Dell, M. and J.
McManus, “Requirements for Traffic Engineering Over MPLS”, RFC
2702, September 1999.

[6] Smit, H. and T. Li, “ISIS Extensions for Traffic Engineering”,
work in progress.

[7] Kompella, K. and Y. Rekhter, “Signalling Unnumbered Links in
Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE)”,
RFC 3477, January 2003.

[8] Kompella, K., Rekhter, Y. and A. Kullberg, “Signalling
Unnumbered Links in CR-LDP (Constraint-Routing Label
Distribution Protocol)”, RFC 3480, February 2003.

[9] Murphy, S., Badger, M. and B. Wellington, “OSPF with Digital
Signatures”, RFC 2154, June 1997.

[10] Narten, T. and H. Alvestrand, “Guidelines for Writing an IANA
Considerations Section in RFCs”, BCP 26, RFC 2434, October 1998.

9 Authors’ Address

Dave Katz
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA 94089 USA

Phone: +1 408 745 2000
EMail: dkatz@juniper.net


Derek M. Yeung
Procket Networks, Inc.
1100 Cadillac Court
Milpitas, CA 95035 USA

Phone: +1 408 635-7900
EMail: myeung@procket.com


Kireeti Kompella
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA 94089 USA

Phone: +1 408 745 2000
EMail: kireeti@juniper.net
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RFC3630 - TE Extensions to OSPF Version 2中文 的相关文章

  • 引用 dll 时忽略内部版本号

    我有一个 NET 4 0 项目 C 的解决方案 它生成一个延迟签名的 dll 我对其进行点模糊处理和签名 EDIT 这就是我对 dll 进行版本控制的方式 assembly AssemblyVersion 0 7 0 assembly As
  • 确定安装的 PowerShell 版本

    如何确定计算机上安装了哪个版本的 PowerShell 以及是否已安装 Use PSVersionTable PSVersion以确定引擎版本 如果该变量不存在 则可以安全地假设引擎是版本1 0 注意 Host Version and Ge
  • 设置 codeDOM 文件的文件版本

    我正在寻找任何方法来设置使用 codeDOM 生成的 exe 文件的文件版本 我的总是显示为 0 0 0 0 以编程方式显然是首选 但在这一点上 任何事情都比没有好 已编译程序集的版本由 AssemblyFileVersion 属性控制 您
  • 如何从不同版本的python导入*.pyc文件?

    我使用 python 2 5 并从 C util Python25 Lib site packages 目录导入一个名为 irit py 的文件 该文件导入位于同一目录中的文件 irit pyc 它运行良好并且做了我想要的事情 然后 我用
  • Akka 和 Typesafe 配置版本问题

    我尝试在 Tomcat 服务器上使用 akka 2 1 0 但我收到一个错误 要求我将配置库也放在类路径上 好吧 这不是问题 我将 Typesafe 的配置库 版本 1 0 0 最新 放在 lib 文件夹中 但是 我总是收到错误 8d315
  • 如何使用两个不同的节点版本运行两个不同的nodejs应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有两个 Node js 应用程序 这两个应用程序不能在同一节点版本中运行 一个应用程序只能在node4 8 3中运行 另一个应用程
  • .data 在 pytorch 中还有用吗?

    我是 pytorch 的新手 我读了很多大量使用张量的 pytorch 代码 data成员 但我搜索 data在官方文档和Google中 发现很少 我猜 data包含张量中的数据 但我不知道什么时候需要它 什么时候不需要 data是一个属性
  • 如何将 TeamCity 构建版本获取到非托管 DLL 和 OCX 控件中?

    我有一个包含托管 C 和非托管 C 项目的 TeamCity 构建解决方案 是否有类似于 Assembly Info Patcher 的 TeamCity 实用程序 可以更改非托管 C DLL 和 OCX 项目的 rc 文件中的版本号以匹配
  • Flutter:升级Play商店版本号

    我已经使用 flutter 在 Play 商店上发布了一个应用程序 现在我想上传该应用程序的新版本 我正在尝试更改版本代码 flutter 构建 apk build name 1 0 2 build number 3 或像这样更改 loca
  • python-qgis版本信息

    有人可以告诉我如何获取版本信息python qgis http docs qgis org testing en docs pyqgis developer cookbook intro html 我已经尝试了所有常规方法foo versi
  • Android 获取 Google Play 商店应用程序版本

    我正在使用此代码来获取 Google Play 商店应用程序版本 但这导致我的应用程序挂起 请指定获取应用程序版本的另一种方法 或者我如何使用此代码使应用程序不会挂起并成功运行 public class VersionChecker ext
  • 获取我的应用程序的当前 dot net 版本

    如何获取我的 asp net 应用程序的正在运行的 dot net 版本 我尝试了这里的解决方案 有没有一种简单的方法来检查 NET Framework 版本 https stackoverflow com questions 951856
  • 学习 Ruby - 1.8 还是 1.9 版本?

    我已经学习 Python 一段时间了 但我想做的项目更适合 Ruby 例如 CSS 的 SAC API 在 Ruby 以及 C 和 Java 中可用 不管怎样 考虑到我将要构建 我现在应该学习哪个版本的 Rubyonly网络应用程序 感谢您
  • 如何比较 Python 中的版本号?

    我正在遍历一个包含鸡蛋的目录 将这些鸡蛋添加到sys path 如果目录中有同一个 egg 的两个版本 我只想添加最新的一个 我有一个正则表达式r P
  • 如何确定完整的 CUDA 版本 + 颠覆版本?

    Linux 上的 CUDA 发行版曾经有一个名为version txt例如 CUDA Version 10 2 89 这非常有用 但是 从 CUDA 11 1 开始 该文件不再存在 我如何在 Linux 上通过命令行确定并检查 path t
  • itunesconnect 应用程序 - 恢复到以前的版本

    我发布了我的应用程序的更新并获得批准 尽管它包含一个严重的本地化错误 大多数用户都得到了错误的语言 但它还是获得了批准 有什么方法可以快速恢复到以前的版本 暂停当前版本的当前下载 或者其他任何可能有助于解决此问题的方法 我几年前确实读过以下
  • 如何在 Github Action 中使用 Github 发布版本号

    我创建了一个 Github 存储库 其中包含构建 npm 包并将其发布到 npmjs com 的操作 我的行动的触发因素是在 Github 上创建一个新版本 创建新版本时 Github 要求我提供版本号 我很想在操作中使用这个版本号并将其提
  • 从命令行获取 NuGet.exe 版本

    我想得到NuGet exe使用命令行的版本 我知道我可以按照说明获取作为 Visual Studio 一部分运行的 NuGet 版本here http docs nuget org docs start here nuget faq How
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少
  • 如何使 sgen.exe 保留程序集的版本?

    我想为我的程序集创建一个序列化程序集 sgen做得很好 但我不知道如何让它为序列化程序集分配与源程序集相同的版本 有任何想法吗 sgen似乎默认采用源程序集版本 这是相当合理的 这是我的运行方式 没有什么特别的 PathToSDK Micr

随机推荐

  • matplotlib中cla() clf() close()用途

    cla Clear axis即清除当前图形中的当前活动轴 其他轴不受影响 clf Clear figure清除所有轴 xff0c 但是窗口打开 xff0c 这样它可以被重复使用 close Close a figure window
  • 2020计算机视觉领域顶级会议时间表

    CVPR IEEE Conference on Computer Vision and Pattern Recognition Location United States Date June 2020 Deadline TBD about
  • 【论文翻译】-- GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition

    本文是复旦大学发表于 AAAI 2019 的工作 截至目前CASIA B正确率最高的网络 英文粘贴原文 xff0c google参与翻译但人工为主 有不对的地方欢迎评论 粉色部分为本人理解添加 xff0c 非原文内容 目录 摘要 1 介绍
  • FreeRTOS学习-中断管理

    1 简介 中断管理是一个操作系统中最核心的功能之一 在FreeRTOS中 xff0c 中断总是可以打断task xff08 尽管是最高优先级的task xff09 xff0c 而task永远不可能打断中断ISR xff08 interrup
  • FreeRTOS学习-共享资源的同步访问

    1 简介 对于多任务的系统 xff0c 对于某个共享资源 xff08 全局变量 xff0c 外设等 xff09 的并发访问容易引起数据的不一致性 xff0c 这将会导致一些意外的结果 而共享资源的同步访问则是为了解决这个问题而提供的一种同步
  • ST-Link的LED指示灯说明

    自ST LINK V2以来的所有ST LINK板都实现了一个标有 COM 的LED 无论是在外壳上还是在PCB上 一般 COM 是由红 绿两个LED组合 xff0c 有常亮 常灭 闪烁等 xff0c 两个LED同时亮呈现橙色 ST Link
  • linux基本命令练习----答案版

    linux基本命令练习 答案版 切换用户 su sudo 切换到root用户 span class token comment 第一种方式切换root用户 span span class token function sudo span s
  • WARNING: You are using pip version 19.2.3, however version 20.0.2 is available

    最近用到python时出错 xff08 如下图所示 xff09 xff0c WARNING You are using pip version 19 2 3 however version 20 0 2 is available You s
  • Chrome保存整个网页为图片

    打开需要保存为图片的网页 然后按F12 xff0c 接着按Ctrl 43 Shift 43 P 在红框内输入full 来自 xff1a https www cnblogs com ChouXiaoShou p ChromeScreensho
  • 用node实现一个postgresql操作定时器

    已知数据库 xff0c 我要用node js实现定时任务 xff0c 定时user表下的vip字段重置所有记录为0 首先 xff0c 你需要使用Node js中的node schedule模块来设置定时任务 你可以在你的项目中安装node
  • Vue获取网页微信登录二维码

    首先安装npm install vue wxlogin save dev lt template gt lt div id 61 34 app 34 gt lt div id 61 34 wxbox 34 gt lt wxlogin app
  • jeecg-boot配置字典遇到的问题

    在online报表生成代码后 xff0c 配置的数据字典一直不生效 xff0c 显示空值最后在官方文档发现需要后端加一个注解 xff0c 如下图所示 xff1a 文档链接 xff1a http doc jeecg com 1273944
  • 配置pycharm 编译器时遇到的一些问题

    今天在配置完pycharm 编译器运行代码时 xff0c 突然出现一个报错 Fatal Python error Py Initialize unable to load the file system codec ImportError
  • chrome浏览器起始页被hao123劫持了怎么办?

    对于一个强迫症来说 xff0c 起始页被修改了 xff0c 真的很难受 hao123真的很烦 第一种情况 修改了你浏览器的默认起始页 xff0c 在设置中去修改就可以了 第二种情况 在这里面添加了他的网站 xff0c 删除或者从新生成一个快
  • COMODO杀毒软件Linux版

    科摩多Linux杀毒软件 CAVL 提供同样出色的防病毒保护 xff0c 同时附带一个额外的完全可配置的反垃圾邮件系统 具有按访问和按需求病毒扫描 xff0c CAVL还采用了基于云计算的对未知文件的分析 xff0c 针对零日恶意软件提供了
  • ubuntu系统下安装windows并引导双系统

    首先 xff0c 感谢wenbusy xff0c 给了我很大的帮助 xff0c 以下部分内容来自于该博主 windows系统安装ubuntu很容易 xff0c 但在ubuntu下如何安装windows构成双系统并成功引导 xff1f 本文来
  • 3.4 小乌龟git使用说明

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 安装二 使用步骤1 设置语言2 添加你的git 用户名和邮箱3 创建git空项目3 1 方法1 本地创建3 2 方法2
  • WinScp连接Win7

    本机安装WinScp 目标Win7安装OpenSSH 下载openSSH https github com PowerShell Win32 OpenSSH releases下载后解压放在C xff1a ProgramFiles目录下设置环
  • DEBIAN_FRONTEND noninteractive参数

    DEBIAN FRONTEND这个环境变量 xff0c 告知操作系统应该从哪儿获得用户输入 如果设置为 noninteractive xff0c 你就可以直接运行命令 xff0c 而无需向用户请求输入 xff08 所有操作都是非交互式的 x
  • RFC3630 - TE Extensions to OSPF Version 2中文

    Traffic Engineering TE Extensions to OSPF Version 2 该标准是RFC2370的更新 标准RFC2370是关于OSPFv2的Opaque LSA的扩展 xff0c 在被更新以后 xff0c 已