Data retry场景介绍

本文介绍PDN激活失败或者IP Address缺失时的处理机制。

终端是否会retry?

如何设置data retry timer?

Modem retry还是上层应用发起retry?

  • IPV4V6 Fallback

 3GPP TS 24.008 6.1.3.1定义了UE使用IPV4V6 pdp type建PDN失败后,如果网络以#Cause50、#Cause51或者#Cause52 reject掉后,UE应该使用IPV6 or IPV4去retry,这种行为就叫IPV4V6 Fallback。

If the MS requests PDP type IPv4v6, but the operator uses single addressing per PDP context due to interworking with nodes of earlier releases, the network shall override the rPDP type equested by setting the PDP type in the ACTIVATE PDP CONTEXT ACCEPT message sent to the MS to a single address PDP type. In the ACTIVATE PDP CONTEXT ACCEPT message sent to the MS, the network sets the PDP type number to either "IPv4 address" or "IPv6 address" and the SM cause to #52, "single address bearers only allowed" (see subclause 6.1.3.1.1). The MS may subsequently request another PDP context for the other PDP type to the same APN with a single address PDP type (IPv4 or IPv6) other than the one already activated. 

除了上述协议规定的3种错误场景,UE会进行IPV4V6 Fallback外,终端还可以针对3GPP 24.301中定义的ESM Cause以及24.008中定义的SM Cause,为了使UE尽可能激活PDN成功,会依次使用IPV4或者IPV6进行retry,由Modem来控制。

Fallback关键点

  • IPV4V6 Fallback的前置条件为APN的pdp_type为“IPV4V6”,且User支持IPV4V6。

Fallback场景

  • 激活PDN失败

  • 激活PDN成功,但是网络只返回IPV4(IPV6)的address,如果网络不是返回#Cause 50(#Cause51),就使用IPV6(IPV4)进行retry。

  • 非Fallback

这种data retry分为Modem Retry和User Retry。

Modem retry根据Operator Spec的要求使用上一次的参数进行retry;

User Retry是Modem报给User retry timer,User根据retry timer的类型和值进行对应的retry。

Modem Retry

主要来源于operator spec的相关requirement。

例如在roaming情况下,如果PDN被网络reject的原因是cause#31/32/33/34/50时,UE应该retry with IPV4。

For V-PLMN, if the IPv4v6 E-PDN connectivity is rejected with the following cause codes, the UE shall reattempt once (fallback) using IPv4 PDN type. #31: request rejected, unspecified #32: service option not supported #33: requested service option not subscribed #34: service option temporarily out of order #50: PDN type IPv4 only allowed 

User Retry

当激活PDN失败后,Modem会将retry timer和error报给User,User会根据收到的retry timer的type和value决定是否进行retry。

3GPP TS 24.301 6.5.1.4.3中定义默认back-off timer为12 minutes

If the Back-off timer value IE is not included and the PDN CONNECTIVITY REQUEST was sent standalone, then the UE shall ignore the Re-attempt indicator IE provided by the network in PDN CONNECTIVITY REJECT, if any.
1) Additionally, if the ESM cause value is #8 "operator determined barring", #27 "missing or unknown APN", #32 "service option not supported", or #33 "requested service option not subscribed", the UE shall proceed as follows:
- if the UE is registered in the HPLMN or in a PLMN that is within the EHPLMN list (if the EHPLMN list is present), the UE shall behave as described above in the present clause, using the configured SM_RetryWaitTime value as specified in 3GPP TS 24.368 [15A] or in USIM file NASCONFIG as specified in 3GPP TS 31.102 [17], if available, as back-off timer value; and
NOTE 0: The way to choose one of the configured SM_RetryWaitTime values for back-off timer value is up to UE implementation if the UE is configured with:
- an SM_RetryWaitTime value in ME as specified in 3GPP TS 24.368 [15A]; and
- an SM_RetryWaitTime value in USIM file NASCONFIG as specified in 3GPP TS 31.102 [17].
- otherwise, if the UE is not registered in its HPLMN or in a PLMN that is within the EHPLMN list (if the EHPLMN list is present), or if the SM_RetryWaitTime value is not configured, the UE shall behave as described above in the present clause, using the default value of 12 minutes for the back-off timer.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Retry是一个基于AOP实现的重试机制,用于处理应用程序中可能发生的失败情况,比如调用第三方接口失败等。通过延时重试、间隔递增重试等方式,Spring Retry可以帮助我们实现自动重试的功能。 要使用Spring Retry,需要在项目的依赖中引入spring-retry库。可以在项目的Maven或Gradle配置文件中添加相应的依赖项。例如,在Maven中添加以下依赖项: ```xml <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version>1.2.4.RELEASE</version> </dependency> ``` 使用Spring Retry时,可以在需要重试的方法上使用`@Retryable`注解。同时,在配置类上添加`@EnableRetry`注解来启用声明式重试功能。例如: ```java @EnableRetry @Configuration public class RetryConfiguration { @Bean public HelloService helloService() { return new HelloService(); } } ``` 通过以上配置,我们可以在`HelloService`中的方法上使用`@Retryable`注解来实现自动重试的功能。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringRetry(spring的重试机制)——只需一个注解](https://blog.csdn.net/qq_48607414/article/details/128042278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Spring(34)——Spring Retry介绍](https://blog.csdn.net/elim168/article/details/90320848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想我思

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值