微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mininet OpenvSwitch多控制器配置

如何解决Mininet OpenvSwitch多控制器配置

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

我现在正在用OpenvSwitch实现小型网络拓扑。我想知道如何在Mininet中指定控制器对OpenvSwitch的作用?

解决方法

角色由控制器确定,请参阅A 3.9。 Openflow 1.3规范中的“”部分:

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

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);

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

/* 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消息完全相同,并且字段角色是控制器的当前角色。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。