コード例 #1
0
static void
l3_1tr6_rel(struct l3_process *pc, u_char pr, void *arg)
{
	struct sk_buff *skb = arg;
	u_char *p;

	p = skb->data;
	if ((p = findie(p, skb->len, WE0_cause, 0))) {
		if (p[1] > 0) {
			pc->para.cause = p[2];
			if (p[1] > 1)
				pc->para.loc = p[3];
			else
				pc->para.loc = 0;
		} else {
			pc->para.cause = 0;
			pc->para.loc = 0;
		}
	} else {
		pc->para.cause = NO_CAUSE;
		l3_1tr6_error(pc, "missing REL cause", skb);
		return;
	}
	dev_kfree_skb(skb);
	StopAllL3Timer(pc);
	newl3state(pc, 0);
	l3_1TR6_message(pc, MT_N1_REL_ACK, PROTO_DIS_N1);
	pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
	release_l3_process(pc);
}
コード例 #2
0
ファイル: l3_1tr6.c プロジェクト: rohsaini/mkunity
static void
l3_1tr6_rel(struct PStack *st, u_char pr, void *arg)
{
	struct sk_buff *skb = arg;
	u_char *p;

	p = skb->data;
	if ((p = findie(p, skb->len, WE0_cause, 0))) {
		if (p[1] > 0) {
			st->pa->cause = p[2];
			if (p[1] > 1)
				st->pa->loc = p[3];
			else
				st->pa->loc = 0;
		} else {
			st->pa->cause = 0;
			st->pa->loc = 0;
		}
	} else
		st->pa->cause = -1;
	SET_SKB_FREE(skb);
	dev_kfree_skb(skb, FREE_READ);
	StopAllL3Timer(st);
	newl3state(st, 0);
	l3_1TR6_message(st, MT_N1_REL_ACK, PROTO_DIS_N1);
	st->l3.l3l4(st, CC_RELEASE_IND, NULL);
}
コード例 #3
0
static void
l3_1tr6_t308_1(struct l3_process *pc, u_char pr, void *arg)
{
	L3DelTimer(&pc->timer);
	l3_1TR6_message(pc, MT_N1_REL, PROTO_DIS_N1);
	L3AddTimer(&pc->timer, T308, CC_T308_2);
	newl3state(pc, 19);
}
コード例 #4
0
static void
l3_1tr6_release_req(struct l3_process *pc, u_char pr, void *arg)
{
	StopAllL3Timer(pc);
	newl3state(pc, 19);
	l3_1TR6_message(pc, MT_N1_REL, PROTO_DIS_N1);
	L3AddTimer(&pc->timer, T308, CC_T308_1);
}
コード例 #5
0
ファイル: l3_1tr6.c プロジェクト: rohsaini/mkunity
static void
l3_1tr6_t308_1(struct PStack *st, u_char pr, void *arg)
{
	L3DelTimer(&st->l3.timer);
	l3_1TR6_message(st, MT_N1_REL, PROTO_DIS_N1);
	L3AddTimer(&st->l3.timer, st->l3.t308, CC_T308_2);
	newl3state(st, 19);
}
コード例 #6
0
ファイル: l3_1tr6.c プロジェクト: rohsaini/mkunity
static void
l3_1tr6_release_req(struct PStack *st, u_char pr, void *arg)
{
	StopAllL3Timer(st);
	newl3state(st, 19);
	l3_1TR6_message(st, MT_N1_REL, PROTO_DIS_N1);
	L3AddTimer(&st->l3.timer, st->l3.t308, CC_T308_1);
}
コード例 #7
0
static void
l3_1tr6_alert_req(struct l3_process *pc, u_char pr, void *arg)
{
	newl3state(pc, 7);
	l3_1TR6_message(pc, MT_N1_ALERT, PROTO_DIS_N1);
}
コード例 #8
0
ファイル: l3_1tr6.c プロジェクト: rohsaini/mkunity
static void
l3_1tr6_alert_req(struct PStack *st, u_char pr, void *arg)
{
	newl3state(st, 7);
	l3_1TR6_message(st, MT_N1_ALERT, PROTO_DIS_N1);
}