Giter Site home page Giter Site logo

libopenflow's People

Contributors

abhi avatar antoninbas avatar dvavili avatar gkvijay avatar gran-vmv avatar graysonwu avatar hongliangl avatar jianjuns avatar jojimt avatar karamsivia avatar rchirakk avatar shaleman avatar unclejack avatar wenyingd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libopenflow's Issues

i have a problem with conntrack

i use your contrack struct, and i give a ct.Table(10), but it doesn't go into effect, i want the result is "cookie=0x0, duration=5.279s, table=0, n_packets=0, n_bytes=0, ip actions=ct(table=10,zone=2)",
but the current result is "cookie=0x0, duration=2.421s, table=0, n_packets=0, n_bytes=0,ip actions=ct(table=0,zone=2560)",
so if i use it as incorrect,and i want to know the correct method to use the conntrack

that is my method to use :
ct :=ofp13.NewOfpActionConnTrack()
ct.Table(10)
ct.ZoneImm(2)
instruction.Append(ct)

ActionNote unmarshal seems incorrect.

a.Note = data[n:]

fix perhaps can be
" a.Note = data[n: n+a.Length- a.NXActionHeader.Len()]"

The problem with this is that "func (a *NXActionNote) Len()" would return a length that is also the length of entire data byte stream. Thus if this NoteAction is part of multipart reply, the subsequent replies would not be processed,

dead lock or lost message when ovs is unstable

this function will lost message or make block if the connection of ovs is closing.

// Listen for a Shutdown signal or Outbound messages.
func (m *MessageStream) outbound() {
for {
select {
case <-m.Shutdown:
log.Infof("Closing OpenFlow message stream.")
m.conn.Close()
for i := 0; i < numParserGoroutines; i++ {
m.parserShutdown <- true
}
return
case msg := <-m.Outbound:
// Forward outbound messages to conn
data, _ := msg.MarshalBinary()
if _, err := m.conn.Write(data); err != nil {
log.Warnln("OutboundError:", err)
m.Error <- err
m.Shutdown <- true
}
log.Debugf("Sent(%d): %v", len(data), data)
}
}
}

Handle unknown packets gracefully

Packets that are not handled by Contiv are not handled properly and lead to a crash instead of discarding/forwarding the packet gracefully. In many cases it's because of returning a nil reference to a packet instead of a proper error. Need to fix these paths. This will also involve validating the ofnet path.

Support bundle feature defined in OpenFlow

Bundle is a key feature introduced in OpenFlow1.3 extenstion. Bundle is helpful if we want the swtich to handle multiple modifications in a batch. A bundle is a sequence of OpenFlow modification requests from the controller that is applied as a single OpenFlow operation. If all modifications in the bundle succeed, all of the modifications are retained, but if any errors arise, none of the modifications are retained.

Feature implement in #8

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.