FLG_MSG_TARGET for direct target addressing
This commit is contained in:
parent
fbd7e82890
commit
b901a8dfcd
|
@ -2215,7 +2215,7 @@ dss1_function(mISDNinstance_t *inst, struct sk_buff *skb)
|
||||||
case FLG_MSG_UP:
|
case FLG_MSG_UP:
|
||||||
ret = dss1_fromdown(l3, skb, hh);
|
ret = dss1_fromdown(l3, skb, hh);
|
||||||
break;
|
break;
|
||||||
case MSG_DIRECT:
|
case MSG_TO_OWNER:
|
||||||
/* FIXME: must be handled depending on type */
|
/* FIXME: must be handled depending on type */
|
||||||
int_errtxt("not implemented yet");
|
int_errtxt("not implemented yet");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -596,7 +596,7 @@ l1_function(mISDNinstance_t *inst, struct sk_buff *skb)
|
||||||
case FLG_MSG_UP:
|
case FLG_MSG_UP:
|
||||||
ret = l1from_down(l1, skb, hh);
|
ret = l1from_down(l1, skb, hh);
|
||||||
break;
|
break;
|
||||||
case MSG_DIRECT:
|
case MSG_TO_OWNER:
|
||||||
/* FIXME: must be handled depending on type */
|
/* FIXME: must be handled depending on type */
|
||||||
int_errtxt("not implemented yet");
|
int_errtxt("not implemented yet");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -2035,7 +2035,7 @@ l2_function(mISDNinstance_t *inst, struct sk_buff *skb)
|
||||||
case FLG_MSG_UP:
|
case FLG_MSG_UP:
|
||||||
ret = l2from_down(l2, skb, hh);
|
ret = l2from_down(l2, skb, hh);
|
||||||
break;
|
break;
|
||||||
case MSG_DIRECT:
|
case MSG_TO_OWNER:
|
||||||
/* FIXME: must be handled depending on type */
|
/* FIXME: must be handled depending on type */
|
||||||
int_errtxt("not implemented yet");
|
int_errtxt("not implemented yet");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -160,6 +160,7 @@ get_nextlayer(mISDNstack_t *st, u_int addr)
|
||||||
if (core_debug & DEBUG_CORE_FUNC)
|
if (core_debug & DEBUG_CORE_FUNC)
|
||||||
printk(KERN_DEBUG "%s: st(%08x) addr(%08x)\n", __FUNCTION__, st->id, addr);
|
printk(KERN_DEBUG "%s: st(%08x) addr(%08x)\n", __FUNCTION__, st->id, addr);
|
||||||
|
|
||||||
|
if (!(addr & FLG_MSG_TARGET)) {
|
||||||
switch(addr & MSG_DIR_MASK) {
|
switch(addr & MSG_DIR_MASK) {
|
||||||
case FLG_MSG_DOWN:
|
case FLG_MSG_DOWN:
|
||||||
if (addr & FLG_MSG_CLONED) {
|
if (addr & FLG_MSG_CLONED) {
|
||||||
|
@ -170,19 +171,19 @@ get_nextlayer(mISDNstack_t *st, u_int addr)
|
||||||
case FLG_MSG_UP:
|
case FLG_MSG_UP:
|
||||||
layer += LAYER_ID_INC;
|
layer += LAYER_ID_INC;
|
||||||
break;
|
break;
|
||||||
case MSG_DIRECT:
|
case MSG_TO_OWNER:
|
||||||
break;
|
break;
|
||||||
default: /* broadcast */
|
default: /* broadcast */
|
||||||
int_errtxt("st(%08x) addr(%08x) wrong address", st->id, addr);
|
int_errtxt("st(%08x) addr(%08x) wrong address", st->id, addr);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ((layer < 0) || (layer > MAX_LAYER_NR)) {
|
if ((layer < 0) || (layer > MAX_LAYER_NR)) {
|
||||||
int_errtxt("st(%08x) addr(%08x) layer %d out of range", st->id, addr, layer);
|
int_errtxt("st(%08x) addr(%08x) layer %d out of range", st->id, addr, layer);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
inst = st->i_array[layer];
|
inst = st->i_array[layer];
|
||||||
/* more checks, refcnt locking */
|
/* maybe more checks */
|
||||||
return(inst);
|
return(inst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +293,7 @@ mISDN_queue_message(mISDNinstance_t *inst, u_int aflag, struct sk_buff *skb)
|
||||||
if (core_debug & DEBUG_CORE_FUNC)
|
if (core_debug & DEBUG_CORE_FUNC)
|
||||||
printk(KERN_DEBUG "%s(%08x, %x, prim(%x))\n", __FUNCTION__,
|
printk(KERN_DEBUG "%s(%08x, %x, prim(%x))\n", __FUNCTION__,
|
||||||
inst->id, aflag, hh->prim);
|
inst->id, aflag, hh->prim);
|
||||||
if (aflag && ((aflag & MSG_DIR_MASK) == MSG_DIRECT)) {
|
if (aflag & FLG_MSG_TARGET) {
|
||||||
id = aflag;
|
id = aflag;
|
||||||
} else {
|
} else {
|
||||||
id = (inst->id & INST_ID_MASK) | aflag;
|
id = (inst->id & INST_ID_MASK) | aflag;
|
||||||
|
|
|
@ -1225,7 +1225,7 @@ dte_function(mISDNinstance_t *inst, struct sk_buff *skb)
|
||||||
case FLG_MSG_UP:
|
case FLG_MSG_UP:
|
||||||
ret = dte_from_down(l3, skb, hh);
|
ret = dte_from_down(l3, skb, hh);
|
||||||
break;
|
break;
|
||||||
case MSG_DIRECT:
|
case MSG_TO_OWNER:
|
||||||
/* FIXME: must be handled depending on type */
|
/* FIXME: must be handled depending on type */
|
||||||
int_errtxt("not implemented yet");
|
int_errtxt("not implemented yet");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -457,14 +457,15 @@
|
||||||
|
|
||||||
#define FLG_MSG_DOWN 0x01000000
|
#define FLG_MSG_DOWN 0x01000000
|
||||||
#define FLG_MSG_UP 0x02000000
|
#define FLG_MSG_UP 0x02000000
|
||||||
#define FLG_MSG_CLONED 0x04000000
|
#define FLG_MSG_TARGET 0x04000000
|
||||||
|
#define FLG_MSG_CLONED 0x08000000
|
||||||
#define FLG_CHILD_STACK 0x10000000
|
#define FLG_CHILD_STACK 0x10000000
|
||||||
#define FLG_CLONE_STACK 0x20000000
|
#define FLG_CLONE_STACK 0x20000000
|
||||||
#define FLG_INSTANCE 0x40000000
|
#define FLG_INSTANCE 0x40000000
|
||||||
#define FLG_MSG_TAGGED 0x80000000
|
#define FLG_MSG_TAGGED 0x80000000
|
||||||
#define MSG_DIR_MASK 0x03000000
|
#define MSG_DIR_MASK 0x03000000
|
||||||
#define MSG_BROADCAST 0x03000000
|
#define MSG_BROADCAST 0x03000000
|
||||||
#define MSG_DIRECT 0x00000000
|
#define MSG_TO_OWNER 0x00000000
|
||||||
|
|
||||||
#define CHILD_ID_INC 0x00010000
|
#define CHILD_ID_INC 0x00010000
|
||||||
#define CHILD_ID_MAX 0x10FF0000
|
#define CHILD_ID_MAX 0x10FF0000
|
||||||
|
|
Loading…
Reference in New Issue