Thanks Srivats. Didn't know that function existed and it is tremendously helpful.
Here is the code snippet for stacked vlan, which seems to work fine:
p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kVlanStackFieldNumber
p.Extensions[svlan].is_override_tpid = True
p.Extensions[svlan].tpid = 0x88a8
p.Extensions[svlan].vlan_tag = 0x64
p.Extensions[vlan].vlan_tag = 0xc8