-- binary
06 1e # version, type
00 28 # length
12 34 56 78 # xid
00 00 00 03 # role (OFPCR_ROLE_SLAVE)
00 # reason (OFPCRR_MASTER_REQUEST)
00 00 00 # pad
00 00 00 00 00 00 00 01 # generation_id
ff ff # properties[0].type (OFPRPT_EXPERIMENTER)
00 10 # properties[0].length
00 5c 16 c7 # properties[0].experimenter
00 00 00 37 # properties[0].exp_type
00 00 00 00 # properties[0]exp_data
-- java
builder
        .setXid(0x12345678)
        .setRole(OFControllerRole.ROLE_SLAVE)
        .setReason(OFControllerRoleReason.MASTER_REQUEST)
        .setGenerationId(U64.of(1))
        .setProperties(ImmutableList.<OFRoleProp>of(factory.buildRolePropBsn().setExperimenterData(new byte[] {0x0, 0x0, 0x0, 0x0}).build()))
        .build()