Changeset 59c31da


Ignore:
Timestamp:
10/26/04 07:57:30 (16 years ago)
Author:
Daniel Lawson <dlawson@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
a22c979
Parents:
7e55902
Message:

fixes in trace.c for DAG support.
New dagapi / dagopts.c. Still need to find way to build these outside the source

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • config.h

    r4fd12ac r59c31da  
    6363
    6464/* Define to 1 if you have the <zlib.h> header file. */
    65 #define HAVE_ZLIB_H 1
     65/* #undef HAVE_ZLIB_H */
    6666
    6767/* Name of package */
  • examples/rate/Makefile

    r516b30e r59c31da  
    99LDLIBS = $(libdir) -ltrace
    1010
    11 BINS = rate rate-dir
     11BINS = rate rate-dir raw-rate
    1212.PHONY: all clean distclean install depend
    1313
  • lib/dagapi.c

    rb36a3b7 r59c31da  
    4444# define        IOM(OFF)        (*(volatile unsigned *)(herd[dagfd].iom+(OFF)))
    4545# define        ARMOFFSET(FD)   ({ int _off = ToHM4 - dag_info(FD)->phy_addr; \
    46                                         (_off == dag_info(FD)->buf_size) ? 0 : _off; })
     46                                        (_off == herd[FD].rx_memsize) ? 0 : _off; })
    4747
    4848# define        CUROFFSET(FD)   ({ int _off = pbm->curaddr - dag_info(FD)->phy_addr; \
    49                                         (_off == dag_info(FD)->buf_size) ? 0 : _off; })
     49                                        (_off == herd[FD].rx_memsize) ? 0 : _off; })
    5050# define        SEGOFFSET(FD)   ({ int _off = pbm->segaddr - dag_info(FD)->phy_addr; \
    51                                         (_off == dag_info(FD)->buf_size) ? 0 : _off; })
     51                                        (_off == herd[FD].rx_memsize) ? 0 : _off; })
    5252# define        PBMOFFSET(FD)   (herd[FD].brokencuraddr ? \
    5353                                        SEGOFFSET(FD) : CUROFFSET(FD))
     
    6161 * the reliable path to address the problem, for the moment.
    6262 */
    63 # define        WRSAFE(FD,X)    (((X)<8) ? ((X)+dag_info(FD)->buf_size-8) : ((X)-8))
     63# define        WRSAFE(FD,X)    (((X)<8) ? ((X)+herd[FD].rx_memsize-8) : ((X)-8))
    6464
    6565/*
     
    7373        daginf_t        daginf;
    7474        unsigned        brokencuraddr;  /* fix for ECMs and Dag4.1s */
    75         unsigned        byteswap;       /* endinness for 3.4/3.51ecm */
     75        unsigned        byteswap;       /* endinness for 3.4/3.51ecm */
     76        unsigned        rx_memaddr;     /* cached rx hole base */
     77        unsigned        rx_memsize;     /* cached rx hole size */
    7678} sheep_t;
    7779
     
    7981
    8082static void     panic(char *fmt, ...) __attribute__((noreturn, format (printf, 1, 2)));
     83static void     dagpbmcheck(int dagfd);
    8184
    8285char *dagpath(char *path, char *temp, int tempsize) {
     
    116119                panic("dag_open dag_clone dagfd for dagiom: %s\n", strerror(errno));
    117120
    118         if((herd[dagfd].iom = mmap(NULL, 2*PAGE_SIZE, PROT_READ | PROT_WRITE,
     121        if((herd[dagfd].iom = mmap(NULL, 16*PAGE_SIZE, PROT_READ | PROT_WRITE,
    119122                                        MAP_SHARED, herd[dagfd].dagiom, 0)) == MAP_FAILED)
    120123                return -1;      /* errno set appropriately */
     
    126129dag_close(int dagfd)
    127130{
     131        if (herd[dagfd].buf != NULL) {
     132                int             buf_size=0;
     133
     134                if(dag_info(dagfd)->soft_caps.pbm) {
     135                        buf_size = ((dagpbm_t *)(herd[dagfd].iom +
     136                                        dag_info(dagfd)->pbm_base))->memsize;
     137                } else {
     138                        buf_size = dag_info(dagfd)->buf_size;
     139                }
     140                munmap(herd[dagfd].buf, 2*buf_size);
     141                herd[dagfd].buf = NULL;
     142        }
    128143        (void)close(herd[dagfd].dagiom);
     144        if (herd[dagfd].iom != NULL) {
     145                munmap(herd[dagfd].iom, 16*PAGE_SIZE);
     146                herd[dagfd].iom = NULL;
     147        }
    129148        memset(&herd[dagfd], 0, sizeof(herd[dagfd]));
    130149        herd[dagfd].dagiom = -1;
     
    171190dag_configure(int dagfd, char *params)
    172191{
    173         int     lock, tok, setatm;
     192        int     lock, tok, setatm, dagarm, val;
    174193        char    temp1[80], temp2[80];
    175194        daggpp_t        *gpp = (daggpp_t *)(herd[dagfd].iom +
     
    244263          case 0x3200:
    245264                if(armcode(dagfd)) {
    246                         if(spawn(dagpath("tools/dagrun", temp1, 80), "-d",
    247                                         herd[dagfd].dagname,
    248                                         dagpath("arm/dag3atm-hash.b",
    249                                         temp2, 80), NULL) < 0)
    250                                 return -1;                             
     265                        dagarm=dag_clone(dagfd, DAGMINOR_ARM);
     266                        if(lseek(dagarm, (off_t)(dag_info(dagfd)->phy_base+(0x5c<<2)), SEEK_SET) < 0)
     267                                panic("dagioread lseek register 0x%x: %s\n", 0x5c, strerror(errno));
     268                        if(read(dagarm, &val, sizeof(val)) != sizeof(val))
     269                                panic("read /dev/dagarmN register 0x%x: %s\n", 0x5c, strerror(errno));
     270                        close(dagarm);
     271                        if (val & 0x80) {
     272                                if(spawn(dagpath("tools/dagrun", temp1, 80), "-d",
     273                                         herd[dagfd].dagname,
     274                                         dagpath("arm/dag3pos-full.b",
     275                                                 temp2, 80), NULL) < 0)
     276                                        return -1;                             
     277                        } else {
     278                                if(spawn(dagpath("tools/dagrun", temp1, 80), "-d",
     279                                         herd[dagfd].dagname,
     280                                         dagpath("arm/dag3atm-hash.b",
     281                                                 temp2, 80), NULL) < 0)
     282                                        return -1;                             
     283                        }
    251284                }
    252285                break;
     
    278311          case 0x350e:
    279312          case 0x360d:
     313          case 0x360e:
     314          case 0x368e:
    280315                break;
    281316                /* byteswapped */
     
    299334          case 0x423e:
    300335          case 0x4230:
     336          case 0x4300:
     337          case 0x430e:
    301338          case 0x6000:
    302339          case 0x6100:
     
    371408                return -1;      /* errno set */
    372409
    373         memset(herd[dagfd].buf, 0, dag_info(dagfd)->buf_size);
     410        memset(herd[dagfd].buf, 0, herd[dagfd].rx_memsize);
    374411
    375412        switch(dag_info(dagfd)->device_code) {
     
    384421          case 0x351c:
    385422          case 0x350e:
     423          case 0x360e:
     424          case 0x368e:
    386425          case 0x3800:
    387426          case 0x4100:
     
    391430          case 0x423e:
    392431          case 0x4230:
     432          case 0x4300:
     433          case 0x430e:
    393434          case 0x6000:
    394435          case 0x6100:
     
    419460          case 0x351c:
    420461          case 0x350e:
     462          case 0x360e:
     463          case 0x368e:
    421464          case 0x3800:
    422465          case 0x4100:
     
    426469          case 0x423e:
    427470          case 0x4230:
     471          case 0x4300:
     472          case 0x430e:
    428473          case 0x6000:
    429474          case 0x6100:
     
    446491        void            *sp, *p, *ep;
    447492        daginf_t        *dip;
     493        int             buf_size=0;
     494
     495        dagpbm_t        *pbm = (dagpbm_t *)(herd[dagfd].iom +
     496                                        dag_info(dagfd)->pbm_base);
    448497
    449498        dip = dag_info(dagfd);
     499
     500        /* check pbm space is configured */
     501        dagpbmcheck(dagfd);
     502
     503        /*
     504         * Get the buffer size from the card if possible, since
     505         * if rx/tx is configured only part of the memory space
     506         * is used for rx.
     507         * XXX There is currently no way to tell dag_mmap which
     508         * half you want, always supplies first rx region.
     509         */
     510        if(dag_info(dagfd)->soft_caps.pbm) {
     511                buf_size = pbm->memsize;
     512        } else {
     513                buf_size = dip->buf_size;
     514        }
     515
    450516        /*
    451517         * Start off with a fake mapping to allocate contiguous virtual
     
    456522         * problem.
    457523         */
    458         if((sp = mmap(NULL, 2*dip->buf_size, PROT_READ | PROT_WRITE,
     524        if((sp = mmap(NULL, 2*buf_size, PROT_READ | PROT_WRITE,
    459525                        MAP_ANON|MAP_SHARED, -1, 0)) == MAP_FAILED)
    460526                return MAP_FAILED;
     
    462528         * Now map the real buffer, 1st round.
    463529         */
    464         if((p = mmap(sp, dip->buf_size, PROT_READ | PROT_WRITE,
     530        if((p = mmap(sp, buf_size, PROT_READ | PROT_WRITE,
    465531                        MAP_FIXED|MAP_SHARED, dagfd, 0)) == MAP_FAILED)
    466532                return MAP_FAILED;
     
    470536         * top of the memory buffer.
    471537         */
    472         if((ep = mmap(sp+dip->buf_size, dip->buf_size, PROT_READ|PROT_WRITE,
     538        if((ep = mmap(sp+buf_size, buf_size, PROT_READ|PROT_WRITE,
    473539                        MAP_FIXED|MAP_SHARED, dagfd, 0)) == MAP_FAILED)
    474540                return MAP_FAILED;
     
    494560         * zero.
    495561         */
    496         if(*oldoffset >= dag_info(dagfd)->buf_size)
    497                 *oldoffset -= dag_info(dagfd)->buf_size;
     562        if(*oldoffset >= herd[dagfd].rx_memsize)
     563                *oldoffset -= herd[dagfd].rx_memsize;
    498564
    499565        if(dag_info(dagfd)->soft_caps.pbm) {
     
    527593        }
    528594
    529         if(offset > dag_info(dagfd)->buf_size)
     595        if(offset > herd[dagfd].rx_memsize)
    530596                panic("dagapi: dag_offset internal error offset=0x%x\n", offset);
    531597
    532598        if(offset < *oldoffset)
    533                 offset += dag_info(dagfd)->buf_size;
     599                offset += herd[dagfd].rx_memsize;
    534600
    535601        return offset;
     
    602668
    603669                pbm->bursttmo = 0xffff;
    604                 pbm->memaddr = dag_info(dagfd)->phy_addr; /* XXX curaddr bugfix */
    605                 pbm->memsize = dag_info(dagfd)->buf_size;
    606670                pbm->segsize = (1024*1024);     /* paranoia, not that it matters */
    607                 pbm->wrsafe = dag_info(dagfd)->phy_addr + WRSAFE(dagfd, dag_info(dagfd)->buf_size);
     671                pbm->wrsafe = dag_info(dagfd)->phy_addr + WRSAFE(dagfd, herd[dagfd].rx_memsize);
    608672                pbm->cs = (DAGPBM_SYNCL2R|DAGPBM_AUTOWRAP|herd[dagfd].byteswap);
    609673
     
    613677
    614678        if(armcode(dagfd)) {
    615                 usleep(1); /* seems necessary to let pbm settle? */
    616                 IOM(0x404) |=  (1<<23);         /* framer now held in reset */
    617679                IOM(0x88)  |= (1<<31);          /* L2RESET, will auto deassert */
    618680
     
    629691                while(ToHM2 != 2)
    630692                        usleep(1);
    631                 IOM(0x404) &= ~(1<<23);         /* deassert framer reset */
    632693        }
    633694
     
    678739
    679740        pbm->bursttmo = 0xffff;
    680         pbm->memaddr = dag_info(dagfd)->phy_addr; /* XXX curaddr bugfix */
    681         pbm->memsize = dag_info(dagfd)->buf_size;
    682741        pbm->segsize = (1024*1024);     /* paranoia, not that it matters */
    683         pbm->wrsafe = dag_info(dagfd)->phy_addr + WRSAFE(dagfd, dag_info(dagfd)->buf_size);
     742        pbm->wrsafe = dag_info(dagfd)->phy_addr + WRSAFE(dagfd, herd[dagfd].rx_memsize);
    684743        pbm->cs = (DAGPBM_SYNCL2R|DAGPBM_AUTOWRAP|herd[dagfd].byteswap);
    685744
     
    705764
    706765        return 0;
     766}
     767
     768static void
     769dagpbmcheck(int dagfd)
     770{
     771        dagpbm_t        *pbm = (dagpbm_t *)(herd[dagfd].iom +
     772                                        dag_info(dagfd)->pbm_base);
     773       
     774        if(dag_info(dagfd)->soft_caps.pbm) {
     775                if((pbm->memaddr & 0xfffffff8) == 0xfffffff8) {
     776                        /* pbm unconfigured*/
     777                        pbm->memaddr = dag_info(dagfd)->phy_addr; /* XXX curaddr bugfix */
     778                        pbm->memsize = dag_info(dagfd)->buf_size;
     779                }
     780                /* XXX cache actual hole location for dag_offset etc*/
     781                herd[dagfd].rx_memaddr = pbm->memaddr;
     782                herd[dagfd].rx_memsize = pbm->memsize;
     783        } else {
     784                /* XXX cache actual hole location for dag_offset etc*/
     785                herd[dagfd].rx_memaddr = dag_info(dagfd)->phy_addr;
     786                herd[dagfd].rx_memsize = dag_info(dagfd)->buf_size;
     787        }
    707788}
    708789
  • lib/dagopts.c

    rb36a3b7 r59c31da  
    309309        yy_c_buf_p = yy_cp;
    310310
    311 #define YY_NUM_RULES 57
    312 #define YY_END_OF_BUFFER 58
    313 static yyconst short int yy_accept[235] =
     311#define YY_NUM_RULES 65
     312#define YY_END_OF_BUFFER 66
     313static yyconst short int yy_accept[271] =
    314314    {   0,
    315         0,    0,   58,   55,   56,   57,   55,   55,   55,   55,
    316        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    317        55,   55,   55,   13,   55,   55,   55,   55,   55,   55,
    318        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    319        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    320        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    321        55,   55,   55,   55,   55,   14,   28,   55,   55,   55,
    322        55,   55,    2,   55,   29,   30,   55,   55,   55,   55,
    323        32,   12,   33,   55,   55,   55,   55,   55,   55,   36,
    324        37,   38,   55,   55,   55,   25,   55,   55,   55,   55,
    325 
    326        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    327         5,    6,   55,   55,   55,    3,   55,    4,   55,   55,
    328        55,   55,   55,   55,   55,   55,   20,   19,   55,   55,
    329        55,   15,   55,   55,   55,   55,   55,   55,   55,   55,
    330        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    331        55,    7,   55,    5,    6,    8,   44,   45,   55,   55,
    332        55,   55,   55,   55,   55,   55,   55,   22,   21,   55,
    333        10,   11,   55,   55,   55,   55,   27,   34,   35,   23,
    334        41,   43,   55,   55,   55,   55,   29,   55,    7,    9,
    335         8,   55,   39,   55,   55,   17,   55,   55,   55,   55,
    336 
    337        55,   55,   55,   54,   55,   16,   40,   42,   55,    9,
    338        55,   46,   55,   49,   55,   48,   26,   55,    1,   31,
    339        51,   52,   55,   55,   55,   55,   55,   50,   55,   18,
    340        53,   24,   47,    0
     315        0,    0,   66,   63,   64,   65,   63,   63,   63,   63,
     316       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
     317       63,   63,   63,   63,   13,   63,   63,   63,   63,   63,
     318       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
     319       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
     320       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
     321       63,   63,   58,   63,   63,   63,   63,   59,   63,   63,
     322       14,   30,   63,   63,   63,   63,   63,    2,   63,   31,
     323       32,   63,   63,   63,   63,   34,   12,   35,   63,   63,
     324       63,   27,   63,   63,   63,   63,   63,   38,   39,   40,
     325
     326       63,   63,   63,   26,   63,   63,   63,   63,   63,   63,
     327       63,   63,   63,   63,   63,   63,   63,   63,    5,    6,
     328       63,   63,   63,    3,   63,    4,   63,   63,   63,   63,
     329       63,   63,   63,   63,   63,   63,   63,   63,   15,   21,
     330       20,   63,   63,   63,   16,   63,   63,   63,   63,   63,
     331       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
     332       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
     333        7,   63,    5,    6,    8,   46,   47,   63,   63,   63,
     334       63,   60,   63,   63,   63,   63,   63,   63,   63,   63,
     335       23,   22,   63,   10,   11,   63,   63,   63,   63,   63,
     336
     337       29,   36,   37,   24,   63,   43,   45,   63,   63,   63,
     338       63,   31,   63,    7,    9,    8,   63,   41,   63,   63,
     339       63,   63,   18,   63,   63,   63,   63,   63,   63,   63,
     340       63,   63,   62,   63,   53,   17,   42,   44,   63,    9,
     341       63,   58,   48,   63,   63,   54,   63,   59,   50,   28,
     342       63,   63,    1,   33,   56,   57,   63,   63,   63,   52,
     343       63,   63,   51,   55,   63,   19,   61,   25,   49,    0
    341344    } ;
    342345
     
    356359       18,   19,   20,   21,   22,    1,   23,   24,   25,   26,
    357360       27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
     361       37,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    358362        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    359363        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    363367        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    364368        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    365         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    366369
    367370        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    373376    } ;
    374377
    375 static yyconst int yy_meta[37] =
     378static yyconst int yy_meta[38] =
    376379    {   0,
    377380        1,    2,    2,    1,    1,    1,    1,    1,    1,    1,
    378381        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    379382        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    380         1,    1,    1,    1,    1,    1
     383        1,    1,    1,    1,    1,    1,    1
    381384    } ;
    382385
    383 static yyconst short int yy_base[236] =
     386static yyconst short int yy_base[272] =
    384387    {   0,
    385         0,    0,  304,    0,  305,  305,  299,   20,  272,   27,
    386        18,   24,  281,   40,   49,   42,  284,   34,   48,   44,
    387       263,  284,    0,  293,  271,  273,  276,  276,  278,  275,
    388       265,  257,  272,  257,  267,  254,  257,  269,  258,  260,
    389       256,  243,  264,  246,  258,   55,   73,  268,  243,  237,
    390       254,  255,   71,   86,   53,  239,  253,  233,  236,  238,
    391       235,   65,  250,  235,  232,    0,    0,  225,  244,  235,
    392       227,  227,    0,  229,   93,    0,  241,   90,  226,  238,
    393         0,    0,    0,  234,  229,  232,  225,  219,  231,    0,
    394         0,    0,  214,   62,  221,    0,   75,  214,   93,  214,
    395 
    396       226,  221,   96,  105,  218,   89,   95,  100,  203,  224,
    397       117,  221,  225,  199,  208,    0,  203,    0,  214,  208,
    398       216,  195,  202,  195,  203,  201,    0,    0,  206,  192,
    399       208,    0,  211,  214,  186,  204,  204,  192,  198,  188,
    400       183,  188,  187,  186,  191,  179,  191,  182,  189,  173,
    401       189,  186,  195,    0,    0,  184,    0,    0,  185,  166,
    402       165,  171,  177,  181,  160,  160,  173,    0,    0,  165,
    403         0,    0,  165,  158,  135,  169,    0,    0,    0,    0,
    404         0,    0,  156,  161,  160,  152,    0,  166,    0,  165,
    405         0,  155,    0,  148,  163,    0,  144,  146,  145,  149,
    406 
    407       122,  104,  118,    0,  103,    0,    0,    0,  121,    0,
    408       117,    0,  106,    0,  113,    0,    0,  101,    0,    0,
    409         0,    0,  153,   98,  103,  162,   68,    0,   52,    0,
    410         0,    0,    0,  305,   37
     388        0,    0,  360,    0,  361,  361,  355,   21,  328,   28,
     389       19,   25,   35,   45,   50,   44,  341,   38,   56,   57,
     390      320,  341,  340,    0,  349,  327,  329,  332,  332,  334,
     391      331,  321,  313,  328,  313,  323,  310,  313,  325,  314,
     392      316,  312,  299,  320,  313,   36,  314,  305,   61,   80,
     393      323,  298,  292,  309,  310,   79,   83,   72,  294,  308,
     394      288,  291,   74,  291,  293,   94,  305,   87,  288,  291,
     395      312,    0,  279,  298,  289,  281,  281,    0,  283,  111,
     396        0,  295,  103,  280,  292,    0,    0,    0,  288,  283,
     397      283,    0,  285,  278,  281,  271,  283,    0,    0,    0,
     398
     399      266,  102,  273,    0,   90,  266,  108,  266,  278,  105,
     400      112,  123,  271,  107,  113,  117,  256,  277,  134,  274,
     401      278,  252,  261,    0,  256,    0,  267,  258,  260,  246,
     402      267,  250,  245,  252,  245,  250,  252,  250,    0,    0,
     403        0,  255,  241,  257,    0,  260,  263,  236,  234,  252,
     404      252,  240,  246,  236,  241,  230,  235,  245,  233,  232,
     405      237,  225,  237,  228,  235,  219,  218,  220,  233,  218,
     406      229,  238,    0,    0,  227,    0,    0,  228,  209,  216,
     407      207,    0,  213,  205,  218,  222,  201,  209,  200,  213,
     408        0,    0,  205,    0,    0,  199,  204,  197,  153,  208,
     409
     410        0,    0,    0,    0,  162,    0,    0,  195,  200,  199,
     411      191,  190,  204,    0,  203,    0,  193,    0,  180,  185,
     412      200,  201,    0,  171,  182,  175,  180,  129,  139,  131,
     413      120,  134,    0,  120,    0,    0,    0,    0,  135,    0,
     414      132,    0,    0,  121,  180,    0,  126,    0,    0,    0,
     415      112,   71,    0,    0,    0,    0,  189,   63,   64,    0,
     416      198,   57,    0,    0,   50,    0,    0,    0,    0,  361,
     417       38
    411418    } ;
    412419
    413 static yyconst short int yy_def[236] =
     420static yyconst short int yy_def[272] =
    414421    {   0,
    415       234,    1,  234,  235,  234,  234,  235,  235,  235,  235,
    416       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    417       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    418       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    419       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    420       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    421       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    422       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    423       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    424       235,  235,  235,  235,  235,  235,    8,  235,  235,  235,
    425 
    426       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    427       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    428       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    429       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    430       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    431       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    432       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    433       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    434       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    435       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    436 
    437       235,  235,  235,  175,  235,  235,  235,  235,  235,  235,
    438       235,  235,  235,  197,  235,  235,  235,  235,  235,  235,
    439       235,  235,  235,  235,  235,  235,  235,  223,  235,  235,
    440       226,  235,  235,    0,  234
     422      270,    1,  270,  271,  270,  270,  271,  271,  271,  271,
     423      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     424      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     425      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     426      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     427      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     428      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     429      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     430      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     431      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     432
     433      271,  271,  271,  271,    8,  271,  271,  271,  271,  271,
     434      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     435      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     436      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     437      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     438      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     439      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     440      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     441      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     442      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     443
     444      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     445      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     446      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
     447      271,  271,  199,  271,  205,  271,  271,  271,  271,  271,
     448      271,  271,  271,  271,  271,  224,  271,  271,  271,  271,
     449      271,  271,  271,  271,  271,  271,  271,  271,  271,  245,
     450      245,  271,  271,  257,  271,  271,  261,  271,  271,    0,
     451      270
    441452    } ;
    442453
    443 static yyconst short int yy_nxt[342] =
     454static yyconst short int yy_nxt[399] =
    444455    {   0,
    445456        4,    5,    6,    4,    7,    4,    4,    4,    4,    4,
    446457        4,    4,    4,    8,    4,    9,   10,   11,   12,    4,
    447458       13,    4,    4,   14,   15,   16,   17,   18,    4,   19,
    448        20,   21,    4,   22,    4,    4,   25,   23,   26,   41,
    449        27,   28,   34,   38,   35,   42,   39,   29,   36,   40,
    450        30,   31,   32,   44,   48,   45,   37,   51,   55,   61,
    451        56,   58,   49,   52,   57,   59,  114,   62,   53,  233,
    452        46,   47,   88,   89,  115,   63,   90,   91,  122,  146,
    453       147,   50,  123,   60,   97,  232,   98,   99,  100,  101,
    454       111,  102,  112,  113,  103,  104,  105,  133,  106,  134,
    455 
    456       107,  108,  109,   80,  110,  136,   23,   23,   34,   44,
    457        48,   45,   59,   55,  150,   61,  221,  222,   49,   57,
    458       230,  229,  152,  151,  227,  226,   46,   47,  153,  225,
    459        60,  224,  154,  223,  220,  219,  218,   50,  204,  204,
    460       204,  204,  204,  204,  204,  204,  204,  214,  214,  214,
    461       214,  214,  214,  214,  214,  214,  228,  228,  228,  228,
    462       228,  228,  228,  228,  228,  231,  231,  231,  231,  231,
    463       231,  231,  231,  231,  217,  216,  215,  213,  212,  211,
    464       210,  136,  209,  208,  207,  206,  205,  203,  202,  201,
    465       200,  199,  198,  197,  196,  195,  194,  193,  192,  191,
    466 
    467       190,  189,  122,  188,  187,  186,  185,  184,  183,  182,
    468       181,  180,  179,  178,  177,  176,  175,  174,  173,  172,
    469       171,  170,  169,  168,  167,  166,  165,  164,  163,  162,
    470       161,  160,  159,  158,  157,  156,  155,   65,   64,   52,
    471        43,   41,   39,  149,  148,  145,  144,  143,  142,  141,
    472       140,  139,  138,  137,  135,  132,  131,  130,  129,  128,
    473       127,  126,  125,  124,  121,  120,  119,  118,  117,  116,
    474        96,   95,   94,   93,   92,   87,   86,   85,   84,   83,
    475        82,   81,   80,   79,   78,   77,   76,   75,   74,   73,
    476        72,   71,   70,   69,   68,   67,   66,   65,   64,   54,
    477 
    478        43,   33,   24,  234,    3,  234,  234,  234,  234,  234,
    479       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
    480       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
    481       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
    482       234
     459       20,   21,    4,   22,   23,    4,    4,   26,   24,   27,
     460       42,   28,   29,   35,   39,   36,   43,   40,   30,   37,
     461       41,   31,   32,   33,   44,   51,   45,   38,   46,   54,
     462       47,   92,   58,   52,   59,   55,   93,  269,   60,   61,
     463       56,   48,   64,   62,  268,   49,   50,   65,   96,   97,
     464       66,  266,   53,   98,   99,  122,  265,  119,   67,  120,
     465      121,   63,  105,  123,  106,  107,  108,  109,  263,  110,
     466
     467      128,  129,  111,  112,  113,  130,  114,  133,  115,  116,
     468      117,  134,  118,  136,  137,  146,   85,  147,  150,  162,
     469      163,   24,   24,   35,   44,  167,   45,   47,   51,  166,
     470       62,   58,   64,  255,  256,  262,   52,   60,  261,  171,
     471      169,  148,   49,   50,  259,  172,  258,  257,  168,  173,
     472      254,  253,  252,  251,  250,   53,  233,  233,  233,  233,
     473      233,  233,  233,  233,  233,  235,  235,  235,  235,  235,
     474      235,  235,  235,  235,  246,  246,  246,  246,  246,  246,
     475      246,  246,  246,  260,  260,  260,  260,  260,  260,  260,
     476      260,  260,  264,  264,  264,  264,  264,  264,  264,  264,
     477
     478      264,  267,  267,  267,  267,  267,  267,  267,  267,  267,
     479      249,  248,  247,  245,  244,  243,  242,  241,  240,  150,
     480      148,  239,  238,  237,  236,  234,  232,  231,  230,  229,
     481      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
     482      218,  217,  216,  215,  214,  137,  133,  129,   93,  213,
     483      212,  211,  210,  209,  208,  207,  206,  205,  204,  203,
     484       44,  202,  201,  200,  199,  198,  197,  196,  195,  194,
     485      193,  192,  191,  190,  189,  188,  187,  186,  185,  184,
     486      183,  182,  181,  180,  179,  178,  177,  176,  175,  174,
     487       69,  170,   55,   42,   40,  165,  164,  161,  160,  159,
     488
     489      158,  157,  156,  155,  154,  153,  152,  151,  149,  145,
     490      144,  143,  142,  141,  140,  139,   92,  138,  135,  132,
     491      131,  127,  126,  125,  124,  104,  103,  102,  101,  100,
     492       95,   94,   91,   90,   89,   88,   87,   86,   85,   84,
     493       83,   82,   81,   80,   79,   78,   77,   76,   75,   74,
     494       73,   72,   71,   70,   69,   68,   57,   34,   25,  270,
     495        3,  270,  270,  270,  270,  270,  270,  270,  270,  270,
     496      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
     497      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
     498      270,  270,  270,  270,  270,  270,  270,  270
     499
    483500    } ;
    484501
    485 static yyconst short int yy_chk[342] =
     502static yyconst short int yy_chk[399] =
    486503    {   0,
    487504        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    488505        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    489506        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    490         1,    1,    1,    1,    1,    1,    8,  235,    8,   12,
    491         8,    8,   10,   11,   10,   12,   11,    8,   10,   11,
    492         8,    8,    8,   14,   15,   14,   10,   16,   18,   20,
    493        18,   19,   15,   16,   18,   19,   55,   20,   16,  229,
    494        14,   14,   46,   46,   55,   20,   47,   47,   62,   94,
    495        94,   15,   62,   19,   53,  227,   53,   53,   53,   53,
    496        54,   53,   54,   54,   53,   53,   53,   75,   53,   75,
    497 
    498        53,   53,   53,   78,   53,   78,   97,   97,   99,  103,
    499       104,  103,  107,  106,   99,  108,  205,  205,  104,  106,
    500       225,  224,  111,  108,  218,  215,  103,  103,  111,  213,
    501       107,  211,  111,  209,  203,  202,  201,  104,  175,  175,
    502       175,  175,  175,  175,  175,  175,  175,  197,  197,  197,
    503       197,  197,  197,  197,  197,  197,  223,  223,  223,  223,
    504       223,  223,  223,  223,  223,  226,  226,  226,  226,  226,
    505       226,  226,  226,  226,  200,  199,  198,  195,  194,  192,
    506       190,  188,  186,  185,  184,  183,  176,  174,  173,  170,
    507       167,  166,  165,  164,  163,  162,  161,  160,  159,  156,
    508 
    509       153,  152,  151,  150,  149,  148,  147,  146,  145,  144,
    510       143,  142,  141,  140,  139,  138,  137,  136,  135,  134,
    511       133,  131,  130,  129,  126,  125,  124,  123,  122,  121,
    512       120,  119,  117,  115,  114,  113,  112,  110,  109,  105,
    513       102,  101,  100,   98,   95,   93,   89,   88,   87,   86,
    514        85,   84,   80,   79,   77,   74,   72,   71,   70,   69,
    515        68,   65,   64,   63,   61,   60,   59,   58,   57,   56,
    516        52,   51,   50,   49,   48,   45,   44,   43,   42,   41,
    517        40,   39,   38,   37,   36,   35,   34,   33,   32,   31,
    518        30,   29,   28,   27,   26,   25,   24,   22,   21,   17,
    519 
    520        13,    9,    7,    3,  234,  234,  234,  234,  234,  234,
    521       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
    522       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
    523       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
    524       234
     507        1,    1,    1,    1,    1,    1,    1,    8,  271,    8,
     508       12,    8,    8,   10,   11,   10,   12,   11,    8,   10,
     509       11,    8,    8,    8,   13,   15,   13,   10,   14,   16,
     510       14,   46,   18,   15,   18,   16,   46,  265,   18,   19,
     511       16,   14,   20,   19,  262,   14,   14,   20,   49,   49,
     512       20,  259,   15,   50,   50,   58,  258,   57,   20,   57,
     513       57,   19,   56,   58,   56,   56,   56,   56,  252,   56,
     514
     515       63,   63,   56,   56,   56,   63,   56,   66,   56,   56,
     516       56,   66,   56,   68,   68,   80,   83,   80,   83,  102,
     517      102,  105,  105,  107,  110,  111,  110,  111,  112,  107,
     518      115,  114,  116,  234,  234,  251,  112,  114,  247,  119,
     519      116,   80,  111,  111,  244,  119,  241,  239,  115,  119,
     520      232,  231,  230,  229,  228,  112,  199,  199,  199,  199,
     521      199,  199,  199,  199,  199,  205,  205,  205,  205,  205,
     522      205,  205,  205,  205,  224,  224,  224,  224,  224,  224,
     523      224,  224,  224,  245,  245,  245,  245,  245,  245,  245,
     524      245,  245,  257,  257,  257,  257,  257,  257,  257,  257,
     525
     526      257,  261,  261,  261,  261,  261,  261,  261,  261,  261,
     527      227,  226,  225,  222,  221,  220,  219,  217,  215,  213,
     528      212,  211,  210,  209,  208,  200,  198,  197,  196,  193,
     529      190,  189,  188,  187,  186,  185,  184,  183,  181,  180,
     530      179,  178,  175,  172,  171,  170,  169,  168,  167,  166,
     531      165,  164,  163,  162,  161,  160,  159,  158,  157,  156,
     532      155,  154,  153,  152,  151,  150,  149,  148,  147,  146,
     533      144,  143,  142,  138,  137,  136,  135,  134,  133,  132,
     534      131,  130,  129,  128,  127,  125,  123,  122,  121,  120,
     535      118,  117,  113,  109,  108,  106,  103,  101,   97,   96,
     536
     537       95,   94,   93,   91,   90,   89,   85,   84,   82,   79,
     538       77,   76,   75,   74,   73,   71,   70,   69,   67,   65,
     539       64,   62,   61,   60,   59,   55,   54,   53,   52,   51,
     540       48,   47,   45,   44,   43,   42,   41,   40,   39,   38,
     541       37,   36,   35,   34,   33,   32,   31,   30,   29,   28,
     542       27,   26,   25,   23,   22,   21,   17,    9,    7,    3,
     543      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
     544      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
     545      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
     546      270,  270,  270,  270,  270,  270,  270,  270
     547
    525548    } ;
    526549
     
    773796                                {
    774797                                yy_current_state = (int) yy_def[yy_current_state];
    775                                 if ( yy_current_state >= 235 )
     798                                if ( yy_current_state >= 271 )
    776799                                        yy_c = yy_meta[(unsigned int) yy_c];
    777800                                }
     
    779802                        ++yy_cp;
    780803                        }
    781                 while ( yy_base[yy_current_state] != 305 );
     804                while ( yy_base[yy_current_state] != 361 );
    782805
    783806yy_find_action:
     
    878901YY_RULE_SETUP
    879902#line 40 "dagopts.l"
     903{ return T_ETH_1000; }
     904        YY_BREAK
     905case 16:
     906YY_RULE_SETUP
     907#line 41 "dagopts.l"
    880908{ return T_ETH_AUTO; }
    881909        YY_BREAK
    882 case 16:
    883 YY_RULE_SETUP
    884 #line 41 "dagopts.l"
     910case 17:
     911YY_RULE_SETUP
     912#line 42 "dagopts.l"
    885913{ return (yytext[0]!='n') ? T_SONET_MASTER : T_SONET_SLAVE; }
    886914        YY_BREAK
    887 case 17:
    888 YY_RULE_SETUP
    889 #line 42 "dagopts.l"
     915case 18:
     916YY_RULE_SETUP
     917#line 43 "dagopts.l"
    890918{ return (yytext[0]!='n') ? T_SONET_SLAVE  : T_SONET_MASTER; }
    891919        YY_BREAK
    892 case 18:
    893 YY_RULE_SETUP
    894 #line 43 "dagopts.l"
     920case 19:
     921YY_RULE_SETUP
     922#line 44 "dagopts.l"
    895923{ yylval = (yytext[0]!='n') ; return T_SONET_SCRAMBLE; }
    896924        YY_BREAK
    897 case 19:
    898 YY_RULE_SETUP
    899 #line 44 "dagopts.l"
     925case 20:
     926YY_RULE_SETUP
     927#line 45 "dagopts.l"
    900928{ yylval = (yytext[0]!='n') ; return T_ATM_ADD_HEC; }
    901929        YY_BREAK
    902 case 20:
    903 YY_RULE_SETUP
    904 #line 45 "dagopts.l"
     930case 21:
     931YY_RULE_SETUP
     932#line 46 "dagopts.l"
    905933{ yylval = (yytext[0]!='n') ; return T_ATM_FIX_HEC; }
    906934        YY_BREAK
    907 case 21:
    908 YY_RULE_SETUP
    909 #line 46 "dagopts.l"
     935case 22:
     936YY_RULE_SETUP
     937#line 47 "dagopts.l"
    910938{ yylval = (yytext[0]!='n') ; return T_ATM_PASS_HEC; }
    911939        YY_BREAK
    912 case 22:
    913 YY_RULE_SETUP
    914 #line 47 "dagopts.l"
     940case 23:
     941YY_RULE_SETUP
     942#line 48 "dagopts.l"
    915943{ yylval = (yytext[0]!='n') ; return T_ATM_PASS_IDLE; }
    916944        YY_BREAK
    917 case 23:
    918 YY_RULE_SETUP
    919 #line 48 "dagopts.l"
     945case 24:
     946YY_RULE_SETUP
     947#line 49 "dagopts.l"
    920948{ yylval = (yytext[0]!='n') ; return T_ATM_LCELL; }
    921949        YY_BREAK
    922 case 24:
    923 YY_RULE_SETUP
    924 #line 49 "dagopts.l"
     950case 25:
     951YY_RULE_SETUP
     952#line 50 "dagopts.l"
    925953{ yylval = (yytext[0]!='n') ; return T_ATM_PLOAD_SCRAMBLE; }
    926954        YY_BREAK
    927 case 25:
    928 YY_RULE_SETUP
    929 #line 50 "dagopts.l"
     955case 26:
     956YY_RULE_SETUP
     957#line 51 "dagopts.l"
    930958{ yylval = (yytext[1]!='o') ; return T_ETH_NIC; }
    931959        YY_BREAK
    932 case 26:
    933 YY_RULE_SETUP
    934 #line 51 "dagopts.l"
     960case 27:
     961YY_RULE_SETUP
     962#line 52 "dagopts.l"
     963{ yylval = (yytext[0]!='l') ; return T_ETH_WAN; }
     964        YY_BREAK
     965case 28:
     966YY_RULE_SETUP
     967#line 53 "dagopts.l"
    935968{ yylval = (yytext[0]!='n') ; return T_GPP_VARLEN; }
    936969        YY_BREAK
    937 case 27:
    938 YY_RULE_SETUP
    939 #line 52 "dagopts.l"
     970case 29:
     971YY_RULE_SETUP
     972#line 54 "dagopts.l"
    940973{ yylval = 0 ; return T_GPP_VARLEN; }
    941974        YY_BREAK
    942 case 28:
    943 YY_RULE_SETUP
    944 #line 53 "dagopts.l"
     975case 30:
     976YY_RULE_SETUP
     977#line 55 "dagopts.l"
    945978{ yylval = (yytext[0]!='n') ; return T_LINK_ADM; }
    946979        YY_BREAK
    947 case 29:
    948 YY_RULE_SETUP
    949 #line 54 "dagopts.l"
     980case 31:
     981YY_RULE_SETUP
     982#line 56 "dagopts.l"
    950983{ yylval = (yytext[0]!='n') ; return T_LINK_CRC; }
    951984        YY_BREAK
    952 case 30:
    953 YY_RULE_SETUP
    954 #line 55 "dagopts.l"
     985case 32:
     986YY_RULE_SETUP
     987#line 57 "dagopts.l"
    955988{ yylval = (yytext[0]!='n') ; return T_LINK_DCR; }
    956989        YY_BREAK
    957 case 31:
    958 YY_RULE_SETUP
    959 #line 56 "dagopts.l"
     990case 33:
     991YY_RULE_SETUP
     992#line 58 "dagopts.l"
    960993{ yylval = (yytext[0]!='n') ; return T_LINK_DISCARD; }
    961994        YY_BREAK
    962 case 32:
    963 YY_RULE_SETUP
    964 #line 57 "dagopts.l"
     995case 34:
     996YY_RULE_SETUP
     997#line 59 "dagopts.l"
    965998{ yylval = (yytext[0]!='n') ; return T_LINK_EQL; }
    966999        YY_BREAK
    967 case 33:
    968 YY_RULE_SETUP
    969 #line 58 "dagopts.l"
     1000case 35:
     1001YY_RULE_SETUP
     1002#line 60 "dagopts.l"
    9701003{ yylval = (yytext[0]!='n') ; return T_LINK_FCL; }
    9711004        YY_BREAK
    972 case 34:
    973 YY_RULE_SETUP
    974 #line 59 "dagopts.l"
     1005case 36:
     1006YY_RULE_SETUP
     1007#line 61 "dagopts.l"
    9751008{ yylval = (yytext[0]!='n') ; return T_LINK_HGAIN; }
    9761009        YY_BREAK
    977 case 35:
    978 YY_RULE_SETUP
    979 #line 60 "dagopts.l"
     1010case 37:
     1011YY_RULE_SETUP
     1012#line 62 "dagopts.l"
    9801013{ yylval = (yytext[0]!='n') ; return T_LINK_LASER; }
    9811014        YY_BREAK
    982 case 36:
    983 YY_RULE_SETUP
    984 #line 61 "dagopts.l"
     1015case 38:
     1016YY_RULE_SETUP
     1017#line 63 "dagopts.l"
    9851018{ yylval = (yytext[0]!='n') ; return T_LINK_LT0; }
    9861019        YY_BREAK
    987 case 37:
    988 YY_RULE_SETUP
    989 #line 62 "dagopts.l"
     1020case 39:
     1021YY_RULE_SETUP
     1022#line 64 "dagopts.l"
    9901023{ yylval = (yytext[0]!='n') ; return T_LINK_LT1; }
    9911024        YY_BREAK
    992 case 38:
    993 YY_RULE_SETUP
    994 #line 63 "dagopts.l"
     1025case 40:
     1026YY_RULE_SETUP
     1027#line 65 "dagopts.l"
    9951028{ yylval = (yytext[0]!='n') ; return T_LINK_M23; }
    9961029        YY_BREAK
    997 case 39:
    998 YY_RULE_SETUP
    999 #line 64 "dagopts.l"
     1030case 41:
     1031YY_RULE_SETUP
     1032#line 66 "dagopts.l"
    10001033{ yylval = (yytext[0]!='n') ; return T_LINK_RESET; }
    1001         YY_BREAK
    1002 case 40:
    1003 #line 66 "dagopts.l"
    1004 case 41:
    1005 YY_RULE_SETUP
    1006 #line 66 "dagopts.l"
    1007 { yylval = (yytext[0]!='n') ; return T_LINK_LSEQL; }
    10081034        YY_BREAK
    10091035case 42:
     
    10121038YY_RULE_SETUP
    10131039#line 68 "dagopts.l"
     1040{ yylval = (yytext[0]!='n') ; return T_LINK_LSEQL; }
     1041        YY_BREAK
     1042case 44:
     1043#line 70 "dagopts.l"
     1044case 45:
     1045YY_RULE_SETUP
     1046#line 70 "dagopts.l"
    10141047{ yylval = (yytext[0]!='n') ; return T_LINK_LSFCL; }
    10151048        YY_BREAK
    1016 case 44:
    1017 YY_RULE_SETUP
    1018 #line 69 "dagopts.l"
     1049case 46:
     1050YY_RULE_SETUP
     1051#line 71 "dagopts.l"
    10191052{ yylval = (yytext[0]!='n') ; return T_POS_MAXCHECK; }
    10201053        YY_BREAK
    1021 case 45:
    1022 YY_RULE_SETUP
    1023 #line 70 "dagopts.l"
     1054case 47:
     1055YY_RULE_SETUP
     1056#line 72 "dagopts.l"
    10241057{ yylval = (yytext[0]!='n') ; return T_POS_MINCHECK; }
    10251058        YY_BREAK
    1026 case 46:
    1027 YY_RULE_SETUP
    1028 #line 71 "dagopts.l"
     1059case 48:
     1060YY_RULE_SETUP
     1061#line 73 "dagopts.l"
    10291062{ yylval = (yytext[0]!='n') ; return T_POS_RXPKTS; }
    10301063        YY_BREAK
    1031 case 47:
    1032 YY_RULE_SETUP
    1033 #line 72 "dagopts.l"
     1064case 49:
     1065YY_RULE_SETUP
     1066#line 74 "dagopts.l"
    10341067{ yylval = (yytext[0]!='n') ; return T_POS_SCRAMBLE; }
    10351068        YY_BREAK
    1036 case 48:
    1037 YY_RULE_SETUP
    1038 #line 73 "dagopts.l"
     1069case 50:
     1070YY_RULE_SETUP
     1071#line 75 "dagopts.l"
    10391072{ yylval = (yytext[0]!='n') ; return T_POS_TXPKTS; }
    10401073        YY_BREAK
    1041 case 49:
    1042 YY_RULE_SETUP
    1043 #line 74 "dagopts.l"
     1074case 51:
     1075YY_RULE_SETUP
     1076#line 76 "dagopts.l"
     1077{ yylval = (yytext[0]!='n') ; return T_POS_CRCSTRIP; }
     1078        YY_BREAK
     1079case 52:
     1080YY_RULE_SETUP
     1081#line 77 "dagopts.l"
     1082{ yylval = strtoul(&yytext[6], NULL, 0) ; return T_POS_MINLEN; }
     1083        YY_BREAK
     1084case 53:
     1085YY_RULE_SETUP
     1086#line 78 "dagopts.l"
     1087{ yylval = strtoul(&yytext[5], NULL, 0) ; return T_POS_MAXLEN; }
     1088        YY_BREAK
     1089case 54:
     1090YY_RULE_SETUP
     1091#line 79 "dagopts.l"
    10441092{ yylval = strtoul(&yytext[5], NULL, 0) ; return T_GPP_SLEN; }
    10451093        YY_BREAK
    1046 case 50:
    1047 YY_RULE_SETUP
    1048 #line 75 "dagopts.l"
     1094case 55:
     1095YY_RULE_SETUP
     1096#line 80 "dagopts.l"
    10491097{ yylval = strtoul(&yytext[7], NULL, 0) ; return T_ATM_NCELLS; }
    10501098        YY_BREAK
    1051 case 51:
    1052 YY_RULE_SETUP
    1053 #line 76 "dagopts.l"
     1099case 56:
     1100YY_RULE_SETUP
     1101#line 81 "dagopts.l"
    10541102{ yylval = (yytext[0]!='d') ; return T_GPP_ENABLE_A; }
    10551103        YY_BREAK
    1056 case 52:
    1057 YY_RULE_SETUP
    1058 #line 77 "dagopts.l"
     1104case 57:
     1105YY_RULE_SETUP
     1106#line 82 "dagopts.l"
    10591107{ yylval = (yytext[0]!='d') ; return T_GPP_ENABLE_B; }
    10601108        YY_BREAK
    1061 case 53:
    1062 YY_RULE_SETUP
    1063 #line 78 "dagopts.l"
    1064 
    1065         YY_BREAK
    1066 case 54:
    1067 YY_RULE_SETUP
    1068 #line 79 "dagopts.l"
    1069 
    1070         YY_BREAK
    1071 case 55:
    1072 YY_RULE_SETUP
    1073 #line 80 "dagopts.l"
     1109case 58:
     1110YY_RULE_SETUP
     1111#line 83 "dagopts.l"
     1112{ yylval = 0x1; return T_PBM_MEMCONFIG; }
     1113        YY_BREAK
     1114case 59:
     1115YY_RULE_SETUP
     1116#line 84 "dagopts.l"
     1117{ yylval = 0x2; return T_PBM_MEMCONFIG; }
     1118        YY_BREAK
     1119case 60:
     1120YY_RULE_SETUP
     1121#line 85 "dagopts.l"
     1122{ yylval = 0x3; return T_PBM_MEMCONFIG; }
     1123        YY_BREAK
     1124case 61:
     1125YY_RULE_SETUP
     1126#line 86 "dagopts.l"
     1127
     1128        YY_BREAK
     1129case 62:
     1130YY_RULE_SETUP
     1131#line 87 "dagopts.l"
     1132
     1133        YY_BREAK
     1134case 63:
     1135YY_RULE_SETUP
     1136#line 88 "dagopts.l"
    10741137{ return T_ERROR; }
    10751138        YY_BREAK
    1076 case 56:
    1077 YY_RULE_SETUP
    1078 #line 81 "dagopts.l"
    1079 
    1080         YY_BREAK
    1081 case 57:
    1082 YY_RULE_SETUP
    1083 #line 82 "dagopts.l"
     1139case 64:
     1140YY_RULE_SETUP
     1141#line 89 "dagopts.l"
     1142
     1143        YY_BREAK
     1144case 65:
     1145YY_RULE_SETUP
     1146#line 90 "dagopts.l"
    10841147ECHO;
    10851148        YY_BREAK
     
    13751438                        {
    13761439                        yy_current_state = (int) yy_def[yy_current_state];
    1377                         if ( yy_current_state >= 235 )
     1440                        if ( yy_current_state >= 271 )
    13781441                                yy_c = yy_meta[(unsigned int) yy_c];
    13791442                        }
     
    14101473                {
    14111474                yy_current_state = (int) yy_def[yy_current_state];
    1412                 if ( yy_current_state >= 235 )
     1475                if ( yy_current_state >= 271 )
    14131476                        yy_c = yy_meta[(unsigned int) yy_c];
    14141477                }
    14151478        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    1416         yy_is_jam = (yy_current_state == 234);
     1479        yy_is_jam = (yy_current_state == 270);
    14171480
    14181481        return yy_is_jam ? 0 : yy_current_state;
     
    19732036        }
    19742037#endif
    1975 #line 82 "dagopts.l"
     2038#line 90 "dagopts.l"
    19762039
    19772040
  • lib/trace.c

    r7e55902 r59c31da  
    139139        double start_ts;
    140140};
     141
     142#define RP_BUFSIZE 65536
    141143
    142144#define URI_PROTO_LINE 16
     
    446448static int trace_read(struct libtrace_t *libtrace, void *buffer, size_t len) {
    447449        int numbytes;
    448         static unsigned bottom = 0, top, diff, curr, scan;
     450        static unsigned bottom = 0, top, diff, curr = 0, scan;
    449451        static short lctr = 0;
    450452        struct dag_record_t *recptr = 0;
     
    477479                                switch(libtrace->format) {
    478480                                        case DAG:
     481                                               
    479482                                                top = dag_offset(libtrace->input.fd,
    480483                                                                &bottom,
    481484                                                                0);
    482485                                                diff = top - bottom;
    483                                                 errno = 0;
    484                                                 curr = 0;
    485486                                               
    486                                                 recptr = (dag_record_t *) ((void *)libtrace->buf + (bottom + curr));
    487 
    488                                                 memcpy(buffer,libtrace->buf + (bottom + curr),diff);
     487                                                //recptr = (dag_record_t *) ((void *)libtrace->buf + (bottom + curr));
     488                                                //rlen = ntohs(recptr->rlen);
     489
     490                                               
     491                                                memcpy(buffer,(void *)(libtrace->buf + (bottom + curr)),diff);
    489492                                               
    490493                                                //buffer=libtrace->buf + (bottom + curr);
    491494
    492495                                                numbytes=diff;
    493                                                
     496                                                bottom=top;
    494497                                               
    495498                                                break;
     
    524527 *
    525528 */
    526 #define RP_BUFSIZE 65536
    527529int trace_read_packet(struct libtrace_t *libtrace, struct libtrace_packet_t *packet) {
    528530        int numbytes;
     
    593595                                return numbytes;
    594596                        }
     597                        assert(libtrace->fifo);
    595598                        fifo_write(libtrace->fifo,buf,numbytes);
    596599
Note: See TracChangeset for help on using the changeset viewer.