Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  layer2.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Layer 2 defines
 *
 * Copyright 2008  by Karsten Keil <kkeil@novell.com>
 */


#include <linux/mISDNif.h>
#include <linux/skbuff.h>
#include "fsm.h"

#define MAX_WINDOW 8

struct manager {
 struct mISDNchannel ch;
 struct mISDNchannel bcast;
 u_long   options;
 struct list_head layer2;
 rwlock_t  lock;
 struct FsmInst  deact;
 struct FsmTimer  datimer;
 struct sk_buff_head sendq;
 struct mISDNchannel *up;
 u_int   nextid;
 u_int   lastid;
};

struct teimgr {
 int   ri;
 int   rcnt;
 struct FsmInst  tei_m;
 struct FsmTimer  timer;
 int   tval, nval;
 struct layer2  *l2;
 struct manager  *mgr;
};

struct laddr {
 u_char A;
 u_char B;
};

struct layer2 {
 struct list_head list;
 struct mISDNchannel ch;
 u_long   flag;
 int   id;
 struct mISDNchannel *up;
 signed char  sapi;
 signed char  tei;
 struct laddr  addr;
 u_int   maxlen;
 struct teimgr  *tm;
 u_int   vs, va, vr;
 int   rc;
 u_int   window;
 u_int   sow;
 struct FsmInst  l2m;
 struct FsmTimer  t200, t203;
 int   T200, N200, T203;
 u_int   next_id;
 u_int   down_id;
 struct sk_buff  *windowar[MAX_WINDOW];
 struct sk_buff_head i_queue;
 struct sk_buff_head ui_queue;
 struct sk_buff_head down_queue;
 struct sk_buff_head tmp_queue;
};

enum {
 ST_L2_1,
 ST_L2_2,
 ST_L2_3,
 ST_L2_4,
 ST_L2_5,
 ST_L2_6,
 ST_L2_7,
 ST_L2_8,
};

#define L2_STATE_COUNT (ST_L2_8 + 1)

extern struct layer2 *create_l2(struct mISDNchannel *, u_int,
       u_long, intint);
extern int  tei_l2(struct layer2 *, u_int, u_long arg);


/* from tei.c */
extern int  l2_tei(struct layer2 *, u_int, u_long arg);
extern void  TEIrelease(struct layer2 *);
extern int  TEIInit(u_int *);
extern void  TEIFree(void);

#define MAX_L2HEADER_LEN 4

#define RR 0x01
#define RNR 0x05
#define REJ 0x09
#define SABME 0x6f
#define SABM 0x2f
#define DM 0x0f
#define UI 0x03
#define DISC 0x43
#define UA 0x63
#define FRMR 0x87
#define XID 0xaf

#define CMD 0
#define RSP 1

#define LC_FLUSH_WAIT 1

#define FLG_LAPB 0
#define FLG_LAPD 1
#define FLG_ORIG 2
#define FLG_MOD128 3
#define FLG_PEND_REL 4
#define FLG_L3_INIT 5
#define FLG_T200_RUN 6
#define FLG_ACK_PEND 7
#define FLG_REJEXC 8
#define FLG_OWN_BUSY 9
#define FLG_PEER_BUSY 10
#define FLG_DCHAN_BUSY 11
#define FLG_L1_ACTIV 12
#define FLG_ESTAB_PEND 13
#define FLG_PTP  14
#define FLG_FIXED_TEI 15
#define FLG_L2BLOCK 16
#define FLG_L1_NOTREADY 17
#define FLG_LAPD_NET 18

Messung V0.5
C=93 H=93 G=92

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge