Proceso completo

El proceso que me gustaria automatizar
[define] --> [generate] --> [run] --> [Results] (--> [validate])

define: todo lo que haga falta para especificar el modelo de simulacion.
Hoy en dia --> Topologia con esteroides
generate: a partir de la definicion genera todo lo necesario para el simulador
Hoy en dia --> pdm, parametros, (cpp con flujos), metricas, (results plots?)
run: compile and execute (¿de donde sale el T final? -> .stm )
Results: view plots for the results
validate: validate results are as expected.

Define


La especificacion que necesitamos hoy es ppalmente una topologia.

  1. La definicion tiene que estar toda en un mismo lugar (1 metodo), facil de entender y cambiar.
    1. Por ejemplo, si quiero agregar un nodo o un flujo, cambiar un parametro/priopiedad, etc.
  2. Poder tener varias definiciones guardadas para despues elegir cual genero.
    1. por ejemplo un TopologyA.rb y otra TopologyB.rb
Como especificar?
Por ejemplo como lo hace mininet (add host, add link, etc): http://mininet.org/walkthrough/#custom-topologies
OMNET++ definieron un lenguaje (.ned)
Muy similar a los intent tambien.

Por ejemplo:

# Routers
router1 = @topology.add_router 'MyRouter1'
router2 = @topology.add_router 'MyRouter2'
router2.ip = "127.43.52.6"
router2.bufferCapacity_bytes = 5*M

# Hosts
for i in 1..3
host = @topology.add_host "Host#{i}"
host.mac= "FF:FF:FF:FF"
end

#Links
link1 = @topology.add_link 'Link0', router1, 0, router2, 0
link1.bandwidth_bits_s = 10*G

# Flows
flow1 = @topology.add_flow [("Host1", 0), ("MyRouter1", 1), ("Host2", 0) ]
flow1.bits_per_s = 5*M
flow1.priority = 6

define con SDNs

Los controles de SDNs van a poder proveer algunas de las cosas necesarias para la especificacion (nodos, links, flujos, etc).
Otras cosas no las van a poder proveer (capacidad de los links, rate de los flujos, etc)

Si armamos la herramienta con cuidado entonces podemos tener:



Yo tomaria como decision:

  1. todas las propiedades que son esperables que me pueda dar un SDN, que sean obligatorias definir.
  2. Las que no, que sean propiedades opcionales con un valor por defecto
Ejemplos:
- El nombre de un nodo es obligatorio
- el source y el dst de un link es obligatorio
- el path de un flow es obligatorio
- la capacidad del link es opcional, default: 1Gbps?
- la capacidad de los buffers es opcional, default: INF=-1?
- el rate/prioridad de los flows es opcional, defaul=Exponential(0); priority=1

(por obligatorio quiero decir que no puedo crear una objeto sin definir esas propiedades)
(por opcional quiero decir que se pueden crear las entidades sin especificar estas propiedades y se les da un valor por defecto

Generate


generacion de los resources necesarios para correr la simulacion. Hoy en dia --> pdm, parametros, (cpp con flujos), metricas, (results plots?)
En general se los puede ver como archivos de texto
- Los archivos generados tiene que ser simples de cambiar
- por ejemplo que sea facil cambiar la estructura del pdm que se genera. Los nombres con los que se generan los parametros, etc.

Expected outcome / tests


Tener 3-4 topologias definidas (TopologyA, TopologyB, TopologyC..). Por ejemplo:
- TopologyA --> 1Felix:1SwRod
- TopologyB --> 2Felix:1SwRod
- TopologyC --> con un gran router central
- etc

Cada una con 2-3 set de parametros.
Por ejemplo:
TopologyA.1 -> sin QoS (todos los weight en 1)
TopologyA.2 -> con QoS (weight en las prioQueues)
TopologyA.3 -> nodos de control generando usando una Pareto


Para cada una de esas configuraciones (TopologyA.1, .... TopologyC.3) definir que metricas me interesan:
- latencia percibida en los SWROD
- latencia para los flujos de control, DCS, etc
- tamanio de las colas (maximo y avg)

-- MatiasAlejandroBonaventura - 2016-09-30

Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2016-09-30 - MatiasAlejandroBonaventura
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback