projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Describe dummy test model. Work on OpenFlow intro.
[openvswitch]
/
lib
/
lacp.h
diff --git
a/lib/lacp.h
b/lib/lacp.h
index 38c8f6eb4de4803ad32ec0d59e87c9babf47717f..624e3682dc9df81a637630c7da0ee7577bf4e3a6 100644
(file)
--- a/
lib/lacp.h
+++ b/
lib/lacp.h
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 2011 Nicira
Networks
.
+ * Copyright (c) 2011 Nicira
, Inc
.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-21,12
+21,20
@@
#include <stdint.h>
#include "packets.h"
#include <stdint.h>
#include "packets.h"
+/* LACP Protocol Implementation. */
+
+enum lacp_status {
+ LACP_NEGOTIATED, /* Successful LACP negotations. */
+ LACP_CONFIGURED, /* LACP is enabled but not negotiated. */
+ LACP_DISABLED /* LACP is not enabled. */
+};
+
struct lacp_settings {
struct lacp_settings {
- char *name;
- uint8_t id[ETH_ADDR_LEN];
- uint16_t priority;
- bool active;
- bool fast;
+ char *name;
/* Name (for debugging). */
+ uint8_t id[ETH_ADDR_LEN];
/* System ID. Must be nonzero. */
+ uint16_t priority;
/* System priority. */
+ bool active;
/* Active or passive mode? */
+ bool fast;
/* Fast or slow probe interval. */
};
void lacp_init(void);
};
void lacp_init(void);
@@
-36,14
+44,15
@@
void lacp_destroy(struct lacp *);
void lacp_configure(struct lacp *, const struct lacp_settings *);
bool lacp_is_active(const struct lacp *);
void lacp_configure(struct lacp *, const struct lacp_settings *);
bool lacp_is_active(const struct lacp *);
-void lacp_process_p
du
(struct lacp *, const void *slave,
-
const struct lacp_pdu *
);
-
bool lacp_negotiated
(const struct lacp *);
+void lacp_process_p
acket
(struct lacp *, const void *slave,
+
const struct ofpbuf *packet
);
+
enum lacp_status lacp_status
(const struct lacp *);
struct lacp_slave_settings {
struct lacp_slave_settings {
- char *name;
- uint16_t id;
- uint16_t priority;
+ char *name; /* Name (for debugging). */
+ uint16_t id; /* Port ID. */
+ uint16_t priority; /* Port priority. */
+ uint16_t key; /* Aggregation key. */
};
void lacp_slave_register(struct lacp *, void *slave_,
};
void lacp_slave_register(struct lacp *, void *slave_,
@@
-52,9
+61,10
@@
void lacp_slave_unregister(struct lacp *, const void *slave);
void lacp_slave_carrier_changed(const struct lacp *, const void *slave);
bool lacp_slave_may_enable(const struct lacp *, const void *slave);
uint16_t lacp_slave_get_port_id(const struct lacp *, const void *slave);
void lacp_slave_carrier_changed(const struct lacp *, const void *slave);
bool lacp_slave_may_enable(const struct lacp *, const void *slave);
uint16_t lacp_slave_get_port_id(const struct lacp *, const void *slave);
+bool lacp_slave_is_current(const struct lacp *, const void *slave_);
/* Callback function for lacp_run() for sending a LACP PDU. */
/* Callback function for lacp_run() for sending a LACP PDU. */
-typedef void lacp_send_pdu(void *slave, const
struct lacp_pdu *
);
+typedef void lacp_send_pdu(void *slave, const
void *pdu, size_t pdu_size
);
void lacp_run(struct lacp *, lacp_send_pdu *);
void lacp_wait(struct lacp *);
void lacp_run(struct lacp *, lacp_send_pdu *);
void lacp_wait(struct lacp *);