Zhang Chen <chen.zh...@intel.com> writes: > Since the real user scenario does not need COLO to monitor all traffic. > Add colo-passthrough-add and colo-passthrough-del to maintain > a COLO network passthrough list. > > Signed-off-by: Zhang Chen <chen.zh...@intel.com> > --- > net/net.c | 10 ++++++++++ > qapi/net.json | 40 ++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 50 insertions(+) > > diff --git a/net/net.c b/net/net.c > index 725a4e1450..7c7cefe0e0 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -1199,6 +1199,16 @@ void qmp_netdev_del(const char *id, Error **errp) > } > } > > +void qmp_colo_passthrough_add(L4_Connection *conn, Error **errp) > +{ > + /* Setup passthrough connection */ > +} > + > +void qmp_colo_passthrough_del(L4_Connection *conn, Error **errp) > +{ > + /* Delete passthrough connection */ > +} > + > static void netfilter_print_info(Monitor *mon, NetFilterState *nf) > { > char *str; > diff --git a/qapi/net.json b/qapi/net.json > index cd4a8ed95e..ec7d3b1128 100644 > --- a/qapi/net.json > +++ b/qapi/net.json > @@ -851,3 +851,43 @@ > 'data': { 'protocol': 'IP_PROTOCOL', '*id': 'str', '*src_ip': 'str', > '*dst_ip': 'str', > '*src_port': 'int', '*dst_port': 'int' } } > > +## > +# @colo-passthrough-add: > +# > +# Add passthrough entry according to customer's needs in COLO-compare. > +# > +# Returns: Nothing on success > +# > +# Since: 6.1 > +# > +# Example: > +# > +# -> { "execute": "colo-passthrough-add", > +# "arguments": { "protocol": "tcp", "id": "object0", "src_ip": > "192.168.1.1", > +# "dst_ip": "192.168.1.2", "src_port": 1234, "dst_port": 4321 } } > +# <- { "return": {} } > +# > +## > +{ 'command': 'colo-passthrough-add', 'boxed': true, > + 'data': 'L4_Connection' } > + > +## > +# @colo-passthrough-del: > +# > +# Delete passthrough entry according to customer's needs in COLO-compare. > +# > +# Returns: Nothing on success > +# > +# Since: 6.1 > +# > +# Example: > +# > +# -> { "execute": "colo-passthrough-del", > +# "arguments": { "protocol": "tcp", "id": "object0", "src_ip": > "192.168.1.1", > +# "dst_ip": "192.168.1.2", "src_port": 1234, "dst_port": 4321 } } > +# <- { "return": {} } > +# > +## > +{ 'command': 'colo-passthrough-del', 'boxed': true, > + 'data': 'L4_Connection' } > +
Now let's look at colo-passthrough-del. I figure it is for deleting the kind of things colo-passthrough-add adds. What exactly is deleted? The thing created with the exact same arguments? This would be unusual. Commonly, FOO-add and FOO-del both take a string ID argument. The FOO created by FOO-add remembers its ID, and FOO-del deletes by ID.