GithubHelp home page GithubHelp logo

pronghorn's People

Contributors

bmistree avatar jackowayed avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

zhangbiyun

pronghorn's Issues

Fairness tests should issue only adds

Currently, fairness test reads then writes to contended switch variables. This means that can have cases where after an event completes all other events that were waiting on the read lock get scheduled. However, only one acquires the write lock and all others get preempted. This can cause some slipping in fairness results. Instead, for test all should assume write lock before reading.

Bug with setting nw_src and nw_dst for matches

Receive an error code from switch. Other match fields seem to work okay. Likely a problem with floodlight or pronghorn (not with switch because tested inserting matches using ovs-ofctl).

string_to_actions_list does nothing

In FTableUpdate.java, string_to_actions_list does not actually take user's action and turn it into a list of actions to apply. It's currently just a placeholder. See FIXME in the code.

Handle invalid user-specified field_types

In ralph_field_type_to_floodlight_field_type, left a fixme and assert in code for case where user enters and invalid/unrecognized field type as part of set_field action. Do something more appropriate. Either in Java or do check in Ralph.

flow table entry add-removes

If a programmer adds a flow table entry and then removes it as part of the same transaction, should filter this duplicate in wrapped_switch.rph. Reason to filter is that because switch does not ensure order of flow table changes, could get a case where remove and add are reversed.

Screen ralph match fields users enter

Ensure that they are properly formatted in ralph and throw exception there if they are not. Currently, have an issue where will submit incorrectly formatted match, do not push incorrect match to switches (see FIXME in match_from_internal_match in DeltListStateSupplier.java), but incorrect match persists in software state.

Parse for ipv6 addresses when setting fields

Right now, not doing anything intelligent to parse for ipv6 addresses. For actions, users must enter the ipv6 address as a string of bytes. This is really, really ugly and bad.

Add new instructions to ralph

Currently, just setting a string for actions. But want to allow script to goto table, etc. Do so by creating a new struct, etc. for instructions and adding those to Struct FlowTableEntry in place of current actions field.

Routing table entries require unique identifiers

Previously, had assumed that identifiers needed to be unique per switch. Can easily fix by creating identifiers as the concatenation of the switch id, some separator, and current switch-local unique identifiers.

Shortcut ftable updates

In commit 135fe38, correctly taking into account potential backouts on state by short-circuiting with continues in produce_ftable_updates of DeltaListStateSupplier. Note, can probably do this faster by returning out with an empty list of updates when backout has been detected, rather than using continue. Could potentially save a flow mod and barrier to switches for a multi-update.

State supplier race condition

In DeltaListStateSupplier, when running get_state_to_push, makes unprotected access to internal_ft_deltas_list and its contents. What happens if those objects receive backouts while we're making this access?

Clean shutdown

Figure out a way to shut down floodlight+pronghorn cleanly.

Force speculation bug

When we force speculation, we overwrite dirty values for all existing state. This is bad, because our state supplier eventually needs to be able to read internal dirty state. Just moving force_speculate call into DeltaListStateSupplier breaks, because then we never get speculation on read only-s. Should fix.

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.