I’m working on a lab for prefix delegation on cat 4500, sup7, cat4500e-universalk9.SPA.03.02.01.SG.150-2.SG1.bin.
Prefix delegation works fine, but I’m having problems with decoding the remote-id option inserted by the 4500.
The document “Implementing DHCP for IPv6” (located here: http://www.cisco.com/en/US/docs/ios/ipv6/configuration/guide/ip6-dhcp.html#wp1054194 )
States “The remote-ID option provides information to the DHCPv6 server, including port information, the system's DUID, and the VLAN ID.”
When capturing dhcp6 relay messages in the network I can find VLAN ID, mac address of the VLAN interface, but have trouble finding slot/port information fields in the message. The remote-id below is from a client attached to int vlan 512, and connected to fa2/37.
HEX2DEC 512 VLAN ID of incomming DHCP packet on the 4500
HEX c47d4f73a0bf MAC address on int vlan 512
HEX2DEC 2 Slot 2
But I can't find the port information, my guess would be that it's located after slot info, but "0xD09" doesn't make sense to me.
Has someone figured this out or know where to find documentation?
Heres the interpretation of the fields in remote id:
Fa2/3 Remote-ID: 020023000200000a00030001c47d4f73a0bf
Fa2/10 Remote-ID: 02002a000200000a00030001c47d4f73a0bf
Fa2/11 Remote-ID: 02002b000200000a00030001c47d4f73a0bf
Fa2/15 Remote-ID: 02002f000200000a00030001c47d4f73a0bf
Fa2/16 Remote-ID: 020020080200000a00030001c47d4f73a0bf
Fa2/17 Remote-ID: 020021080200000a00030001c47d4f73a0bf
Fa2/18 Remote-ID: 020022080200000a00030001c47d4f73a0bf
Fa2/31 Remote-ID: 02002f080200000a00030001c47d4f73a0bf
Fa2/32 Remote-ID: 020028090200000a00030001c47d4f73a0bf
Fa2/37 Remote-ID: 02002d090200000a00030001c47d4f73a0bf
Fa2/39 Remote-ID: 02002f090200000a00030001c47d4f73a0bf
Fa2/40 Remote-ID: 0200280a0200000a00030001c47d4f73a0bf
Field 0 - 3: Remote ID type - for ethernet it is 2, if type is 2 remaining fields are interpreted as below
Field 4 - 7: interface information (detailed below)
Field 8 - 11: Vlan id
Field 12-15: Length of the DUID that follows
Field 16 -35: DUID
Field 4-7 consists of 2 bytes that are interpreted as
4-5 (in binary): - interface_info -> slot : 4(ssss); module : 1(m); port :3(ppp);
6-7 (in binary): - extension_info -> slot : 4(SSSS); module : 1(M); port :3(PPP);
field 4-5: form the lower order information
field 6-7: form the higher order information
slot : field 6 and field 4 are stiched together to form slot (SSSSssss)
module: first bit of field 7 and first bit of field 5 are stiched together (Mm)
port: last 3 bits of field 7 and last 3 bits of 5 are stiched together (PPPppp)
X = slot
Y = module*8 + port
for e.g. to arrive at fa2/3 = 0x2300 - 2 is the slot, module is 0, port = 3 so it is fa2/3
0x280a -> slot = 2, module = 3, port = 16 , fa 2/ (3*8 + 16) = fa2/40