2016-08-05 35 views
-1

Ich arbeite an einem OpenFlow-Projekt und muss das OpenFlow-Protokoll erweitern. Daher muss ich Open vSwitch erweitern, um die neuen Funktionen von OpenFlow anzuwenden. Um dies zu tun, muss ich zunächst ziemlich genau wissen, wie Open vSwitch mit dem Traversieren von Paketen arbeitet. Ich habe mir jede "readme" -Datei aus dem Stammverzeichnis von Open vSwitch angesehen, und wirklich keine von ihnen hat eine anständige Entwicklerdokumentation (wie ich gesehen habe, gibt es überhaupt keine Entwicklerdokumentation). Der Quellcode enthält auch nicht mindestens eine Kommentarkommentarzeile. Es scheint mir wirklich, dass der einzige Weg, um durchzukommen, nur eine Tonne printk() ist. Die Menge an Zeit, die benötigt wird, um ein minimales Wissen zu erlangen, nur weil man "kern.log" sieht, wäre schrecklich. Gibt es eine andere Lösung für dieses Problem? Irgendwelche Vorschläge, wie ich schneller als die printk() -Lösung die Lernphase beschleunigen könnte?Öffnen Sie die vSwitch-Entwicklerdokumentation.

+0

Was Sie lesen sollten, hängt weitgehend davon ab, was Sie ändern müssen. Benötigen Sie nur neue OpenFlow-Nachrichten, Aktionen oder Felder? Verwenden Sie den Kernel oder den DPDK-Datenpfad? Müssen Sie den Kern von Open vSwitch ändern? – pchaigno

Antwort

0

Um eine erste Übersicht der Funktionsweise von Open vSwitch zu bekommen, ist das Beste wahrscheinlich, die NSDI 2015 paper zu lesen. Insbesondere beschreibt es den Cache-Mechanismus von Open vSwitch, seine vielen Optimierungen und die Cache-Invalidierung. Um einen ersten Eindruck von der Codearchitektur zu bekommen, habe ich die porting documentation als große Hilfe gefunden.

Dann finden Sie für häufige Anpassungen von Open vSwitch (neues Feld, Aktion oder Nachricht) Richtlinien unter der very end of the FAQ. Wenn Sie zuerst mit diesen Arten von Anpassungen beginnen, müssen Sie einige Aufzählungen und Strukturen ändern und viele Warnungen beheben. Ich habe es sehr wertvoll gefunden, um einen tieferen Einblick in den Code zu bekommen.