The IPv6 packet format consists of a 40-byte base header followed by optional extension headers and data from an upper layer. The base header contains fields for version, traffic class, flow label, payload length, next header, hop limit, source address, and destination address. Extension headers and upper layer data can total up to 65,535 bytes. Flow label is a new field that allows routers to identify and prioritize packets belonging to the same flow.