summaryrefslogtreecommitdiffstats
path: root/scripts/stl/burst_simple.py
blob: 87d7a5a1936a65589e306f69a9a5bf5ce4c8f8c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from trex_stl_lib.api import *

class STLS1(object):

    def __init__ (self):
        self.fsize  =64; # the size of the packet 


    def create_stream (self):

        # Create base packet and pad it to size
        size = self.fsize - 4; # HW will add 4 bytes ethernet FCS
        base_pkt =  Ether(dst="00:00:00:00:00:01")/IP(src="16.0.0.1",dst="48.0.0.1")/UDP(dport=12,sport=1025)
        pad = max(0, size - len(base_pkt)) * 'x'


        return STLProfile( [ STLStream( isg = 1.0, # start in delay in usec 
                                        packet = STLPktBuilder(pkt = base_pkt/pad),
                                        mode = STLTXSingleBurst( pps = 1000),
                                        )

                            ]).get_streams()


    def get_streams (self, direction = 0, **kwargs):
        # create 1 stream 
        return self.create_stream() 


# dynamic load - used for trex console or simulator
def register():
    return STLS1()
ass="cp">#define FMT_DATETIME_LEN 20 #define snprintf_nowarn(...) (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0) static char ts[FMT_DATETIME_LEN]; static char *timestamp(void) { time_t tv; struct tm *tm; time(&tv); tm = localtime(&tv); snprintf_nowarn(ts, FMT_DATETIME_LEN, FMT_DATETIME, tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900, tm->tm_hour, tm->tm_min, tm->tm_sec); return ts; } void _log_va(int level, const char *fmt, va_list ap) { char *prefix; FILE *f = log_conf.log_file ? log_conf.log_file : stdout; #if 0 if (!conf.log_system) return; #endif if (level > log_conf.log_level) return; switch (level) { case LOG_FATAL: prefix = "FATAL: "; break; case LOG_ERROR: prefix = "ERROR: "; break; case LOG_WARN: prefix = "WARNING: "; break; case LOG_INFO: prefix = ""; break; case LOG_DEBUG: prefix = "DEBUG: "; break; case LOG_TRACE: prefix = "TRACE: "; break; default: prefix = ""; break; } fprintf(f, "%s %s", timestamp(), prefix); vfprintf(f, fmt, ap); fprintf(f, "\n"); #ifdef DEBUG fflush(f); #endif } void _log(int level, const char *fmt, ...) { va_list ap; va_start(ap, fmt); _log_va(level, fmt, ap); va_end(ap); } #ifdef HAVE_BACKTRACE #include <execinfo.h> void print_trace(void) { void *array[32]; size_t size; size = backtrace(array, 32); fflush(conf.log_file); backtrace_symbols_fd(array, size, fileno(conf.log_file)); } #endif void fatal(char *fmt, ...) { va_list ap; va_start(ap, fmt); _log_va(LOG_FATAL, fmt, ap); va_end(ap); #ifdef HAVE_BACKTRACE print_trace(); #endif exit(200); }