# ********************************************************************** # # Sample file for the ixconfig application # # It is run at boot time and specifies # # - the interfaces that are to be started at system boot time # - the micro aces that are to be started at system boot time # - the regular aces that are to be started at system boot time # - bind configuration # - Shell commands to be run # # For each microace or ace it also lets us specify another # configuration file that can be used to configure that ace # # # ********************************************************************** # # First we specify the interfaces we want # # For the SI board # -- 0-15 are fast ethernet ports. 16 and 17 are gigabit ports # # # # Values for flags are # # 0x0 Unicast # 0x1 Promiscous Mode # 0x2 All Multicast packets are allowed # 0x3 Multicast packets in set only # interface 0 10.1.0.1 10.1.0.255 255.255.255.0 00:01:02:03:04:05 1 interface 1 10.2.0.1 10.2.0.255 255.255.255.0 00:01:02:03:04:06 1 interface 2 10.3.0.1 10.3.0.255 255.255.255.0 00:01:02:03:04:07 1 interface 3 10.4.0.1 10.4.0.255 255.255.255.0 00:01:02:03:04:08 1 #interface 4 10.5.0.1 10.5.0.255 255.255.255.0 00:01:02:03:04:09 1 #interface 5 10.6.0.1 10.6.0.255 255.255.255.0 00:01:02:03:04:10 1 #interface 6 10.7.0.1 10.7.0.255 255.255.255.0 00:01:02:03:04:11 1 #interface 7 10.8.0.1 10.8.0.255 255.255.255.0 00:01:02:03:04:12 1 #interface 8 10.9.0.1 10.9.0.255 255.255.255.0 00:01:02:03:04:13 1 #interface 9 10.10.0.1 10.10.0.255 255.255.255.0 00:01:02:03:04:14 1 #interface 10 10.11.0.1 10.11.0.255 255.255.255.0 00:01:02:03:04:15 1 #interface 11 10.12.0.1 10.12.0.255 255.255.255.0 00:01:02:03:04:16 1 #interface 12 10.13.0.1 10.13.0.255 255.255.255.0 00:01:02:03:04:17 1 #interface 13 10.14.0.1 10.14.0.255 255.255.255.0 00:01:02:03:04:18 1 #interface 14 10.15.0.1 10.15.0.255 255.255.255.0 00:01:02:03:04:19 1 #interface 15 10.16.0.1 10.16.0.255 255.255.255.0 00:01:02:03:04:20 1 #interface 16 10.17.0.1 10.17.0.255 255.255.255.0 00:01:02:03:04:21 1 #interface 17 10.18.0.1 10.18.0.255 255.255.255.0 00:01:02:03:04:22 1 # ********************************************************************* # Specify if we will be debugging with the workbench and downloading # code via it # # mode # # Values for mode are # # 0x0 No workbench. # 0x1 Download and debug via workbench mode 0 #mode 1 # ********************************************************************* # Next specify the Microcode files (UOF Files) # # # # Values for fileType are # # 0x0 Slow Ingress File # 0x1 Slow Egress File # 0x2 Fast Ingress File for Port 1 # 0x3 Fast Ingress File for Port 2 # 0x4 Fast Egress File # file 0 ./SlowIngressCount.uof file 1 ./SlowEgressRR.uof file 2 ./FastIngressCount-seq1.uof file 3 ./FastIngressCount-seq2.uof file 4 ./FastEgressFifo.uof # ********************************************************************** # # Now specify the microaces # # \ # # # runsOn can be -- 0 (RUNS_ON_INGRESS_SIDE) # -- 1 (RUNS_ON_EGRESS_SIDE) # # type can be -- 0 (unknown type) # 1 (Ingress) # 2 (egress) # 3 (L3) # 4 (L2) # 5 (input nat) # 6 (output nat) # # # The first parameter to every microace is the mask of microengines it # runs on. This is passed automatically by the application. The specify the rest of the command line parameters # # no config file for ingress and egress needed and no parameters microace ifaceInput ./ingressAce none 0 1 microace ifaceOutput ./egressAce none 1 2 # This microace will substitute for L3 for now # # options for CountMicroAce are # # -v : verbose # -target : send packets over the default target # -loop : loop back packets to the microblock # -blockname : name of the microblock # -port : output port to send to (default is dont change what's in # the ofnum of the packet) # microace CountMicroAce ./CountMicroAce 0 0 none -target -blockname COUNT # ********************************************************************** # # Now specify the regular aces like stack ace, nat control ace, spanning # tree ace etc # # # # # type can be -- 0 (unknown type) # 1 (Spanning Tree) # 2 (Nat control) # 3 (Stack ace) # # are any command line (argc/argv) parameters to be passed to # the ace # # ********************************************************************** # ********************************************************************** # # Now specify the all the bind operations # # # # Specify static for microace to microace static targets # bind static ifaceInput/default CountMicroAce bind static CountMicroAce/default ifaceOutput # ********************************************************************** # Now specify any shell commands. These will always be executed last # no matter where they are specified. Note that these are to be used # typically for things like adding arp entries to the linux stack. # # Below we add arp entries to the linux stack. This is needed because # the traffic generator we are using does not respond to ARP requests. # Otherwise this is typically not needed as long as the ARP target of # of the interface ace is bound to the stack ace # # Below we add a couple of arp entries # # Syntax is # # sh [command string to be executed] # # sh arp -s 10.1.0.2 01:02:03:04:05:06 # sh arp -s 10.2.0.2 02:02:03:04:05:06 # sh arp -s 10.3.0.2 03:02:03:04:05:06 # sh arp -s 10.4.0.2 04:02:03:04:05:06 # sh arp -s 10.5.0.2 05:02:03:04:05:06 # sh arp -s 10.6.0.2 06:02:03:04:05:06 # sh arp -s 10.7.0.2 07:02:03:04:05:06 # sh arp -s 10.8.0.2 08:02:03:04:05:06 # sh arp -s 10.9.0.2 09:02:03:04:05:06 # **********************************************************************