資源簡(jiǎn)介
openflow源代碼,
介紹各個(gè)結(jié)構(gòu)體,datapath,controller
可以直接用boot.sh進(jìn)行安裝
代碼片段和文件信息
/*?Copyright?(c)?2008?The?Board?of?Trustees?of?The?Leland?Stanford
?*?Junior?University
?*?
?*?We?are?making?the?OpenFlow?specification?and?associated?documentation
?*?(Software)?available?for?public?use?and?benefit?with?the?expectation
?*?that?others?will?use?modify?and?enhance?the?Software?and?contribute
?*?those?enhancements?back?to?the?community.?However?since?we?would
?*?like?to?make?the?Software?available?for?broadest?use?with?as?few
?*?restrictions?as?possible?permission?is?hereby?granted?free?of
?*?charge?to?any?person?obtaining?a?copy?of?this?Software?to?deal?in
?*?the?Software?under?the?copyrights?without?restriction?including
?*?without?limitation?the?rights?to?use?copy?modify?merge?publish
?*?distribute?sublicense?and/or?sell?copies?of?the?Software?and?to
?*?permit?persons?to?whom?the?Software?is?furnished?to?do?so?subject?to
?*?the?following?conditions:
?*?
?*?The?above?copyright?notice?and?this?permission?notice?shall?be
?*?included?in?all?copies?or?substantial?portions?of?the?Software.
?*?
?*?THE?SOFTWARE?IS?PROVIDED?“AS?IS“?WITHOUT?WARRANTY?OF?ANY?KIND
?*?EXPRESS?OR?IMPLIED?INCLUDING?BUT?NOT?LIMITED?TO?THE?WARRANTIES?OF
?*?MERCHANTABILITY?FITNESS?FOR?A?PARTICULAR?PURPOSE?AND
?*?NONINFRINGEMENT.??IN?NO?EVENT?SHALL?THE?AUTHORS?OR?COPYRIGHT?HOLDERS
?*?BE?LIABLE?FOR?ANY?CLAIM?DAMAGES?OR?OTHER?LIABILITY?WHETHER?IN?AN
?*?ACTION?OF?CONTRACT?TORT?OR?OTHERWISE?ARISING?FROM?OUT?OF?OR?IN
?*?CONNECTION?WITH?THE?SOFTWARE?OR?THE?USE?OR?OTHER?DEALINGS?IN?THE
?*?SOFTWARE.
?*?
?*?The?name?and?trademarks?of?copyright?holder(s)?may?NOT?be?used?in
?*?advertising?or?publicity?pertaining?to?the?Software?or?any
?*?derivatives?without?specific?written?prior?permission.
?*/
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“command-line.h“
#include?“compiler.h“
#include?“daemon.h“
#include?“fault.h“
#include?“l(fā)earning-switch.h“
#include?“ofpbuf.h“
#include?“openflow/openflow.h“
#include?“poll-loop.h“
#include?“rconn.h“
#include?“timeval.h“
#include?“util.h“
#include?“vconn-ssl.h“
#include?“vconn.h“
#include?“vlog-socket.h“
#include?“vlog.h“
#define?THIS_MODULE?VLM_controller
#define?MAX_SWITCHES?16
#define?MAX_LISTENERS?16
struct?switch_?{
????struct?lswitch?*lswitch;
????struct?rconn?*rconn;
};
/*?Learn?the?ports?on?which?MAC?addresses?appear??*/
static?bool?learn_macs?=?true;
/*?Set?up?flows???(If?not?every?packet?is?processed?at?the?controller.)?*/
static?bool?setup_flows?=?true;
/*?--max-idle:?Maximum?idle?time?in?seconds?before?flows?expire.?*/
static?int?max_idle?=?60;
static?int?do_switching(struct?switch_?*);
static?void?new_switch(struct?switch_?*?struct?vconn?*?const?char?*name);
static?void?parse_options(int?argc?char?*argv[]);
static?void?usage(void)?NO_RETURN;
int
main(int?argc?char?*argv[])
{
????struct?switch_?switches[MAX_SWITCHES];
????struct?pvconn?*listeners[MAX_LISTENERS];
????int?n_switches?n_li
評(píng)論
共有 條評(píng)論