首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mininet OpenvSwitch多控制器配置

Mininet OpenvSwitch多控制器配置
EN

Stack Overflow用户
提问于 2020-11-09 08:56:16
回答 1查看 131关注 0票数 0

根据OpenFlow规范,OpenFlow交换机可以连接到多个不同角色的控制器。

我现在正在使用OpenvSwitch实现mininet拓扑。我想知道如何在Mininet中为OpenvSwitch指定控制器的角色?

EN

回答 1

Stack Overflow用户

发布于 2020-11-11 22:13:27

角色由管理员决定,请参阅A3.9。部分在Openflow 1.3规范中:

A.3.9角色请求消息当控制器想要改变其角色时,它使用具有以下结构的OFPT_ROLE_REQUEST消息:

代码语言:javascript
复制
OpenFlow Switch Specification Version 1.3.0
/* Role request and reply message. */
struct ofp_role_request {
    struct ofp_header header; /* Type OFPT_ROLE_REQUEST/OFPT_ROLE_REPLY. */
    uint32_t role; /* One of NX_ROLE_*. */
    uint8_t pad[4]; /* Align to 64 bits. */
    uint64_t generation_id; /* Master Election Generation Id */
};
OFP_ASSERT(sizeof(struct ofp_role_request) == 24);

字段角色是控制器想要承担的新角色,可以具有以下值:

代码语言:javascript
复制
/* Controller roles. */
enum ofp_controller_role {
    OFPCR_ROLE_NOCHANGE = 0, /* Don’t change current role. */
    OFPCR_ROLE_EQUAL = 1, /* Default role, full access. */
    OFPCR_ROLE_MASTER = 2, /* Full access, at most one master. */
    OFPCR_ROLE_SLAVE = 3, /* Read-only access. */
};

如果角色值为OFPCR_ROLE_MASTER,则角色为OFPCR_ROLE_MASTER的所有其他控制器都将更改为OFPCR_ROLE_SLAVE。如果角色值为OFPCR_ROLE_NOCHANGE,则控制器的当前角色不会更改;这使控制器能够查询其当前角色而不更改它。

收到OFPT_ROLE_REQUEST消息后,交换机必须返回OFPT_ROLE_REPLY消息。此消息的结构与OFPT_ROLE_REQUEST消息完全相同,并且role字段是控制器的当前角色。

此外,如果消息中的角色值为OFPCR_ROLE_MASTER或OFPCR_ROLE_SLAVE,则交换机必须验证generation_id以检查过时消息。如果验证失败,则交换机必须丢弃角色请求,并返回类型为OFPET_ROLE_REQUEST_FAILED、代码为OFPRRFC_STALE的错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64744605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档