Identify Wi-Fi connection as metered on Linux automatically
NetworkManager (NM) has implemented detection of metered connnection based on MS-NCT protocol nearly same as Microsoft Windows does.
To implement metered connection detection, set cost level to 0x02 or 0x03 as described in Microsoft Windows article.
NM 1.31.5 and before has a bug in MS-NCT implementation because second
Reserved byte is used instead of Cost_Level byte.
According to NM code, value of this byte must be greater than 0x01 to make NM think connection is metered.
According to [MS-NCT], the byte used by NM SHOULD always be 0x00, so it may cause compatibility errors, so you can change it on your own risk.
DD 08 00 50 F2 11 02 00 02 00 ^ | Only this byte is taken into account by NM
Please refer to Identify Wi-Fi connection as metered on Windows automatically page for details.