summaryrefslogtreecommitdiffstats
path: root/sys/i4b/layer3/i4b_q931.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i4b/layer3/i4b_q931.c')
-rw-r--r--sys/i4b/layer3/i4b_q931.c288
1 files changed, 183 insertions, 105 deletions
diff --git a/sys/i4b/layer3/i4b_q931.c b/sys/i4b/layer3/i4b_q931.c
index 06ccbdc..3e8f7ff 100644
--- a/sys/i4b/layer3/i4b_q931.c
+++ b/sys/i4b/layer3/i4b_q931.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1999 Hellmuth Michaelis. All rights reserved.
+ * Copyright (c) 1997, 2000 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,11 +27,11 @@
* i4b_q931.c - Q931 received messages handling
* --------------------------------------------
*
- * $Id: i4b_q931.c,v 1.23 1999/12/13 21:25:27 hm Exp $
+ * $Id: i4b_q931.c,v 1.32 2000/08/24 11:48:58 hm Exp $
*
* $FreeBSD$
*
- * last edit-date: [Mon Dec 13 22:05:33 1999]
+ * last edit-date: [Mon May 29 16:56:52 2000]
*
*---------------------------------------------------------------------------*/
@@ -44,17 +44,16 @@
#if NI4BQ931 > 0
#include <sys/param.h>
-
-#if defined(__FreeBSD__)
-#else
-#include <sys/ioctl.h>
-#endif
-
+#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <net/if.h>
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 104230000
+#include <sys/callout.h>
+#endif
+
#ifdef __FreeBSD__
#include <machine/i4b_debug.h>
#include <machine/i4b_ioctl.h>
@@ -97,6 +96,8 @@ unsigned char cause_tab_q931[CAUSE_I4B_MAX] = {
CAUSE_Q850_CALLREJ, /* CAUSE_I4B_REJECT -> call rejected */
CAUSE_Q850_DSTOOORDR, /* CAUSE_I4B_OOO -> destination out of order */
CAUSE_Q850_TMPFAIL, /* CAUSE_I4B_TMPFAIL -> temporary failure */
+ CAUSE_Q850_USRBSY, /* CAUSE_I4B_L1ERROR -> L1 error / persistent deact XXX */
+ CAUSE_Q850_USRBSY, /* CAUSE_I4B_LLDIAL -> no dialout on leased line XXX */
};
/*---------------------------------------------------------------------------*
@@ -134,9 +135,16 @@ i4b_decode_q931(int unit, int msg_len, u_char *msg_ptr)
if(*msg_ptr != PD_Q931)
{
- DBGL3(L3_P_ERR, "i4b_decode_q931", ("protocol discriminator 0x%x != Q.931\n", *msg_ptr));
+ static int protoflag = -1; /* print only once .. */
+
+ if(*msg_ptr != protoflag)
+ {
+ NDBGL3(L3_P_ERR, "unknown protocol discriminator 0x%x!", *msg_ptr);
+ protoflag = *msg_ptr;
+ }
return;
}
+
msg_ptr++;
msg_len--;
@@ -168,7 +176,7 @@ i4b_decode_q931(int unit, int msg_len, u_char *msg_ptr)
crflag = 0;
}
- DBGL3(L3_P_MSG, "i4b_decode_q931", ("Call Ref, len %d, val %d, flag %d\n", crlen, crval, crflag));
+ NDBGL3(L3_P_MSG, "Call Ref, len %d, val %d, flag %d", crlen, crval, crflag);
/* find or allocate calldescriptor */
@@ -190,7 +198,7 @@ i4b_decode_q931(int unit, int msg_len, u_char *msg_ptr)
{
/*XXX*/ if(crval != 0) /* ignore global call references */
{
- DBGL3(L3_P_ERR, "i4b_decode_q931", ("cannot find calldescriptor for cr = 0x%x, crflag = 0x%x, msg = 0x%x, frame = ", crval, crflag, *msg_ptr));
+ NDBGL3(L3_P_ERR, "cannot find calldescriptor for cr = 0x%x, crflag = 0x%x, msg = 0x%x, frame = ", crval, crflag, *msg_ptr);
i4b_print_frame(msg_len, msg_ptr);
}
splx(s);
@@ -223,7 +231,7 @@ i4b_decode_q931(int unit, int msg_len, u_char *msg_ptr)
if((shift_flag != SHIFTED) &&
(codeset <= old_codeset))
{
- DBGL3(L3_P_ERR, "i4b_decode_q931", ("Q.931 lockingshift proc violation, shift %d -> %d\n", old_codeset, codeset));
+ NDBGL3(L3_P_ERR, "Q.931 lockingshift proc violation, shift %d -> %d", old_codeset, codeset);
codeset = old_codeset;
}
msg_len--;
@@ -241,7 +249,7 @@ i4b_decode_q931(int unit, int msg_len, u_char *msg_ptr)
break;
default:
- DBGL3(L3_P_ERR, "i4b_decode_q931", ("unknown codeset %d, ", codeset));
+ NDBGL3(L3_P_ERR, "unknown codeset %d, ", codeset);
i4b_print_frame(msg_len, msg_ptr);
msg_len = 0;
break;
@@ -269,15 +277,23 @@ i4b_decode_q931_cs0_ie(int unit, call_desc_t *cd, int msg_len, u_char *msg_ptr)
switch(*msg_ptr)
{
+
+/*********/
+/* Q.931 */
+/*********/
/* single byte IE's */
case IEI_SENDCOMPL:
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_SENDCOMPL\n"));
+ NDBGL3(L3_P_MSG, "IEI_SENDCOMPL");
return(1);
break;
/* multi byte IE's */
+ case IEI_SEGMMSG: /* segmented message */
+ NDBGL3(L3_P_MSG, "IEI_SEGMENTED_MESSAGE");
+ break;
+
case IEI_BEARERCAP: /* bearer capability */
switch(msg_ptr[2])
{
@@ -285,17 +301,17 @@ i4b_decode_q931_cs0_ie(int unit, call_desc_t *cd, int msg_len, u_char *msg_ptr)
case 0x89: /* restricted digital info */
case 0x90: /* 3.1KHz audio */
/* XXX */ cd->bprot = BPROT_NONE;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_BEARERCAP - Telephony\n"));
+ NDBGL3(L3_P_MSG, "IEI_BEARERCAP - Telephony");
break;
case 0x88: /* unrestricted digital info */
/* XXX */ cd->bprot = BPROT_RHDLC;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_BEARERCAP - Raw HDLC\n"));
+ NDBGL3(L3_P_MSG, "IEI_BEARERCAP - Raw HDLC");
break;
default:
/* XXX */ cd->bprot = BPROT_NONE;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_BEARERCAP - No Protocol\n"));
+ NDBGL3(L3_P_ERR, "IEI_BEARERCAP - Unsupported B-Protocol 0x%x", msg_ptr[2]);
break;
}
break;
@@ -304,20 +320,29 @@ i4b_decode_q931_cs0_ie(int unit, call_desc_t *cd, int msg_len, u_char *msg_ptr)
if(msg_ptr[2] & 0x80)
{
cd->cause_in = msg_ptr[3] & 0x7f;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CAUSE = %d\n", msg_ptr[3] & 0x7f));
+ NDBGL3(L3_P_MSG, "IEI_CAUSE = %d", msg_ptr[3] & 0x7f);
}
else
{
cd->cause_in = msg_ptr[4] & 0x7f;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CAUSE = %d\n", msg_ptr[4] & 0x7f));
+ NDBGL3(L3_P_MSG, "IEI_CAUSE = %d", msg_ptr[4] & 0x7f);
}
break;
+ case IEI_CALLID: /* call identity */
+ NDBGL3(L3_P_MSG, "IEI_CALL_IDENTITY");
+ break;
+
+ case IEI_CALLSTATE: /* call state */
+ cd->call_state = msg_ptr[2] & 0x3f;
+ NDBGL3(L3_P_MSG, "IEI_CALLSTATE = %d", cd->call_state);
+ break;
+
case IEI_CHANNELID: /* channel id */
if((msg_ptr[2] & 0xf4) != 0x80)
{
cd->channelid = CHAN_NO;
- DBGL3(L3_P_ERR, "i4b_decode_q931_cs0_ie", ("IEI_CHANNELID, unsupported value 0x%x\n", msg_ptr[2]));
+ NDBGL3(L3_P_ERR, "IEI_CHANNELID, unsupported value 0x%x", msg_ptr[2]);
}
else
{
@@ -338,7 +363,7 @@ i4b_decode_q931_cs0_ie(int unit, call_desc_t *cd, int msg_len, u_char *msg_ptr)
}
cd->channelexcl = (msg_ptr[2] & 0x08) >> 3;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CHANNELID - channel %d, exclusive = %d\n", cd->channelid, cd->channelexcl));
+ NDBGL3(L3_P_MSG, "IEI_CHANNELID - channel %d, exclusive = %d", cd->channelid, cd->channelexcl);
/* if this is a setup message, reserve channel */
@@ -349,102 +374,149 @@ i4b_decode_q931_cs0_ie(int unit, call_desc_t *cd, int msg_len, u_char *msg_ptr)
if(ctrl_desc[cd->controller].bch_state[cd->channelid] == BCH_ST_FREE)
ctrl_desc[cd->controller].bch_state[cd->channelid] = BCH_ST_RSVD;
else
- DBGL3(L3_P_ERR, "i4b_decode_q931_cs0_ie", ("IE ChannelID, Channel NOT free!!\n"));
+ NDBGL3(L3_P_ERR, "IE ChannelID, Channel NOT free!!");
}
else if(cd->channelid == CHAN_NO)
{
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IE ChannelID, SETUP with channel = No channel (CW)\n"));
+ NDBGL3(L3_P_MSG, "IE ChannelID, SETUP with channel = No channel (CW)");
}
else /* cd->channelid == CHAN_ANY */
{
- DBGL3(L3_P_ERR, "i4b_decode_q931_cs0_ie", ("ERROR: IE ChannelID, SETUP with channel = Any channel!\n"));
+ NDBGL3(L3_P_ERR, "ERROR: IE ChannelID, SETUP with channel = Any channel!");
}
}
}
break;
+ case IEI_PROGRESSI: /* progress indicator */
+ NDBGL3(L3_P_MSG, "IEI_PROGRESSINDICATOR");
+ break;
+
+ case IEI_NETSPCFAC: /* network specific fac */
+ NDBGL3(L3_P_MSG, "IEI_NETSPCFAC");
+ break;
+
+ case IEI_NOTIFIND: /* notification indicator */
+ NDBGL3(L3_P_MSG, "IEI_NOTIFICATION_INDICATOR");
+ break;
+
+ case IEI_DISPLAY: /* display */
+ memcpy(cd->display, &msg_ptr[2], min(DISPLAY_MAX, msg_ptr[1]));
+ cd->display[min(DISPLAY_MAX, msg_ptr[1])] = '\0';
+ NDBGL3(L3_P_MSG, "IEI_DISPLAY = %s", cd->display);
+ break;
+
+ case IEI_DATETIME: /* date/time */
+ i = 2;
+ j = msg_ptr[1];
+ p = &(cd->datetime[0]);
+ *p = '\0';
+
+ for(j = msg_ptr[1]; j > 0; j--, i++)
+ sprintf(p+strlen(p), "%02d", msg_ptr[i]);
+
+ NDBGL3(L3_P_MSG, "IEI_DATETIME = %s", cd->datetime);
+ break;
+
+ case IEI_KEYPAD: /* keypad facility */
+ NDBGL3(L3_P_MSG, "IEI_KEYPAD_FACILITY");
+ break;
+
+ case IEI_SIGNAL: /* signal type */
+ NDBGL3(L3_P_MSG, "IEI_SIGNAL = %d", msg_ptr[2]);
+ break;
+
+ case IEI_INFRATE: /* information rate */
+ NDBGL3(L3_P_MSG, "IEI_INFORMATION_RATE");
+ break;
+
+ case IEI_ETETDEL: /* end to end transit delay */
+ NDBGL3(L3_P_MSG, "IEI_END_TO_END_TRANSIT_DELAY");
+ break;
+
+ case IEI_CUG: /* closed user group */
+ NDBGL3(L3_P_MSG, "IEI_CLOSED_USER_GROUP");
+ break;
+
case IEI_CALLINGPN: /* calling party no */
if(msg_ptr[2] & 0x80) /* no presentation/screening indicator ? */
{
memcpy(cd->src_telno, &msg_ptr[3], min(TELNO_MAX, msg_ptr[1]-1));
cd->src_telno[min(TELNO_MAX, msg_ptr[1] - 1)] = '\0';
cd->scr_ind = SCR_NONE;
+ cd->prs_ind = PRS_NONE;
}
else
{
memcpy(cd->src_telno, &msg_ptr[4], min(TELNO_MAX, msg_ptr[1]-2));
cd->src_telno[min(TELNO_MAX, msg_ptr[1] - 2)] = '\0';
cd->scr_ind = (msg_ptr[3] & 0x03) + SCR_USR_NOSC;
+ cd->prs_ind = ((msg_ptr[3] >> 5) & 0x03) + PRS_ALLOWED;
}
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CALLINGPN = %s\n", cd->src_telno));
+ NDBGL3(L3_P_MSG, "IEI_CALLINGPN = %s", cd->src_telno);
break;
+ case IEI_CALLINGPS: /* calling party subaddress */
+ NDBGL3(L3_P_MSG, "IEI_CALLINGPS");
+ break;
+
case IEI_CALLEDPN: /* called party number */
memcpy(cd->dst_telno, &msg_ptr[3], min(TELNO_MAX, msg_ptr[1]-1));
cd->dst_telno[min(TELNO_MAX, msg_ptr [1] - 1)] = '\0';
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CALLED = %s\n", cd->dst_telno));
+ NDBGL3(L3_P_MSG, "IEI_CALLED = %s", cd->dst_telno);
break;
- case IEI_CALLSTATE: /* call state */
- cd->call_state = msg_ptr[2] & 0x3f;
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CALLSTATE = %d\n", cd->call_state));
+ case IEI_CALLEDPS: /* called party subaddress */
+ NDBGL3(L3_P_MSG, "IEI_CALLEDPS");
break;
-
- case IEI_PROGRESSI: /* progress indicator */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_PROGRESSINDICATOR\n"));
+
+ case IEI_REDIRNO: /* redirecting number */
+ NDBGL3(L3_P_MSG, "IEI_REDIRECTING_NUMBER");
break;
-
- case IEI_DISPLAY: /* display */
- /* CHANGED BY <chris@medis.de> */
- memcpy(cd->display, &msg_ptr[2], min(DISPLAY_MAX, msg_ptr[1]));
- cd->display[min(DISPLAY_MAX, msg_ptr[1])] = '\0';
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_DISPLAY = %s\n", cd->display));
- break;
-
- case IEI_DATETIME: /* date/time */
- i = 2;
- j = msg_ptr[1];
- p = &(cd->datetime[0]);
- *p = '\0';
-
- for(j = msg_ptr[1]; j > 0; j--, i++)
- sprintf(p+strlen(p), "%02d", msg_ptr[i]);
-
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_DATETIME = %s\n", cd->datetime));
+
+ case IEI_TRNSEL: /* transit network selection */
+ NDBGL3(L3_P_MSG, "IEI_TRANSIT_NETWORK_SELECTION");
break;
-
- case IEI_FACILITY: /* facility */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_FACILITY\n"));
- if(i4b_aoc(msg_ptr, cd) > -1)
- i4b_l4_charging_ind(cd);
+
+ case IEI_RESTARTI: /* restart indicator */
+ NDBGL3(L3_P_MSG, "IEI_RESTART_INDICATOR");
break;
-
- case IEI_CONCTDNO: /* connected number */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CONCTDNO\n"));
+
+ case IEI_LLCOMPAT: /* low layer compat */
+ NDBGL3(L3_P_MSG, "IEI_LLCOMPAT");
break;
- case IEI_NETSPCFAC: /* network specific fac */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_NETSPCFAC\n"));
+ case IEI_HLCOMPAT: /* high layer compat */
+ NDBGL3(L3_P_MSG, "IEI_HLCOMPAT");
break;
- case IEI_LLCOMPAT: /* low layer compat */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_LLCOMPAT\n"));
+ case IEI_USERUSER: /* user-user */
+ NDBGL3(L3_P_MSG, "IEI_USER_USER");
break;
- case IEI_HLCOMPAT: /* high layer compat */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_HLCOMPAT\n"));
+ case IEI_ESCAPE: /* escape for extension */
+ NDBGL3(L3_P_MSG, "IEI_ESCAPE");
break;
- case IEI_CALLINGPS: /* calling party subaddress */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CALLINGPS\n"));
+/*********/
+/* Q.932 */
+/*********/
+ case IEI_FACILITY: /* facility */
+ NDBGL3(L3_P_MSG, "IEI_FACILITY");
+ if(i4b_aoc(msg_ptr, cd) > -1)
+ i4b_l4_charging_ind(cd);
break;
- case IEI_CALLEDPS: /* called party subaddress */
- DBGL3(L3_P_MSG, "i4b_decode_q931_cs0_ie", ("IEI_CALLEDPS\n"));
+/*********/
+/* Q.95x */
+/*********/
+ case IEI_CONCTDNO: /* connected number */
+ NDBGL3(L3_P_MSG, "IEI_CONCTDNO");
break;
+
default:
- DBGL3(L3_P_ERR, "i4b_decode_q931_cs0_ie", ("Unknown IE %d - ", *msg_ptr));
+ NDBGL3(L3_P_ERR, "Unknown IE %d - ", *msg_ptr);
i4b_print_frame(msg_ptr[1]+2, msg_ptr);
break;
}
@@ -457,29 +529,31 @@ i4b_decode_q931_cs0_ie(int unit, call_desc_t *cd, int msg_len, u_char *msg_ptr)
void
i4b_decode_q931_message(int unit, call_desc_t *cd, u_char message_type)
{
- cd->event = EV_ILL;
+ char *m = NULL;
+ cd->event = EV_ILL;
+
switch(message_type)
{
/* call establishment */
case ALERT:
cd->event = EV_ALERT;
- DBGL3(L3_PRIM, "rx ALERT", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "ALERT";
break;
case CALL_PROCEEDING:
cd->event = EV_CALLPRC;
- DBGL3(L3_PRIM, "rx CALL-PROC", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "CALL_PROCEEDING";
break;
case PROGRESS:
cd->event = EV_PROGIND;
- DBGL3(L3_PRIM, "rx PROGRESS", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "PROGRESS";
break;
case SETUP:
- DBGL3(L3_PRIM, "rx SETUP", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "SETUP";
cd->bprot = BPROT_NONE;
cd->cause_in = 0;
cd->cause_out = 0;
@@ -493,142 +567,146 @@ i4b_decode_q931_message(int unit, call_desc_t *cd, u_char message_type)
break;
case CONNECT:
- DBGL3(L3_PRIM, "rx CONNECT", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "CONNECT";
cd->datetime[0] = '\0';
cd->event = EV_CONNECT;
break;
case SETUP_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx SETUP-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "SETUP_ACKNOWLEDGE";
cd->event = EV_SETUPAK;
break;
case CONNECT_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx CONNECT-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "CONNECT_ACKNOWLEDGE";
cd->event = EV_CONACK;
break;
/* call information */
case USER_INFORMATION:
- DBGL3(L3_PRIM, "rx USER-INFO", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "USER_INFORMATION";
break;
case SUSPEND_REJECT:
- DBGL3(L3_PRIM, "rx SUSPEND-REJ", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "SUSPEND_REJECT";
break;
case RESUME_REJECT:
- DBGL3(L3_PRIM, "rx RESUME-REJ", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RESUME_REJECT";
break;
case HOLD:
- DBGL3(L3_PRIM, "rx HOLD", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "HOLD";
break;
case SUSPEND:
- DBGL3(L3_PRIM, "rx SUSPEND", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "SUSPEND";
break;
case RESUME:
- DBGL3(L3_PRIM, "rx RESUME", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RESUME";
break;
case HOLD_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx HOLD-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "HOLD_ACKNOWLEDGE";
break;
case SUSPEND_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx SUSPEND-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "SUSPEND_ACKNOWLEDGE";
break;
case RESUME_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx RESUME-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RESUME_ACKNOWLEDGE";
break;
case HOLD_REJECT:
- DBGL3(L3_PRIM, "rx HOLD-REJ", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "HOLD_REJECT";
break;
case RETRIEVE:
- DBGL3(L3_PRIM, "rx RETRIEVE", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RETRIEVE";
break;
case RETRIEVE_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx RETRIEVE-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RETRIEVE_ACKNOWLEDGE";
break;
case RETRIEVE_REJECT:
- DBGL3(L3_PRIM, "rx RETRIEVE-REJ", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RETRIEVE_REJECT";
break;
/* call clearing */
case DISCONNECT:
- DBGL3(L3_PRIM, "rx DISCONNECT", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "DISCONNECT";
cd->event = EV_DISCONN;
break;
case RESTART:
- DBGL3(L3_PRIM, "rx RESTART", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RESTART";
break;
case RELEASE:
- DBGL3(L3_PRIM, "rx RELEASE", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RELEASE";
cd->event = EV_RELEASE;
break;
case RESTART_ACKNOWLEDGE:
- DBGL3(L3_PRIM, "rx RESTART-ACK", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RESTART_ACKNOWLEDGE";
break;
case RELEASE_COMPLETE:
- DBGL3(L3_PRIM, "rx RELEASE-COMPLETE", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "RELEASE_COMPLETE";
cd->event = EV_RELCOMP;
break;
/* misc messages */
case SEGMENT:
- DBGL3(L3_PRIM, "rx SEGMENT", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "SEGMENT";
break;
case FACILITY:
- DBGL3(L3_PRIM, "rx FACILITY", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "FACILITY";
cd->event = EV_FACILITY;
break;
case REGISTER:
- DBGL3(L3_PRIM, "rx REGISTER", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "REGISTER";
break;
case NOTIFY:
- DBGL3(L3_PRIM, "rx NOTIFY", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "NOTIFY";
break;
case STATUS_ENQUIRY:
- DBGL3(L3_PRIM, "rx STATUS-ENQ", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "STATUS_ENQUIRY";
cd->event = EV_STATENQ;
break;
case CONGESTION_CONTROL:
- DBGL3(L3_PRIM, "rx CONGESTION-CONTROL", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "CONGESTION_CONTROL";
break;
case INFORMATION:
- DBGL3(L3_PRIM, "rx INFORMATION", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "INFORMATION";
cd->event = EV_INFO;
break;
case STATUS:
- DBGL3(L3_PRIM, "rx STATUS", ("unit %d, cr = 0x%02x\n", unit, cd->cr));
+ m = "STATUS";
cd->event = EV_STATUS;
break;
default:
- DBGL3(L3_P_ERR, "rx UNKNOWN msg", ("unit %d, cr = 0x%02x, msg = 0x%02x\n", unit, cd->cr, message_type));
+ NDBGL3(L3_P_ERR, "unit %d, cr = 0x%02x, msg = 0x%02x", unit, cd->cr, message_type);
break;
}
+ if(m)
+ {
+ NDBGL3(L3_PRIM, "%s: unit %d, cr = 0x%02x\n", m, unit, cd->cr);
+ }
}
#endif /* NI4BQ931 > 0 */
OpenPOWER on IntegriCloud