目录
前言:无线网络总有信号不稳定的时候,如果每次无线链路失败或者切换失败均要从头开始建立链接,无疑是比较耗费时间和系统资源的。重建流程只需要服务端对应到用户上下文,即可重建连接,简化了连接处理流程。


RRC重建过程的目的是重新建立RRC连接。处于RRC_CONNECTED状态的UE如果已经利用SRB2激活了AS安全性,则可以发起重建过程来恢复此前建立的RRC连接。如果重建时小区能够找到有效的UE上下文并得到验证,将重建和恢复SRB1;如果重建时小区无法找到相应的UE上下文,小区将丢弃存储的AS Context并释放所有RB,然后发送RRCSetup建立新的RRC连接。
如果UE尚未激活AS安全性,则UE不应发起重建过程,而是直接转换到RRC_IDLE,释放原因为“other”。如果已经激活了AS安全性,但是没有设置SRB2,UE同样不发起重建过程而是直接转换到RRC_IDLE,此时释放原因为“RRC连接失败(RRC connection failure)”。
UE在以下情况下会发起重建过程:
在发起重建过程时,UE应该进行如下操作:
在选择合适的NR小区后,UE应进行如下操作:
在选择 inter-RAT小区时,UE应转入RRC_IDLE态,释放原因为“RRC连接失败(RRC connection failure)”。
| 消息 | 无线承载 | 逻辑信道 | 传输模式 | 传输方向 |
|---|---|---|---|---|
| RRCReestablishmentRequest | SRB0 | CCCH | TM | UE->gNB |
| RRCReestablishment | SRB1 | DCCH | AM | gNB->UE |
| RRCReestablishmentComplete | SRB1 | DCCH | AM | UE->gNB |
RRCReestablishmentRequest ::= SEQUENCE {
rrcReestablishmentRequest RRCReestablishmentRequest-IEs
}
RRCReestablishmentRequest-IEs ::= SEQUENCE {
ue-Identity ReestabUE-Identity,
reestablishmentCause ReestablishmentCause,
spare BIT STRING (SIZE (1))
}
ReestabUE-Identity ::= SEQUENCE {
c-RNTI RNTI-Value,
physCellId PhysCellId,
shortMAC-I ShortMAC-I
}
ReestablishmentCause ::= ENUMERATED {reconfigurationFailure, handoverFailure, otherFailure, spare1}
- 将c-RNTI设置为源PCell中使用的C-RNTI(通过同步或NR故障移动性重新配置)或触发重建的PCell使用的C-RNTI;
- 将physCellId设置为源PCell的物理小区标识(通过同步或NR故障移动性重新配置)或触发重建的PCell的物理小区标识;
- 将shortMAC-I设置为所计算MAC-I的低16位,使用源PCell中使用的KRRCint密钥和完整性保护算法(通过同步或NR故障移动性重新配置)或触发重建的PCell中使用的KRRCint密钥和完整性保护算法;
- 将COUNT,BEARER和DIRECTION的所有输入位设置为二进制位。
- 如果是因为重新配置失败而发起了重建过程,则将reestablishmentCause设置为 reconfigurationFailure;
- 如果因为NR内切换失败或者NR的RAT间移动性失败导致了同步失败,需要重新配置而启动了重建过程,将reestablishmentCause设置为handoverFailure;
- 除开上述两种情况后,其余情况将reestablishmentCause设置为otherFailure。
- 重新建立SRB1的PDCP;
- 重新建立SRB1的RLC;
- 配置L2以暂停SRB1的完整性保护和加密,加密不适用于后续用于恢复连接的- RRCReestablishment消息。而完整性检查在RRC要求时才执行;
- 恢复SRB1。
RRCReestablishment ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
rrcReestablishment RRCReestablishment-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
RRCReestablishment-IEs ::= SEQUENCE {
nextHopChainingCount NextHopChainingCount,
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension RRCReestablishment-v1700-IEs OPTIONAL
}
RRCReestablishment-v1700-IEs ::= SEQUENCE {
sl-ConfigDedicatedNR-r17 SetupRelease {SL-ConfigDedicatedNR-r16} OPTIONAL, -- Cond L2RemoteUE
sl-L2RemoteUEConfig-r17 SetupRelease {SL-L2RemoteUEConfig-r17} OPTIONAL, -- Cond L2RemoteUE
nonCriticalExtension SEQUENCE {} OPTIONAL
}
T311
当T311定时器到期,如果重建流程程序是由于无线链路故障或切换故障而发起,将VarRLF-Report中的noSuitableCellFound设置为true;转入RRC_IDLE状态,释放原因为“RRC connection failure”。
T301
当T301定时器到期,UE认为所选小区不可用,将转入RRC_IDLE状态,释放原因为“RRC connection failure”。
我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame
我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315
考虑一下:现在这些情况:#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2我需要用其他字符串输出URL。我如何保证&符号不会被转义?由于我无法控制的原因,我无法发送&。求助!把我的头发拉到这里:\编辑:为了澄清,我实际上有一个像这样的数组:@images=[{:id=>"fooid",:url=>"http://