Mismatched GPS_RAW_INT value from MAVLink protocol

Hello guys,

When I tested GPS fix, I noticed that there is a mismatched GPS_RAW_INT value from MAVLink protocol.

master = mavutil.mavlink_connection('udp:127.0.0.1:14551')
master.recv_match(type='VFR_HUD', blocking=True)
msg = master.recv_match(type='GPS_RAW_INT', blocking=True,
                            condition='GPS_RAW_INT.fix_type>=3 and GPS_RAW_INT.lat != 0')
print(msg.fix_type)

Result:

6
6
6

Regardless of GPS 3D fix, fix_type has always 6 on SITL.
It seems likely to me that the fix_type is just the number of detected GPS satellites, but fix_type has to be changed according to GPS fix type (Messages (common) · MAVLink Developer Guide).
Please help me to figure out why there is the mismatched implementation. Thanks!

Test it on a real copter first. And then post the results here.