LIFX LAN Protocol Using VB.Net

I am trying to decode an LIFX LAN Protocol packet in VB.Net. In my program, I use the following code to get a byte array from the received UDP packet.

Dim pdata As Byte() = subscriber.Receive(ep)

Initial Byte Array

I don’t have any issues getting fields like frame size or the frame source.

' Size - 16 bits or 2 bytes (0-1)
'   The size of entire message in bytes including this field
Dim size As UInt16 = BitConverter.ToUInt16(pdata, 0)

' Source is 32 bits or 4 bytes (4-7)
Dim source As UInt32 = BitConverter.ToUInt32(pdata, 4)

I even figured out how to get the protocol using the following code:

' Protocol 12 bits (uint16_t)
'   The protocol number must be 1024 (decimal)
Dim protocol As UInt16 = BitConverter.ToUInt16(pdata, 2) And ((1 << 12) - 1)

The problem is I cannot figure out how to get the origin, tagged and addressable fields from the byte array. Any help would be appreciated.