.. | .. |
---|
218 | 218 | /* |
---|
219 | 219 | * sockaddr_storage <-> ceph_sockaddr |
---|
220 | 220 | */ |
---|
221 | | -static inline void ceph_encode_addr(struct ceph_entity_addr *a) |
---|
| 221 | +#define CEPH_ENTITY_ADDR_TYPE_NONE 0 |
---|
| 222 | +#define CEPH_ENTITY_ADDR_TYPE_LEGACY __cpu_to_le32(1) |
---|
| 223 | + |
---|
| 224 | +static inline void ceph_encode_banner_addr(struct ceph_entity_addr *a) |
---|
222 | 225 | { |
---|
223 | 226 | __be16 ss_family = htons(a->in_addr.ss_family); |
---|
224 | 227 | a->in_addr.ss_family = *(__u16 *)&ss_family; |
---|
| 228 | + |
---|
| 229 | + /* Banner addresses require TYPE_NONE */ |
---|
| 230 | + a->type = CEPH_ENTITY_ADDR_TYPE_NONE; |
---|
225 | 231 | } |
---|
226 | | -static inline void ceph_decode_addr(struct ceph_entity_addr *a) |
---|
| 232 | +static inline void ceph_decode_banner_addr(struct ceph_entity_addr *a) |
---|
227 | 233 | { |
---|
228 | 234 | __be16 ss_family = *(__be16 *)&a->in_addr.ss_family; |
---|
229 | 235 | a->in_addr.ss_family = ntohs(ss_family); |
---|
230 | 236 | WARN_ON(a->in_addr.ss_family == 512); |
---|
| 237 | + a->type = CEPH_ENTITY_ADDR_TYPE_LEGACY; |
---|
231 | 238 | } |
---|
232 | 239 | |
---|
| 240 | +extern int ceph_decode_entity_addr(void **p, void *end, |
---|
| 241 | + struct ceph_entity_addr *addr); |
---|
233 | 242 | /* |
---|
234 | 243 | * encoders |
---|
235 | 244 | */ |
---|