51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 18756|回复: 38
打印 上一主题 下一主题

GTP协议中的Teardown Indicator IE及实例   [复制链接]

Rank: 9Rank: 9

懒

跳转到指定楼层
楼主
发表于 2011-4-30 16:04:52 |只看该作者 |倒序浏览
一键分享 一键分享
本帖最后由 爱卫生 于 2012-10-26 00:51 编辑

   Teardown Indicator这个IE用来指示,共用同一个PDP地址的所有的PDP上下文是否都要去激活(例如primary和secondary PDP上下文)。当这个IE置1时,将指示GSN节点将所有共用同一个PDP地址的所有的PDP上下文都去激活。如果这个IE值为0或没有携带这个IE,则指示GSN节点仅将在Delete PDP Context Request消息中指明的这个NSAPI对应的PDP上下文删除即可。在MS发起的去激活流程中,这个IE由MS产生,SGSN应将这个IE复制到Delete PDP Context Request消息中传给GGSN。
  下面我们来看一个实例。

  在这个例子中,我们会看到两个Delete PDP Context Request消息,是SGSN请求GGSN删除对应的PDP上下文,对应的流程是PDP上下文去激活流程。这是两个PDP Context,但实际上这两个PDP Context是属于同一个MS的。一个是Primary PDP Context,用NSAPI=5标识,对应的是#3和#4包。另一个是Secondary PDP Context,用NSAPI=6标识,对应的是#1和#2包。这两个PDP Context是共用的同一个MS地址。也就是说,Secondary PDP Context的激活,GGSN不会分配新的IP。
  下面,我们来看下关于这两个PDP Context去激活的时候,Teardown Indicator的设置。
  #1和#2的包是关于Secondary PDP Context的去激活,Teardown Indicator设置为0.这样就会通知GGSN只将在这个Delete PDP Context Request消息中指明的PDP上下文(由NSAPI=6指明),而不会将属于这个MS的其他PDP Context删除。#3和#4的包是关于Primary PDP Context的去激活,Teardown Indicator设置为1,这样就会通知GGSN将属于这个MS的所有PDP上下文全部删除。当然这个时候,在MS上只有一个Active的PDP上下文了,也就是这个Primary PDP Context,所以也无所谓。
  通过这个实例我们也可以了解到终端的一些行为。不同终端的行为可能不一样。所以经常需要很多测试啊。
  最后,附上关于Teardown Indicator IE的字段说明。它总共2个字节。1个字节为type。另一个字节的7个bit是保留的。只有1个bit是有效位,用于Teardown的指示。所以在#1中,Teardown Indicator的值为13FE。#3中,Teardown Indicator的值为13FF。只相差一个bit。

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

沙发
发表于 2011-5-1 01:17:49 |只看该作者
请教版主:
当PDP二次激活的时候,通常是用第一次激活获取的地址,还是重新获取新的地址。
如果是两个地址,在两个地址同时存在的时候会不会存在地址冲突?能否简单讲解一下实现过程。

使用道具 举报

Rank: 9Rank: 9

懒

板凳
发表于 2011-5-1 10:04:04 |只看该作者
本帖最后由 爱卫生 于 2011-5-1 12:48 编辑

回复 Albert 的帖子

    呵呵。是这样。首先,如果MS做PDP二次激活,GGSN不会分配新的地址。而是使用原来的地址(即Primary PDP Context激活时分配得到的地址)。所以也不存在冲突问题。关于这部分的流程我正在翻译TS23.060,但目前的进度只刚刚完成6.13章节。而你所想了解的二次激活是在9.2.2.1.1章节。我迟早会翻译过来的。如果你有兴趣也可以先看看规范。
   这里先给出关于二次激活上下文在规范中的定义,如下:
    The Secondary PDP Context Activation procedure may be used to activate a PDP context while reusing the PDP address and other PDP context information from an already active PDP context, but with a different QoS profile.
   另外,我刚写了一个二次激活的实例配合流程的说明放到“信令流程”版块。以下为链接。http://www.gprshome.com/forum.php?mod=viewthread&tid=240&extra=page%3D1 。仅供参考。{:soso_e100:}

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

特殊贡献用户

分组域未来之星

VIP 论坛核心会员 特殊贡献奖

地板
发表于 2011-6-18 14:41:40 |只看该作者
(1)我看附件中的抓包文件,Teardown Indicator 设置值为 false 或 true ,这便是所谓的0或1吧。
(2)按照上面说明,二次激活后,一般的去激活过程应该先去除第二次激活(Secondary PDP Context),然后在去除第一次激活(Primary PDP Context)吧
(3)"Teardown Indicator设置为1,这样就会通知GGSN将属于这个MS的所有PDP上下文全部删除。当然这个时候,在MS上只有一个Active的PDP上下文了,也就是这个Primary PDP Context,所以也无所谓。
"  既然已经全部删除所有PDP上下文了,怎么还有一个Active的PDP上下文呢?如果还有,要发起什么信令携带什么信息才能完全删除干净呢?          谢谢~
生命只有一次,珍惜珍重,勿浪费

使用道具 举报

Rank: 9Rank: 9

懒

5#
发表于 2011-6-18 16:11:45 |只看该作者
回复 hendouse 的帖子

   针对你的(1)(2)(3)来个点到点应答。
(1):是的。
(2):是的。
(3):"Teardown Indicator设置为1,这样就会通知GGSN将属于这个MS的所有PDP上下文全部删除。当然这个时候,在MS上只有一个Active的PDP上下文了,也就是这个Primary PDP Context,所以也无所谓。"
    这句话可能我表达的不是很清楚,我是想说在SGSN发第3个包delete pdp context request消息的时候,它只有属于这个MS的一个Active的PDP上下文了,即NSAPI=5这个。直到收到GGSN的回复(即第4个包delete pdp context response消息)之前,这个PDP上下文在SGSN上都是active的。所以在第4个包,SGSN收到delete pdp context response消息时,SGSN上关于这个MS实际只有一个active PDP上下文可以删,所以TI=1还是TI=0都是一样的。这时一个特例,但如果在#1号包SGSN发的delete pdp context request消息里如果TI=1的话,则GGSN会将属于这个MS的两个PDP上下文(Primary 和Secondary PDP上下文) 都删除(NSAPI=5和6),
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

6#
发表于 2011-10-19 22:15:46 |只看该作者
针对你的(1)(2)(3)来个点到点应答。
(1):是的。
(2):是的。个人认为:这个不一定吧。要看需要而定
(3):"Teardown Indicator设置为1,这样就会通知GGSN将属于这个MS的所有PDP上下文全部删除。当然这个时候,在MS上只有一个Active的PDP上下文了,也就是这个Primary PDP Context,所以也无所谓。"
     这句话可能我表达的不是很清楚,我是想说在SGSN发第3个包delete pdp context request消息的时候,它只有属于这个MS的一个Active的PDP上下文了,即NSAPI=5这个。直到收到GGSN的回复(即第4个包delete pdp context response消息)之前,这个PDP上下文在SGSN上都是active的。所以在第4个包,SGSN收到delete pdp context response消息时,SGSN上关于这个MS实际只有一个active PDP上下文可以删,所以TI=1还是TI=0都是一样的(个人认为这句话有问题,这时的Teardown一定是1不可能为0,另外TI是transaction identity的缩写,难道Teardown也缩写为TI,请楼主谈谈。)。这时一个特例,但如果在#1号包SGSN发的delete pdp context request消息里如果TI=1的话,则GGSN会将属于这个MS的两个PDP上下文(Primary 和Secondary PDP上下文) 都删除(NSAPI=5和6)(同意,所以删除或者去活时是不区分primay还是secondary的,为啥楼主在“PDP上下文详解里提到当去活primary的时候所有的secondary也都去活了,反之当去活secondary的时候,只能去活一个,请楼主谈谈这个问题。),

本文摘自: GPRS家园(www.gprshome.com) 详细出处请参考:http://www.gprshome.com/forum.php?mod=viewthread&tid=237&extra=page%3D1
谢谢楼主

使用道具 举报

Rank: 9Rank: 9

懒

7#
发表于 2011-10-20 09:57:50 |只看该作者

RE: GTP协议中的Teardown Indicator IE及实例

samsin 发表于 2011-10-19 22:15
谢谢楼主

  说说我的理解哈。
  (2):这个不一定吧。要看需要而定
      这个我同意。但通常来说会先去激活Secondary,再去激活Primary,因为Secondary是要依附于Primary的,如果Primary都不存在了,那Secondary也就会被去激活。这个和Tear down Indicator无关,不管Tear down Indicator取值为0或1,只要Primary去活了,那Secondary也将一定要被去激活。
(3所以TI=1还是TI=0都是一样的(个人认为这句话有问题,这时的Teardown一定是1不可能为0,另外TI是transaction identity的缩写,难道Teardown也缩写为TI,请楼主谈谈。)
      我能够理解你的疑惑。照道理来说,如果只有一个active PDP Context了,Tear down indicator设置为0也没有意义,但24008里并没有完全说死,所以也不排除有手机会这样来做。TI是transaction identity这个确实是,只不过我在回帖的时候偷懒了,不好意思,将Teardown Indicator也缩写成TI了,实际上是不合适的,请见谅。
这时一个特例,但如果在#1号包SGSN发的delete pdp context request消息里如果TI=1的话,则GGSN会将属于这个MS的两个PDP上下文(Primary 和Secondary PDP上下文) 都删除(NSAPI=5和6)(同意,所以删除或者去活时是不区分primay还是secondary的,为啥楼主在“PDP上下文详解里提到当去活primary的时候所有的secondary也都去活了,反之当去活secondary的时候,只能去活一个,请楼主谈谈这个问题。),
      我觉得从消息上看感觉是没有明确的区分,即Gn口的delete pdp context request消息并没有区分是primary还是secondary,MS和SGSN的GMM消息也不像激活时分activate pdp context request和activate secondary pdp context,在去活时都是一个消息叫做deactivate pdp context request。但实际上,是可以区分出来的。例如正如你所说,在GMM消息里,会有Transaction identity里的TIO,这个值会和激活时的TIO对应,用于区分是primary还是secondary,本例取值为0和1,分别对应primary和secondary,同理,在Gn口的delete pdp context request,也有nsapi和创建pdp上下文时候的NSAPI进行对应,所以站在SGSN的角度来看,它是能够在去激活时区分出primary还是secondary的,只不过我们的消息没有分开成两个而已。
    "上下文详解里提到当去活primary的时候所有的secondary也都去活了,反之当去活secondary的时候,只能去活一个",我的本意是想说明去活primary会导致所有的secondary都去活,但如果去活secondary,不会导致primary被去活,但可能导致其他的secondary被去活。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

8#
发表于 2011-10-20 13:20:22 |只看该作者
我能够理解你的疑惑。照道理来说,如果只有一个active PDP Context了,Tear down indicator设置为0也没有意义,但24008里并没有完全说死,所以也不排除有手机会这样来做。
本文摘自: GPRS家园(www.gprshome.com) 详细出处请参考:http://www.gprshome.com/forum.php?mod=viewthread&tid=237&page=1#pid4678
在TS 29.060 V9.1.0 (2009-12)里面:(红色部分)


The Teardown Ind is used to indicatewhether all PDP contexts that share the PDP address or two IP addresses(one IPv4 and one IPv6 if PDP Type IPv4v6 is supported and used) withthe PDP context identified in the request should also be deactivated. This maytrigger the deletion of all the information kept for a MS at a GSN, if no otherPDP contexts associated to other PDP addresses are active on the GSN. If theTeardown Ind information element value is set to "1", then all PDPcontexts that share the same PDP address or two IP addresses(one IPv4 and one IPv6 if PDP Type IPv4v6 is supported and used) withthe PDP context identified by the NSAPI included in the Delete PDP ContextRequest Message shall be torn down. If more than one PDP Contexts are activethat share the same PDP address or two IP addresses (one IPv4 and one IPv6 ifPDP Type IPv4v6 is supported and used), only the PDP context identified by the NSAPIincluded in the Delete PDP context Request shall be torn down if the value ofthis information element is "0" or this information is not included. The SGSN shall copy this IE to the Delete PDP Context Request fromthe associated Deactivate PDP Context Request initiated by MS, if it isincluded.
This information element shall NOT be included by the SGSN if theDeactivate PDP Context Request message from the MS does NOT include the Teardown indicator at PDP Context Deactivation initiated by MS. However,exceptionally this information element shall be included and its value set to "1"by the sending GSN only when the last PDP context associated to a PDP address or two IPaddresses (one IPv4 and one IPv6 if PDP Type IPv4v6 is supported and used) is torndown and there are no outstanding Create PDP context requests for other PDPcontext different from the one being torn down for that PDP address or twoIP addresses (one IPv4 and one IPv6 if PDP Type IPv4v6 is supported and used).意思是:如果要去活一个PDP,而这个PDP恰是‘pdp address and apn’ 唯一的一个并且目前没有在此‘pdp address and apn’上的 create pdp request, 那么在sending gsn的删除pdp里它的Teardown Ind 字段必须有、并且值肯定是1。

谢谢楼主



  

    


使用道具 举报

Rank: 9Rank: 9

懒

9#
发表于 2011-10-20 13:27:11 |只看该作者
回复 samsin 的帖子

  非常感谢纠正错误。学习了!多谢!
  总结一下,就是说如果当前UE只有一个active的PDP上下文了(实际上只可能是primary pdp context),那在delete pdp context request消息里的tear down indicator一定要置1。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

10#
发表于 2011-10-20 13:40:58 |只看该作者

hi,请楼主看看

本帖最后由 samsin 于 2011-10-20 13:44 编辑
我觉得从消息上看感觉是没有明确的区分,即Gn口的delete pdp context request消息并没有区分是primary还是secondary,MS和SGSN的GMM消息也不像激活时分activate pdp context request和activate secondary pdp context,在去活时都是一个消息叫做deactivate pdp context request。但实际上,是可以区分出来的。例如正如你所说,在GMM消息里,会有Transaction identity里的TIO,这个值会和激活时的TIO对应,用于区分是primary还是secondary,本例取值为0和1,分别对应primary和secondary,同理,在Gn口的delete pdp context request,也有nsapi和创建pdp上下文时候的NSAPI进行对应,所以站在SGSN的角度来看,它是能够在去激活时区分出primary还是secondary的,只不过我们的消息没有分开成两个而已。

本文摘自: GPRS家园(www.gprshome.com) 详细出处请参考:http://www.gprshome.com/forum.php?mod=viewthread&;tid=237&extra=#pid4691

我认为: TI,这个东东,其实是在gb口上的‘NSAPI’,在协议里24008:Tear down indicator

This IE is included in the message in orderto indicate whether only the PDP context associated with this specific TI orall active PDP contexts sharing the same PDP address and APN as the PDP contextassociated with this specific TI shall be deactivated.

在sgsn上TI和NSAPI有个映射关系,所以sgsn当然知道 对哪个PDP操作了(创建哪个PDP,更新的又是哪个PDP等),因此gn口的PDP消息,绝对离不开NSAPI,这个东东。这也正如gb的GMM/GSM中的GSM也离不开TI一样.
感觉楼主的意思 好像是 从TI的值上来区分 哪个是主哪个是次,这个能确定吗? 我还记得 NSAPI有个先为6,接着一个为5的例子。
个人认为,TI也MS自己分配的,如果MS有个自己认为有效的TI=0,而网络却把它给无效了,这时MS发起了activate PDP procedure,那么它的TI=1, 一段时间后,它又发起activate pdp procedure,那么它的TI=0不就可能了吗? 1为primary,而0就是secondary了呀。
请楼主谈谈自己的观点。
谢谢楼主哦

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

11#
发表于 2011-10-20 13:54:42 |只看该作者

hi,楼主你好

本帖最后由 samsin 于 2011-10-20 13:58 编辑
      这个我同意。但通常来说会先去激活Secondary,再去激活Primary,因为Secondary是要依附于Primary的,如果Primary都不存在了,那Secondary也就会被去激活。这个和Tear down Indicator无关,不管Tear down Indicator取值为0或1,只要Primary去活了,那Secondary也将一定要被去激活。

本文摘自: GPRS家园(www.gprshome.com) 详细出处请参考:http://www.gprshome.com/forum.php?mod=viewthread&;tid=237&page=1#pid4692

楼主,你好,这个红色的依附关系,个人认为应该是创建PDP时的,一旦创建完成后,还存在这个依附关系吗?不是独立核算的吗?从gb口的去活pdp消息格式里,TI难道有潜在的 限制吗? 请楼主谈谈这个问题。
谢谢楼主。

使用道具 举报

Rank: 2Rank: 2

12#
发表于 2011-11-11 09:52:43 |只看该作者
回复 samsin 的帖子

小弟也是刚刚开始学习,但是我个人也觉得secondary PDP在建好以后对primary没有这么大的依赖关系。激活一个primary和secondary,然后干掉primary,应该没什么问题吧。同样期待指教。

使用道具 举报

Rank: 9Rank: 9

懒

13#
发表于 2011-11-11 12:01:26 |只看该作者
本帖最后由 爱卫生 于 2011-11-11 12:23 编辑

回复 stucoco 的帖子

  我说下这个Teardown Indicator IE在PDP去激活时,对Primary和Secondary PDP上下文去激活的影响的个人理解吧。也就是上面提到的依附问题。先说结果吧,我个人觉得是有依附关系的。
1 谈依附,首先到TS23060的9.2.4章查找去激活流程的说明:
   分成两种情况讨论,一是MS发起的,一是GSN发起的去激活。在去激活流程中并不区分Primary PDP Context还是Secondary。都是一个消息---Deactivate PDP Context Request,在Gn侧也是一个消息----Delete PDP Context Request。先看9.2.4.1---MS发起的:这里提到"The MS sends a Deactivate PDP Context Request (TI, Teardown Ind) message to the SGSN. If the MS deactivates the PDP context created by the PDP Context Activation Procedure, the Teardown Ind shall be sent"。也就是说这个PDP上下文是由正常的PDP上下文创建流程建立的,在去激活时,应该要带上Teardown Indicator。
2 然后到TS24008去查看Teardown Indicator的作用和Deactivate PDP Context Request消息的构成。
   在9.5.14.1查到Teardown Indicator的作用。"This IE is included in the message in order to indicate whether only the PDP context associated with this specific TI or all active PDP contexts sharing the same PDP address and APN as the PDP context associated with this specific TI shall be deactivated."这个Teardown Indicator可以取的值是0或1。如果为0,则代表关联到指定TI(Transcation ID)的PDP上下文都要删除,那Secondary肯定是需要通过Linked TI关联到Primary的。如果取值为1,则代表共享相同PDP地址的所有PDP上下文全部都要删除,同样,Secondary肯定是要和Primary共享相同PDP地址的。也就是说Teardown Indicator不管取值为0还是1,当对Primary PDP Context执行去激活时,Secondary PDP Context都将被删除。但反过来不会,这就需要再去看看Deactivate PDP Context Request消息的构成。同样也是在9.5.14,你会发现消息里并没有NSAPI这个字段。那这个消息由MS发给SGSN,SGSN怎么能够区分出MS的Primary和Secondary PDP Context呢?原来是靠Transaction identifier。你会发现在Deactivate PDP Context Request消息里Transaction identifier是必选的IE。所以,这里实际上有一个Transaction identifier到NSAPI的映射过程的,否则SGSN根本无法知道到底是要将哪个PDP上下文去激活。
  举个例子:             NSAPI      Transaction identifier     Linked Transaction identifier
Primary PDP Context       5                  0
Secondary PDP Context     6                  1                            0
  那这个时候,如果MS发起的Deactivate PDP Context Request希望是对Secondary进行去激活,Transaction identifier则会填1,但这时即使携带了Teardown Indicator,也不会将Primary去激活。因为Primary没有通过Linked Transaction identifier和Secondary进行关联。但反过来,如果去激活Primary,Transaction identifier对应为0,无论Teardown Indicator设置为0还是1,都会将Secondary去激活。
  以上就论证Secondary即使在建立好以后,在去激活时也不能单独存在。
PS:
  最后还查了TS29060,发现在GTP规范中的Delete PDP Context Request消息里的Teardown Indicator是一个有条件的IE,当MS在Deactivate PDP Context Request带了Teardown Indicator之后,Delete PDP Context Request消息就一定会携带。所以是可以关联在一起的。"This information element shall be included by the SGSN if the Deactivate PDP Context Request message from the MS includes the Tear down indicator at PDP Context Deactivation initiated by MS."
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

14#
发表于 2011-11-11 16:57:28 |只看该作者
回复 爱卫生 的帖子

楼主说的很有道理,受益匪浅。可能我之前看到的一个case不是很符合协议。确实是把primary干掉,只留下了secondary PDP。这个例子让我一直觉得primary和secondary在建立之后就相互独立了。感谢楼主!

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

15#
发表于 2011-11-12 09:40:42 |只看该作者
stucoco
兄弟, 能否把你的 那个例子 的文件 传上来吗? 大家都学习一下。谢谢

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

16#
发表于 2011-11-12 10:07:28 |只看该作者
在9.5.14.1查到Teardown Indicator的作用。"This IE is included in the message in order to indicate whether only the PDP context associated with this specific TI or all active PDP contexts sharing the same PDP address and APN as the PDP contextassociated with this specific TI】 shall be deactivated."

楼主,好哈,你对associcate这么理解的, 为啥 不能认为 associate 就是 identified呢?, 个人认为这也可以说通啊。

使用道具 举报

Rank: 9Rank: 9

懒

17#
发表于 2011-11-12 10:21:17 |只看该作者
回复 samsin 的帖子

  因为在TS24008中还提到了Secondary和Primary是有Assoicate这种关系的。原文是"Each PDP address may be described by one or more PDP contexts in the MS or the network. The PDP Context Activation procedure is used to activate the first PDP context for a given PDP address and APN, whereas all additional contexts associated to the same PDP address and APN are activated with the secondary PDP context activation procedure. "
  而在实际的使用中,Secondary PDP Context是通过Linked TI(Trancation ID)和Primary关联的。达到共享PDP地址的目的。所以我的理解是这种依附关系。
  而且在后面也提到了,"After successful PDP context deactivation, the associated NSAPI and TI values are released and can be reassigned to another PDP context. "。所以,这个不是说的自己的ID,而应该是关联到这个TI的所有PDP上下文,可能是1个Primary + N个Secondary。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

特殊贡献奖

18#
发表于 2011-11-12 11:56:42 |只看该作者

PDP CONTEXT

本帖最后由 samsin 于 2011-11-12 12:01 编辑

楼主,你好,这样,你描述的只是, 在 PDP 的初期,secondary要用Link TI ;NSAPI 和 TI 有关联,我都同意。问题是在PDP新建之后, 到PDP 销毁 之间, 是否仍按照这个依附关系 来操作 primary和secondary。
在SGSN 的 关于 PDP context 中, 没有看到 PDP ‘s primary 方面的参数, 如何保证我当前去活的 不是 primary呢? 难道在信令消息 里面 不展现?
楼主,能否 提供这方面的 规范呢, 谢谢哦 。 我较真了。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2024-11-26 00:49 , Processed in 0.034284 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部