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