GithubHelp home page GithubHelp logo

Comments (3)

tbarbette avatar tbarbette commented on July 17, 2024

You need to say how all the ToDevice should orchestrate the query of the 3 paths. For instance with a RoundRobinSched.

from click.

john-smith-77 avatar john-smith-77 commented on July 17, 2024

I tried with the dpdk device and add scheduler but I got this error

‘P1 :: PrioSched’ pull output 0 connected to ‘out0 :: ToDPDKDevice’ push input 0

modified code:

FromDPDKDevice(0) -> c0 :: Classifier(12/0806 20/0001,
                                     12/0806 20/0002,
                                     12/0800,
                                     -);

out0 :: ToDPDKDevice(1);

outtcp :: Queue(1024);
outudp :: Queue(1024);
outoth :: Queue(1024);

P1 :: PrioSched;
outtcp, outoth, outudp -> P1;
P1 -> out0;

// ARP request need to be answered, obviously
c0[0]
    -> Print("ARPResponder")
    -> ARPResponder(10.0.0.11 00:0c:29:64:45:48)
    -> outoth;

// ARP responses are handed to Linux
c0[1]
    -> Print("ToHost")
    -> Discard;
//    -> ToHost();

// Non-IP packets are dropped
c0[3]
    -> Print("Discard")
    -> Discard;

// Other IP packets. Split on UDP, TCP and rest
c0[2]
    -> Print("IP")
    -> Strip(14)
    -> CheckIPHeader()
    -> c1 :: Classifier(9/17, 9/06, -);


// TCP packets
c1[1] -> Print(TCP) -> outtcp;

// UDP packets
c1[0]
    -> Print(UDP)
    -> outudp;

// non-UDP and non-TCP packets
c1[2] -> Print(UNKNOWN) -> outoth;

and also I used round-robin

R1 :: RoundRobinSched;
P1 :: PrioSched;
outtcp, outoth, outudp -> R1;
R1 -> P1;

//outtcp, outudp, outoth -> P1;
P1 -> out0;

from click.

tbarbette avatar tbarbette commented on July 17, 2024

ToDPDKDevice is not a pull element, it's a push element, so you need push element before. RoundRobinSwitch is the "push" equivalent of RoundRobinSched. See page 18 of http://www-soc.lip6.fr/~genius/kohler-thesis.pdf for more information :)

from click.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.