contiv / libopenflow Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
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)
libOpenflow/openflow13/nx_action.go
Line 1339 in 7c65343
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,
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)
}
}
}
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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.