[sheepdog] RFC: update protocol version or redesign struct sd_node

Hitoshi Mitake mitake.hitoshi at gmail.com
Tue Jan 14 04:00:33 CET 2014


The commit 9ea90be39e9d (sheep: use rbtree to manage struct sd_node)
changes struct sd_node. So the master branch isn't compatible with
v0.7.x because it affects the format of GET_NODE_LIST's returned
buffer. Every dog command which has a flag CMD_NEED_NODELIST cannot
work (users see nodes have IPv6 addresses).

The affection is very serious so I propose either of the below two
changes:

1. change protocol version and forbid communication between 0.7.x dog
   and the latest sheep

2. change struct sd_node and exclude 	struct rb_node  rb; from the
   members

I think 2 would be a better option. sd_node is a data structure which
can be exchanged via network and such a data structure shouldn't have
pointers as its members. Current sd_node is really ugly.

I'd like to hear other developers' opinions.

Thanks,
Hitoshi



More information about the sheepdog mailing list