[fidlc] 32 to 64 bits Ordinals: Step #6

Mechanical regen:

    fx third_party/go/regen-fidl

Following
https://fuchsia-review.googlesource.com/c/fuchsia/+/323646

fidlc now emits 64b ordinals in gen, causing all bindings to have to
read paths, one for ord (still 32b) and one for gen (now 64b)

Test: no behavior change
Bug: 7848
Change-Id: Ia772561397285fd5451660b9addb9e83d357e83a
diff --git a/src/syscall/zx/fidl/bindingstest/impl.go b/src/syscall/zx/fidl/bindingstest/impl.go
index 4ae9581..80b6740 100644
--- a/src/syscall/zx/fidl/bindingstest/impl.go
+++ b/src/syscall/zx/fidl/bindingstest/impl.go
@@ -20,8 +20,8 @@
 )
 
 type TestSimple struct {
-	_ struct{} `fidl2:"s,8,8"`
-	X int64
+	_ struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
+	X int64    `fidl:"0"`
 }
 
 var _mTestSimple = _bindings.CreateLazyMarshaler(TestSimple{})
@@ -31,8 +31,8 @@
 }
 
 type TestSimpleBool struct {
-	_ struct{} `fidl2:"s,1,1"`
-	X bool
+	_ struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
+	X bool     `fidl:"0"`
 }
 
 var _mTestSimpleBool = _bindings.CreateLazyMarshaler(TestSimpleBool{})
@@ -42,10 +42,10 @@
 }
 
 type TestAlignment1 struct {
-	_ struct{} `fidl2:"s,8,4"`
-	X int8
-	Y int8
-	Z uint32
+	_ struct{} `fidl:"s,8,4" fidl2:"s,8,4"`
+	X int8     `fidl:"0"`
+	Y int8     `fidl:"1"`
+	Z uint32   `fidl:"4"`
 }
 
 var _mTestAlignment1 = _bindings.CreateLazyMarshaler(TestAlignment1{})
@@ -55,16 +55,16 @@
 }
 
 type TestAlignment2 struct {
-	_ struct{} `fidl2:"s,20,4"`
-	A uint32
-	B uint32
-	C int8
-	D int8
-	E int8
-	F uint8
-	G uint32
-	H uint16
-	I uint16
+	_ struct{} `fidl:"s,20,4" fidl2:"s,20,4"`
+	A uint32   `fidl:"0"`
+	B uint32   `fidl:"4"`
+	C int8     `fidl:"8"`
+	D int8     `fidl:"9"`
+	E int8     `fidl:"10"`
+	F uint8    `fidl:"11"`
+	G uint32   `fidl:"12"`
+	H uint16   `fidl:"16"`
+	I uint16   `fidl:"18"`
 }
 
 var _mTestAlignment2 = _bindings.CreateLazyMarshaler(TestAlignment2{})
@@ -74,8 +74,8 @@
 }
 
 type TestFloat1 struct {
-	_ struct{} `fidl2:"s,4,4"`
-	A float32
+	_ struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
+	A float32  `fidl:"0"`
 }
 
 var _mTestFloat1 = _bindings.CreateLazyMarshaler(TestFloat1{})
@@ -85,8 +85,8 @@
 }
 
 type TestFloat2 struct {
-	_ struct{} `fidl2:"s,8,8"`
-	A float64
+	_ struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
+	A float64  `fidl:"0"`
 }
 
 var _mTestFloat2 = _bindings.CreateLazyMarshaler(TestFloat2{})
@@ -96,11 +96,11 @@
 }
 
 type TestFloat3 struct {
-	_ struct{} `fidl2:"s,32,8"`
-	A float32
-	B float64
-	C uint64
-	D float32
+	_ struct{} `fidl:"s,32,8" fidl2:"s,32,8"`
+	A float32  `fidl:"0"`
+	B float64  `fidl:"8"`
+	C uint64   `fidl:"16"`
+	D float32  `fidl:"24"`
 }
 
 var _mTestFloat3 = _bindings.CreateLazyMarshaler(TestFloat3{})
@@ -110,8 +110,8 @@
 }
 
 type TestArray1 struct {
-	_ struct{} `fidl2:"s,5,1"`
-	A [5]int8
+	_ struct{} `fidl:"s,5,1" fidl2:"s,5,1"`
+	A [5]int8  `fidl:"0"`
 }
 
 var _mTestArray1 = _bindings.CreateLazyMarshaler(TestArray1{})
@@ -121,9 +121,9 @@
 }
 
 type TestArray2 struct {
-	_ struct{} `fidl2:"s,16,8"`
-	A float64
-	B [1]float32
+	_ struct{}   `fidl:"s,16,8" fidl2:"s,16,8"`
+	A float64    `fidl:"0"`
+	B [1]float32 `fidl:"8"`
 }
 
 var _mTestArray2 = _bindings.CreateLazyMarshaler(TestArray2{})
@@ -133,10 +133,10 @@
 }
 
 type TestArray3 struct {
-	_ struct{} `fidl2:"s,24,8"`
-	A int32
-	B [3]uint16
-	C uint64
+	_ struct{}  `fidl:"s,24,8" fidl2:"s,24,8"`
+	A int32     `fidl:"0"`
+	B [3]uint16 `fidl:"4"`
+	C uint64    `fidl:"16"`
 }
 
 var _mTestArray3 = _bindings.CreateLazyMarshaler(TestArray3{})
@@ -146,8 +146,8 @@
 }
 
 type TestArray4 struct {
-	_ struct{} `fidl2:"s,9,1"`
-	A [9]bool
+	_ struct{} `fidl:"s,9,1" fidl2:"s,9,1"`
+	A [9]bool  `fidl:"0"`
 }
 
 var _mTestArray4 = _bindings.CreateLazyMarshaler(TestArray4{})
@@ -157,9 +157,9 @@
 }
 
 type TestString1 struct {
-	_ struct{} `fidl2:"s,32,8"`
-	A string
-	B *string
+	_ struct{} `fidl:"s,32,8" fidl2:"s,32,8"`
+	A string   `fidl:"0,"`
+	B *string  `fidl:"16,"`
 }
 
 var _mTestString1 = _bindings.CreateLazyMarshaler(TestString1{})
@@ -169,8 +169,8 @@
 }
 
 type TestString2 struct {
-	_ struct{} `fidl2:"s,32,8"`
-	A [2]string
+	_ struct{}  `fidl:"s,32,8" fidl2:"s,32,8"`
+	A [2]string `fidl:"0,"`
 }
 
 var _mTestString2 = _bindings.CreateLazyMarshaler(TestString2{})
@@ -180,9 +180,9 @@
 }
 
 type TestString3 struct {
-	_ struct{}   `fidl2:"s,64,8"`
-	A [2]string  `fidl:"4" fidl2:"4"`
-	B [2]*string `fidl:"4" fidl2:"4"`
+	_ struct{}   `fidl:"s,64,8" fidl2:"s,64,8"`
+	A [2]string  `fidl:"0,4" fidl2:"4"`
+	B [2]*string `fidl:"32,4" fidl2:"4"`
 }
 
 var _mTestString3 = _bindings.CreateLazyMarshaler(TestString3{})
@@ -192,8 +192,8 @@
 }
 
 type TestStringWithBound struct {
-	_ struct{} `fidl2:"s,16,8"`
-	A string   `fidl:"8" fidl2:"8"`
+	_ struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	A string   `fidl:"0,8" fidl2:"8"`
 }
 
 var _mTestStringWithBound = _bindings.CreateLazyMarshaler(TestStringWithBound{})
@@ -203,8 +203,8 @@
 }
 
 type TestOptStringWithBound struct {
-	_ struct{} `fidl2:"s,16,8"`
-	A *string  `fidl:"8" fidl2:"8"`
+	_ struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	A *string  `fidl:"0,8" fidl2:"8"`
 }
 
 var _mTestOptStringWithBound = _bindings.CreateLazyMarshaler(TestOptStringWithBound{})
@@ -214,11 +214,11 @@
 }
 
 type TestVector1 struct {
-	_ struct{} `fidl2:"s,64,8"`
-	A []int8
-	B *[]int16
-	C []int32  `fidl:"2" fidl2:"2"`
-	D *[]int64 `fidl:"2" fidl2:"2"`
+	_ struct{} `fidl:"s,64,8" fidl2:"s,64,8"`
+	A []int8   `fidl:"0,"`
+	B *[]int16 `fidl:"16,"`
+	C []int32  `fidl:"32,2" fidl2:"2"`
+	D *[]int64 `fidl:"48,2" fidl2:"2"`
 }
 
 var _mTestVector1 = _bindings.CreateLazyMarshaler(TestVector1{})
@@ -228,10 +228,10 @@
 }
 
 type TestVector2 struct {
-	_ struct{} `fidl2:"s,64,8"`
-	A [2][]int8
-	B [][]int8    `fidl:"2," fidl2:"2,"`
-	C []*[]string `fidl:"2,2,5" fidl2:"2,2,5"`
+	_ struct{}    `fidl:"s,64,8" fidl2:"s,64,8"`
+	A [2][]int8   `fidl:"0,"`
+	B [][]int8    `fidl:"32,2," fidl2:"2,"`
+	C []*[]string `fidl:"48,2,2,5" fidl2:"2,2,5"`
 }
 
 var _mTestVector2 = _bindings.CreateLazyMarshaler(TestVector2{})
@@ -241,9 +241,9 @@
 }
 
 type TestStruct1 struct {
-	_ struct{} `fidl2:"s,16,8"`
-	A TestSimple
-	B *TestSimple
+	_ struct{}    `fidl:"s,16,8" fidl2:"s,16,8"`
+	A TestSimple  `fidl:"0"`
+	B *TestSimple `fidl:"8"`
 }
 
 var _mTestStruct1 = _bindings.CreateLazyMarshaler(TestStruct1{})
@@ -253,11 +253,11 @@
 }
 
 type TestStruct2 struct {
-	_ struct{} `fidl2:"s,88,8"`
-	A TestArray1
-	B TestFloat1
-	C TestVector1
-	D *TestString1
+	_ struct{}     `fidl:"s,88,8" fidl2:"s,88,8"`
+	A TestArray1   `fidl:"0"`
+	B TestFloat1   `fidl:"8"`
+	C TestVector1  `fidl:"16"`
+	D *TestString1 `fidl:"80"`
 }
 
 var _mTestStruct2 = _bindings.CreateLazyMarshaler(TestStruct2{})
@@ -267,7 +267,7 @@
 }
 
 type EmptyStruct struct {
-	_ struct{} `fidl2:"s,1,1"`
+	_ struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
 }
 
 var _mEmptyStruct = _bindings.CreateLazyMarshaler(EmptyStruct{})
@@ -277,9 +277,9 @@
 }
 
 type TestUnion1 struct {
-	_ struct{} `fidl2:"s,24,8"`
-	A Union1
-	B *Union1
+	_ struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
+	A Union1   `fidl:"0"`
+	B *Union1  `fidl:"16"`
 }
 
 var _mTestUnion1 = _bindings.CreateLazyMarshaler(TestUnion1{})
@@ -289,9 +289,9 @@
 }
 
 type TestUnion2 struct {
-	_ struct{} `fidl2:"s,32,8"`
-	A []Union1
-	B []*Union1
+	_ struct{}  `fidl:"s,32,8" fidl2:"s,32,8"`
+	A []Union1  `fidl:"0,"`
+	B []*Union1 `fidl:"16,"`
 }
 
 var _mTestUnion2 = _bindings.CreateLazyMarshaler(TestUnion2{})
@@ -301,8 +301,8 @@
 }
 
 type XUnion1Struct struct {
-	_  struct{} `fidl2:"s,24,8"`
-	Xu XUnion1
+	_  struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
+	Xu XUnion1  `fidl:"0"`
 }
 
 var _mXUnion1Struct = _bindings.CreateLazyMarshaler(XUnion1Struct{})
@@ -312,9 +312,9 @@
 }
 
 type TestXUnion1 struct {
-	_ struct{} `fidl2:"s,48,8"`
-	A XUnion1
-	B *XUnion1
+	_ struct{} `fidl:"s,48,8" fidl2:"s,48,8"`
+	A XUnion1  `fidl:"0"`
+	B *XUnion1 `fidl:"24"`
 }
 
 var _mTestXUnion1 = _bindings.CreateLazyMarshaler(TestXUnion1{})
@@ -324,9 +324,9 @@
 }
 
 type TestXUnion2 struct {
-	_ struct{} `fidl2:"s,32,8"`
-	A []XUnion1
-	B []*XUnion1
+	_ struct{}   `fidl:"s,32,8" fidl2:"s,32,8"`
+	A []XUnion1  `fidl:"0,"`
+	B []*XUnion1 `fidl:"16,"`
 }
 
 var _mTestXUnion2 = _bindings.CreateLazyMarshaler(TestXUnion2{})
@@ -336,8 +336,8 @@
 }
 
 type StrictXUnion1Struct struct {
-	_  struct{} `fidl2:"s,24,8"`
-	Xu StrictXUnion1
+	_  struct{}      `fidl:"s,24,8" fidl2:"s,24,8"`
+	Xu StrictXUnion1 `fidl:"0"`
 }
 
 var _mStrictXUnion1Struct = _bindings.CreateLazyMarshaler(StrictXUnion1Struct{})
@@ -347,9 +347,9 @@
 }
 
 type TestStrictXUnion1 struct {
-	_ struct{} `fidl2:"s,48,8"`
-	A StrictXUnion1
-	B *StrictXUnion1
+	_ struct{}       `fidl:"s,48,8" fidl2:"s,48,8"`
+	A StrictXUnion1  `fidl:"0"`
+	B *StrictXUnion1 `fidl:"24"`
 }
 
 var _mTestStrictXUnion1 = _bindings.CreateLazyMarshaler(TestStrictXUnion1{})
@@ -359,9 +359,9 @@
 }
 
 type TestStrictXUnion2 struct {
-	_ struct{} `fidl2:"s,32,8"`
-	A []StrictXUnion1
-	B []*StrictXUnion1
+	_ struct{}         `fidl:"s,32,8" fidl2:"s,32,8"`
+	A []StrictXUnion1  `fidl:"0,"`
+	B []*StrictXUnion1 `fidl:"16,"`
 }
 
 var _mTestStrictXUnion2 = _bindings.CreateLazyMarshaler(TestStrictXUnion2{})
@@ -371,11 +371,11 @@
 }
 
 type TestHandle1 struct {
-	_ struct{}   `fidl2:"s,16,4"`
-	A _zx.Handle `fidl:"0" fidl2:"0"`
-	B _zx.Handle `fidl:"1" fidl2:"1"`
-	C _zx.VMO    `fidl:"0" fidl2:"0"`
-	D _zx.VMO    `fidl:"1" fidl2:"1"`
+	_ struct{}   `fidl:"s,16,4" fidl2:"s,16,4"`
+	A _zx.Handle `fidl:"0,0" fidl2:"0"`
+	B _zx.Handle `fidl:"4,1" fidl2:"1"`
+	C _zx.VMO    `fidl:"8,0" fidl2:"0"`
+	D _zx.VMO    `fidl:"12,1" fidl2:"1"`
 }
 
 var _mTestHandle1 = _bindings.CreateLazyMarshaler(TestHandle1{})
@@ -385,9 +385,9 @@
 }
 
 type TestHandle2 struct {
-	_ struct{}     `fidl2:"s,32,8"`
-	A []_zx.Handle `fidl:"1,0" fidl2:"1,0"`
-	B []_zx.VMO    `fidl:"1,1" fidl2:"1,1"`
+	_ struct{}     `fidl:"s,32,8" fidl2:"s,32,8"`
+	A []_zx.Handle `fidl:"0,1,0" fidl2:"1,0"`
+	B []_zx.VMO    `fidl:"16,1,1" fidl2:"1,1"`
 }
 
 var _mTestHandle2 = _bindings.CreateLazyMarshaler(TestHandle2{})
@@ -397,11 +397,11 @@
 }
 
 type TestInterface1 struct {
-	_ struct{} `fidl2:"s,16,4"`
-	A Test1Interface
-	B Test1Interface
-	C Test1InterfaceRequest `fidl:"0" fidl2:"0"`
-	D Test1InterfaceRequest `fidl:"1" fidl2:"1"`
+	_ struct{}              `fidl:"s,16,4" fidl2:"s,16,4"`
+	A Test1Interface        `fidl:"0"`
+	B Test1Interface        `fidl:"4"`
+	C Test1InterfaceRequest `fidl:"8,0" fidl2:"0"`
+	D Test1InterfaceRequest `fidl:"12,1" fidl2:"1"`
 }
 
 var _mTestInterface1 = _bindings.CreateLazyMarshaler(TestInterface1{})
@@ -411,8 +411,8 @@
 }
 
 type TestSimpleTable struct {
-	_     struct{} `fidl2:"s,16,8"`
-	Table SimpleTable
+	_     struct{}    `fidl:"s,16,8" fidl2:"s,16,8"`
+	Table SimpleTable `fidl:"0"`
 }
 
 var _mTestSimpleTable = _bindings.CreateLazyMarshaler(TestSimpleTable{})
@@ -422,8 +422,8 @@
 }
 
 type TestOlderSimpleTable struct {
-	_     struct{} `fidl2:"s,16,8"`
-	Table OlderSimpleTable
+	_     struct{}         `fidl:"s,16,8" fidl2:"s,16,8"`
+	Table OlderSimpleTable `fidl:"0"`
 }
 
 var _mTestOlderSimpleTable = _bindings.CreateLazyMarshaler(TestOlderSimpleTable{})
@@ -433,8 +433,8 @@
 }
 
 type TestNewerSimpleTable struct {
-	_     struct{} `fidl2:"s,16,8"`
-	Table NewerSimpleTable
+	_     struct{}         `fidl:"s,16,8" fidl2:"s,16,8"`
+	Table NewerSimpleTable `fidl:"0"`
 }
 
 var _mTestNewerSimpleTable = _bindings.CreateLazyMarshaler(TestNewerSimpleTable{})
@@ -444,9 +444,9 @@
 }
 
 type TestWithTableAndInt struct {
-	_     struct{} `fidl2:"s,24,8"`
-	Table SimpleTable
-	Foo   uint64
+	_     struct{}    `fidl:"s,24,8" fidl2:"s,24,8"`
+	Table SimpleTable `fidl:"0"`
+	Foo   uint64      `fidl:"16"`
 }
 
 var _mTestWithTableAndInt = _bindings.CreateLazyMarshaler(TestWithTableAndInt{})
@@ -456,8 +456,8 @@
 }
 
 type Int64Struct struct {
-	_ struct{} `fidl2:"s,8,8"`
-	X int64
+	_ struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
+	X int64    `fidl:"0"`
 }
 
 var _mInt64Struct = _bindings.CreateLazyMarshaler(Int64Struct{})
@@ -467,9 +467,9 @@
 }
 
 type TestFuchsiaIoReadAtResponse struct {
-	_    struct{} `fidl2:"s,24,8"`
-	S    int32
-	Data []uint8 `fidl:"8192" fidl2:"8192"`
+	_    struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
+	S    int32    `fidl:"0"`
+	Data []uint8  `fidl:"8,8192" fidl2:"8192"`
 }
 
 var _mTestFuchsiaIoReadAtResponse = _bindings.CreateLazyMarshaler(TestFuchsiaIoReadAtResponse{})
@@ -479,9 +479,9 @@
 }
 
 type TestFuchsiaIoWriteAtRequest struct {
-	_      struct{} `fidl2:"s,24,8"`
-	Data   []uint8  `fidl:"8192" fidl2:"8192"`
-	Offset uint64
+	_      struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
+	Data   []uint8  `fidl:"0,8192" fidl2:"8192"`
+	Offset uint64   `fidl:"16"`
 }
 
 var _mTestFuchsiaIoWriteAtRequest = _bindings.CreateLazyMarshaler(TestFuchsiaIoWriteAtRequest{})
@@ -491,9 +491,9 @@
 }
 
 type InterfaceConfig struct {
-	_               struct{} `fidl2:"s,48,8"`
-	Name            string
-	IpAddressConfig IpAddressConfig
+	_               struct{}        `fidl:"s,48,8" fidl2:"s,48,8"`
+	Name            string          `fidl:"0,"`
+	IpAddressConfig IpAddressConfig `fidl:"16"`
 }
 
 var _mInterfaceConfig = _bindings.CreateLazyMarshaler(InterfaceConfig{})
@@ -503,10 +503,10 @@
 }
 
 type TestAddEthernetDeviceRequest struct {
-	_               struct{} `fidl2:"s,72,8"`
-	TopologicalPath string
-	Config          InterfaceConfig
-	Device          EthernetDeviceInterface
+	_               struct{}                `fidl:"s,72,8" fidl2:"s,72,8"`
+	TopologicalPath string                  `fidl:"0,"`
+	Config          InterfaceConfig         `fidl:"16"`
+	Device          EthernetDeviceInterface `fidl:"64"`
 }
 
 var _mTestAddEthernetDeviceRequest = _bindings.CreateLazyMarshaler(TestAddEthernetDeviceRequest{})
@@ -526,7 +526,7 @@
 )
 
 type Union1 struct {
-	I_union1Tag `fidl:"tag" fidl2:"u,16,8"`
+	I_union1Tag `fidl:"u,16,8" fidl2:"u,16,8"`
 	A           [3]int8
 	B           TestSimple
 	C           *TestSimple
@@ -593,7 +593,7 @@
 )
 
 type SimpleUnion struct {
-	I_simpleUnionTag `fidl:"tag" fidl2:"u,24,8"`
+	I_simpleUnionTag `fidl:"u,24,8" fidl2:"u,24,8"`
 	I32              int32
 	I64              int64
 	S                Int64Struct
@@ -669,7 +669,7 @@
 )
 
 type IpAddressConfig struct {
-	I_ipAddressConfigTag `fidl:"tag" fidl2:"u,28,4"`
+	I_ipAddressConfigTag `fidl:"u,28,4" fidl2:"u,28,4"`
 	PaddingSize24Align4  [6]uint32
 	Dhcp                 bool
 }
@@ -710,7 +710,7 @@
 )
 
 type XUnion1 struct {
-	I_xUnion1Tag  `fidl2:"x,24,8"`
+	I_xUnion1Tag  `fidl:"x,24,8" fidl2:"x,24,8"`
 	I_unknownData []byte
 	A             [3]int8    `fidl:"416714395" fidl2:"416714395"`
 	B             TestSimple `fidl:"863456686" fidl2:"863456686"`
@@ -776,7 +776,7 @@
 )
 
 type StrictXUnion1 struct {
-	I_strictXUnion1Tag `fidl2:"x!,24,8"`
+	I_strictXUnion1Tag `fidl:"x!,24,8" fidl2:"x!,24,8"`
 	I_unknownData      []byte
 	A                  [3]int8    `fidl:"1988029217" fidl2:"1988029217"`
 	B                  TestSimple `fidl:"1259078458" fidl2:"1259078458"`
@@ -825,7 +825,7 @@
 }
 
 type SimpleTable struct {
-	_        struct{} `fidl2:"t,16,8"`
+	_        struct{} `fidl:"t,16,8" fidl2:"t,16,8"`
 	X        int64    `fidl:"1" fidl2:"1"`
 	XPresent bool
 	Y        int64 `fidl:"5" fidl2:"5"`
@@ -881,7 +881,7 @@
 }
 
 type OlderSimpleTable struct {
-	_        struct{} `fidl2:"t,16,8"`
+	_        struct{} `fidl:"t,16,8" fidl2:"t,16,8"`
 	X        int64    `fidl:"1" fidl2:"1"`
 	XPresent bool
 }
@@ -911,7 +911,7 @@
 }
 
 type NewerSimpleTable struct {
-	_        struct{} `fidl2:"t,16,8"`
+	_        struct{} `fidl:"t,16,8" fidl2:"t,16,8"`
 	X        int64    `fidl:"1" fidl2:"1"`
 	XPresent bool
 	Y        int64 `fidl:"5" fidl2:"5"`
@@ -993,14 +993,18 @@
 }
 
 const (
-	Test1EchoOrdinal          uint64 = 0x4a4939ff00000000
-	Test1NoResponseOrdinal    uint64 = 0x7e0c050500000000
-	Test1EmptyResponseOrdinal uint64 = 0x648de0d00000000
-	Test1SurpriseOrdinal      uint64 = 0x4bd66e7200000000
+	Test1EchoOrdinal             uint64 = 0x4a4939ff00000000
+	Test1EchoGenOrdinal          uint64 = 0x4adc92c9e871ae62
+	Test1NoResponseOrdinal       uint64 = 0x7e0c050500000000
+	Test1NoResponseGenOrdinal    uint64 = 0x584f4d438578f337
+	Test1EmptyResponseOrdinal    uint64 = 0x648de0d00000000
+	Test1EmptyResponseGenOrdinal uint64 = 0x12ee80a1f8a85427
+	Test1SurpriseOrdinal         uint64 = 0x4bd66e7200000000
+	Test1SurpriseGenOrdinal      uint64 = 0xf93fd4731796fd9
 )
 
 type test1EchoRequest struct {
-	_  struct{} `fidl2:"s,16,0"`
+	_  struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	In *string
 }
 
@@ -1011,7 +1015,7 @@
 }
 
 type test1EchoResponse struct {
-	_   struct{} `fidl2:"s,16,0"`
+	_   struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Out *string
 }
 
@@ -1022,7 +1026,7 @@
 }
 
 type test1SurpriseResponse struct {
-	_   struct{} `fidl2:"s,16,0"`
+	_   struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Foo string
 }
 
@@ -1058,7 +1062,7 @@
 
 func (p *Test1Interface) ExpectSurprise() (string, error) {
 	resp_ := &test1SurpriseResponse{}
-	err := ((*_bindings.ChannelProxy)(p)).Recv(Test1SurpriseOrdinal, resp_)
+	err := ((*_bindings.ChannelProxy)(p)).Recv(Test1SurpriseOrdinal, resp_, Test1SurpriseGenOrdinal)
 	return resp_.Foo, err
 }
 
@@ -1084,6 +1088,8 @@
 func (s_ *Test1Stub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case Test1EchoOrdinal:
+		fallthrough
+	case Test1EchoGenOrdinal:
 		in_ := test1EchoRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1093,9 +1099,13 @@
 		out_.Out = out
 		return &out_, true, err_
 	case Test1NoResponseOrdinal:
+		fallthrough
+	case Test1NoResponseGenOrdinal:
 		err_ := s_.Impl.NoResponse()
 		return nil, false, err_
 	case Test1EmptyResponseOrdinal:
+		fallthrough
+	case Test1EmptyResponseGenOrdinal:
 		err_ := s_.Impl.EmptyResponse()
 		return nil, true, err_
 	}
diff --git a/src/syscall/zx/fidl/conformance/impl.go b/src/syscall/zx/fidl/conformance/impl.go
index f0d1b56..28060dc 100644
--- a/src/syscall/zx/fidl/conformance/impl.go
+++ b/src/syscall/zx/fidl/conformance/impl.go
@@ -2,13 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Code generated by tools/fidl/gidl-conformance-suite/regen.sh; DO NOT EDIT.
+// GENERATED FILE: Do not edit!
+//
+// To rebuild this file, invoke third_party/go/regen-fidl.
 
 // +build fuchsia
 
-//
-// Code generated by fidlgen; DO NOT EDIT.
-
 package conformance
 
 import (
@@ -16,8 +15,147 @@
 	_bindings "syscall/zx/fidl"
 )
 
+type ThreeByte struct {
+	_     struct{} `fidl:"s,3,1" fidl2:"s,3,1"`
+	Elem1 uint8    `fidl:"0"`
+	Elem2 uint8    `fidl:"1"`
+	Elem3 uint8    `fidl:"2"`
+}
+
+var _mThreeByte = _bindings.CreateLazyMarshaler(ThreeByte{})
+
+func (msg *ThreeByte) Marshaler() _bindings.Marshaler {
+	return _mThreeByte
+}
+
+type FiveByte struct {
+	_     struct{} `fidl:"s,8,4" fidl2:"s,8,4"`
+	Elem1 uint32   `fidl:"0"`
+	Elem2 uint8    `fidl:"4"`
+}
+
+var _mFiveByte = _bindings.CreateLazyMarshaler(FiveByte{})
+
+func (msg *FiveByte) Marshaler() _bindings.Marshaler {
+	return _mFiveByte
+}
+
+type ThreeByteInStruct struct {
+	_     struct{}  `fidl:"s,9,1" fidl2:"s,9,1"`
+	Elem1 ThreeByte `fidl:"0"`
+	Elem2 ThreeByte `fidl:"3"`
+	Elem3 ThreeByte `fidl:"6"`
+}
+
+var _mThreeByteInStruct = _bindings.CreateLazyMarshaler(ThreeByteInStruct{})
+
+func (msg *ThreeByteInStruct) Marshaler() _bindings.Marshaler {
+	return _mThreeByteInStruct
+}
+
+type FiveByteInStruct struct {
+	_     struct{} `fidl:"s,24,4" fidl2:"s,24,4"`
+	Elem1 FiveByte `fidl:"0"`
+	Elem2 FiveByte `fidl:"8"`
+	Elem3 FiveByte `fidl:"16"`
+}
+
+var _mFiveByteInStruct = _bindings.CreateLazyMarshaler(FiveByteInStruct{})
+
+func (msg *FiveByteInStruct) Marshaler() _bindings.Marshaler {
+	return _mFiveByteInStruct
+}
+
+type ThreeByteInVector struct {
+	_     struct{}    `fidl:"s,16,8" fidl2:"s,16,8"`
+	Elems []ThreeByte `fidl:"0,"`
+}
+
+var _mThreeByteInVector = _bindings.CreateLazyMarshaler(ThreeByteInVector{})
+
+func (msg *ThreeByteInVector) Marshaler() _bindings.Marshaler {
+	return _mThreeByteInVector
+}
+
+type FiveByteInVector struct {
+	_     struct{}   `fidl:"s,16,8" fidl2:"s,16,8"`
+	Elems []FiveByte `fidl:"0,"`
+}
+
+var _mFiveByteInVector = _bindings.CreateLazyMarshaler(FiveByteInVector{})
+
+func (msg *FiveByteInVector) Marshaler() _bindings.Marshaler {
+	return _mFiveByteInVector
+}
+
+type ThreeByteInArray struct {
+	_     struct{}     `fidl:"s,9,1" fidl2:"s,9,1"`
+	Elems [3]ThreeByte `fidl:"0"`
+}
+
+var _mThreeByteInArray = _bindings.CreateLazyMarshaler(ThreeByteInArray{})
+
+func (msg *ThreeByteInArray) Marshaler() _bindings.Marshaler {
+	return _mThreeByteInArray
+}
+
+type FiveByteInArray struct {
+	_     struct{}    `fidl:"s,24,4" fidl2:"s,24,4"`
+	Elems [3]FiveByte `fidl:"0"`
+}
+
+var _mFiveByteInArray = _bindings.CreateLazyMarshaler(FiveByteInArray{})
+
+func (msg *FiveByteInArray) Marshaler() _bindings.Marshaler {
+	return _mFiveByteInArray
+}
+
+type StructWithInt struct {
+	_ struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
+	X int32    `fidl:"0"`
+}
+
+var _mStructWithInt = _bindings.CreateLazyMarshaler(StructWithInt{})
+
+func (msg *StructWithInt) Marshaler() _bindings.Marshaler {
+	return _mStructWithInt
+}
+
+type StructWithArrays struct {
+	_                 struct{}          `fidl:"s,120,8" fidl2:"s,120,8"`
+	ArrInt            [2]int32          `fidl:"0"`
+	ArrString         [2]string         `fidl:"8,"`
+	ArrNullableString [2]*string        `fidl:"40,"`
+	ArrStruct         [2]StructWithInt  `fidl:"72"`
+	ArrNullableStruct [2]*StructWithInt `fidl:"80"`
+	ArrArrInt         [2][3]int32       `fidl:"96"`
+}
+
+var _mStructWithArrays = _bindings.CreateLazyMarshaler(StructWithArrays{})
+
+func (msg *StructWithArrays) Marshaler() _bindings.Marshaler {
+	return _mStructWithArrays
+}
+
+type StructWithVectors struct {
+	_                 struct{}         `fidl:"s,112,8" fidl2:"s,112,8"`
+	VecEmpty          []int32          `fidl:"0,"`
+	VecInt            []int32          `fidl:"16,"`
+	VecString         []string         `fidl:"32,,"`
+	VecNullableString []*string        `fidl:"48,,"`
+	VecStruct         []StructWithInt  `fidl:"64,"`
+	VecNullableStruct []*StructWithInt `fidl:"80,"`
+	VecVecInt         [][]int32        `fidl:"96,,"`
+}
+
+var _mStructWithVectors = _bindings.CreateLazyMarshaler(StructWithVectors{})
+
+func (msg *StructWithVectors) Marshaler() _bindings.Marshaler {
+	return _mStructWithVectors
+}
+
 type TestXUnionInTable struct {
-	_     struct{}      `fidl2:"s,16,8"`
+	_     struct{}      `fidl:"s,16,8" fidl2:"s,16,8"`
 	Value XUnionInTable `fidl:"0"`
 }
 
@@ -28,7 +166,7 @@
 }
 
 type InterfaceConfig struct {
-	_               struct{}        `fidl2:"s,48,8"`
+	_               struct{}        `fidl:"s,48,8" fidl2:"s,48,8"`
 	Name            string          `fidl:"0,"`
 	IpAddressConfig IpAddressConfig `fidl:"16"`
 }
@@ -40,7 +178,7 @@
 }
 
 type TestAddEthernetDeviceRequest struct {
-	_                   struct{}        `fidl2:"s,72,8"`
+	_                   struct{}        `fidl:"s,72,8" fidl2:"s,72,8"`
 	TopologicalPath     string          `fidl:"0,"`
 	Config              InterfaceConfig `fidl:"16"`
 	ThisShouldBeAHandle uint32          `fidl:"64"`
@@ -53,7 +191,7 @@
 }
 
 type NodeAttributes struct {
-	_                struct{} `fidl2:"s,56,8"`
+	_                struct{} `fidl:"s,56,8" fidl2:"s,56,8"`
 	Mode             uint32   `fidl:"0"`
 	Id               uint64   `fidl:"8"`
 	ContentSize      uint64   `fidl:"16"`
@@ -70,7 +208,7 @@
 }
 
 type FileGetAttrResponse struct {
-	_          struct{}       `fidl2:"s,64,8"`
+	_          struct{}       `fidl:"s,64,8" fidl2:"s,64,8"`
 	S          int32          `fidl:"0"`
 	Attributes NodeAttributes `fidl:"8"`
 }
@@ -81,386 +219,8 @@
 	return _mFileGetAttrResponse
 }
 
-type StructWithInt struct {
-	_ struct{} `fidl2:"s,4,4"`
-	X int32    `fidl:"0"`
-}
-
-var _mStructWithInt = _bindings.CreateLazyMarshaler(StructWithInt{})
-
-func (msg *StructWithInt) Marshaler() _bindings.Marshaler {
-	return _mStructWithInt
-}
-
-type StructWithArrays struct {
-	_                 struct{}          `fidl2:"s,120,8"`
-	ArrInt            [2]int32          `fidl:"0"`
-	ArrString         [2]string         `fidl:"8,"`
-	ArrNullableString [2]*string        `fidl:"40,"`
-	ArrStruct         [2]StructWithInt  `fidl:"72"`
-	ArrNullableStruct [2]*StructWithInt `fidl:"80"`
-	ArrArrInt         [2][3]int32       `fidl:"96"`
-}
-
-var _mStructWithArrays = _bindings.CreateLazyMarshaler(StructWithArrays{})
-
-func (msg *StructWithArrays) Marshaler() _bindings.Marshaler {
-	return _mStructWithArrays
-}
-
-type StructWithVectors struct {
-	_                 struct{}         `fidl2:"s,112,8"`
-	VecEmpty          []int32          `fidl:"0,"`
-	VecInt            []int32          `fidl:"16,"`
-	VecString         []string         `fidl:"32,,"`
-	VecNullableString []*string        `fidl:"48,,"`
-	VecStruct         []StructWithInt  `fidl:"64,"`
-	VecNullableStruct []*StructWithInt `fidl:"80,"`
-	VecVecInt         [][]int32        `fidl:"96,,"`
-}
-
-var _mStructWithVectors = _bindings.CreateLazyMarshaler(StructWithVectors{})
-
-func (msg *StructWithVectors) Marshaler() _bindings.Marshaler {
-	return _mStructWithVectors
-}
-
-type EmptyStruct struct {
-	_ struct{} `fidl2:"s,1,1"`
-}
-
-var _mEmptyStruct = _bindings.CreateLazyMarshaler(EmptyStruct{})
-
-func (msg *EmptyStruct) Marshaler() _bindings.Marshaler {
-	return _mEmptyStruct
-}
-
-type EmptyStructSandwich struct {
-	_      struct{}    `fidl2:"s,40,8"`
-	Before string      `fidl:"0,"`
-	Es     EmptyStruct `fidl:"16"`
-	After  string      `fidl:"24,"`
-}
-
-var _mEmptyStructSandwich = _bindings.CreateLazyMarshaler(EmptyStructSandwich{})
-
-func (msg *EmptyStructSandwich) Marshaler() _bindings.Marshaler {
-	return _mEmptyStructSandwich
-}
-
-type Uint8Uint16Uint32Uint64 struct {
-	_  struct{} `fidl2:"s,16,8"`
-	F1 uint8    `fidl:"0"`
-	F2 uint16   `fidl:"2"`
-	F3 uint32   `fidl:"4"`
-	F4 uint64   `fidl:"8"`
-}
-
-var _mUint8Uint16Uint32Uint64 = _bindings.CreateLazyMarshaler(Uint8Uint16Uint32Uint64{})
-
-func (msg *Uint8Uint16Uint32Uint64) Marshaler() _bindings.Marshaler {
-	return _mUint8Uint16Uint32Uint64
-}
-
-type Uint64Uint32Uint16Uint8 struct {
-	_  struct{} `fidl2:"s,16,8"`
-	F1 uint64   `fidl:"0"`
-	F2 uint32   `fidl:"8"`
-	F3 uint16   `fidl:"12"`
-	F4 uint8    `fidl:"14"`
-}
-
-var _mUint64Uint32Uint16Uint8 = _bindings.CreateLazyMarshaler(Uint64Uint32Uint16Uint8{})
-
-func (msg *Uint64Uint32Uint16Uint8) Marshaler() _bindings.Marshaler {
-	return _mUint64Uint32Uint16Uint8
-}
-
-type Length2StringWrapper struct {
-	_             struct{} `fidl2:"s,16,8"`
-	Length2String string   `fidl:"0,2" fidl2:"2"`
-}
-
-var _mLength2StringWrapper = _bindings.CreateLazyMarshaler(Length2StringWrapper{})
-
-func (msg *Length2StringWrapper) Marshaler() _bindings.Marshaler {
-	return _mLength2StringWrapper
-}
-
-type StringWrapper struct {
-	_   struct{} `fidl2:"s,16,8"`
-	Str string   `fidl:"0,"`
-}
-
-var _mStringWrapper = _bindings.CreateLazyMarshaler(StringWrapper{})
-
-func (msg *StringWrapper) Marshaler() _bindings.Marshaler {
-	return _mStringWrapper
-}
-
-type StructOfSimpleTable struct {
-	_     struct{}    `fidl2:"s,16,8"`
-	Table SimpleTable `fidl:"0"`
-}
-
-var _mStructOfSimpleTable = _bindings.CreateLazyMarshaler(StructOfSimpleTable{})
-
-func (msg *StructOfSimpleTable) Marshaler() _bindings.Marshaler {
-	return _mStructOfSimpleTable
-}
-
-type SimpleTableThenUint64 struct {
-	_      struct{}    `fidl2:"s,24,8"`
-	Table  SimpleTable `fidl:"0"`
-	Number uint64      `fidl:"16"`
-}
-
-var _mSimpleTableThenUint64 = _bindings.CreateLazyMarshaler(SimpleTableThenUint64{})
-
-func (msg *SimpleTableThenUint64) Marshaler() _bindings.Marshaler {
-	return _mSimpleTableThenUint64
-}
-
-type StructOfTableWithStringAndVector struct {
-	_     struct{}                 `fidl2:"s,16,8"`
-	Table TableWithStringAndVector `fidl:"0"`
-}
-
-var _mStructOfTableWithStringAndVector = _bindings.CreateLazyMarshaler(StructOfTableWithStringAndVector{})
-
-func (msg *StructOfTableWithStringAndVector) Marshaler() _bindings.Marshaler {
-	return _mStructOfTableWithStringAndVector
-}
-
-type ThreeByte struct {
-	_     struct{} `fidl2:"s,3,1"`
-	Elem1 uint8    `fidl:"0"`
-	Elem2 uint8    `fidl:"1"`
-	Elem3 uint8    `fidl:"2"`
-}
-
-var _mThreeByte = _bindings.CreateLazyMarshaler(ThreeByte{})
-
-func (msg *ThreeByte) Marshaler() _bindings.Marshaler {
-	return _mThreeByte
-}
-
-type FiveByte struct {
-	_     struct{} `fidl2:"s,8,4"`
-	Elem1 uint32   `fidl:"0"`
-	Elem2 uint8    `fidl:"4"`
-}
-
-var _mFiveByte = _bindings.CreateLazyMarshaler(FiveByte{})
-
-func (msg *FiveByte) Marshaler() _bindings.Marshaler {
-	return _mFiveByte
-}
-
-type ThreeByteInStruct struct {
-	_     struct{}  `fidl2:"s,9,1"`
-	Elem1 ThreeByte `fidl:"0"`
-	Elem2 ThreeByte `fidl:"3"`
-	Elem3 ThreeByte `fidl:"6"`
-}
-
-var _mThreeByteInStruct = _bindings.CreateLazyMarshaler(ThreeByteInStruct{})
-
-func (msg *ThreeByteInStruct) Marshaler() _bindings.Marshaler {
-	return _mThreeByteInStruct
-}
-
-type FiveByteInStruct struct {
-	_     struct{} `fidl2:"s,24,4"`
-	Elem1 FiveByte `fidl:"0"`
-	Elem2 FiveByte `fidl:"8"`
-	Elem3 FiveByte `fidl:"16"`
-}
-
-var _mFiveByteInStruct = _bindings.CreateLazyMarshaler(FiveByteInStruct{})
-
-func (msg *FiveByteInStruct) Marshaler() _bindings.Marshaler {
-	return _mFiveByteInStruct
-}
-
-type ThreeByteInVector struct {
-	_     struct{}    `fidl2:"s,16,8"`
-	Elems []ThreeByte `fidl:"0,"`
-}
-
-var _mThreeByteInVector = _bindings.CreateLazyMarshaler(ThreeByteInVector{})
-
-func (msg *ThreeByteInVector) Marshaler() _bindings.Marshaler {
-	return _mThreeByteInVector
-}
-
-type FiveByteInVector struct {
-	_     struct{}   `fidl2:"s,16,8"`
-	Elems []FiveByte `fidl:"0,"`
-}
-
-var _mFiveByteInVector = _bindings.CreateLazyMarshaler(FiveByteInVector{})
-
-func (msg *FiveByteInVector) Marshaler() _bindings.Marshaler {
-	return _mFiveByteInVector
-}
-
-type ThreeByteInArray struct {
-	_     struct{}     `fidl2:"s,9,1"`
-	Elems [3]ThreeByte `fidl:"0"`
-}
-
-var _mThreeByteInArray = _bindings.CreateLazyMarshaler(ThreeByteInArray{})
-
-func (msg *ThreeByteInArray) Marshaler() _bindings.Marshaler {
-	return _mThreeByteInArray
-}
-
-type FiveByteInArray struct {
-	_     struct{}    `fidl2:"s,24,4"`
-	Elems [3]FiveByte `fidl:"0"`
-}
-
-var _mFiveByteInArray = _bindings.CreateLazyMarshaler(FiveByteInArray{})
-
-func (msg *FiveByteInArray) Marshaler() _bindings.Marshaler {
-	return _mFiveByteInArray
-}
-
-type MyBool struct {
-	_     struct{} `fidl2:"s,1,1"`
-	Value bool     `fidl:"0"`
-}
-
-var _mMyBool = _bindings.CreateLazyMarshaler(MyBool{})
-
-func (msg *MyBool) Marshaler() _bindings.Marshaler {
-	return _mMyBool
-}
-
-type MyByte struct {
-	_     struct{} `fidl2:"s,1,1"`
-	Value uint8    `fidl:"0"`
-}
-
-var _mMyByte = _bindings.CreateLazyMarshaler(MyByte{})
-
-func (msg *MyByte) Marshaler() _bindings.Marshaler {
-	return _mMyByte
-}
-
-type MyInt8 struct {
-	_     struct{} `fidl2:"s,1,1"`
-	Value int8     `fidl:"0"`
-}
-
-var _mMyInt8 = _bindings.CreateLazyMarshaler(MyInt8{})
-
-func (msg *MyInt8) Marshaler() _bindings.Marshaler {
-	return _mMyInt8
-}
-
-type MyInt16 struct {
-	_     struct{} `fidl2:"s,2,2"`
-	Value int16    `fidl:"0"`
-}
-
-var _mMyInt16 = _bindings.CreateLazyMarshaler(MyInt16{})
-
-func (msg *MyInt16) Marshaler() _bindings.Marshaler {
-	return _mMyInt16
-}
-
-type MyInt32 struct {
-	_     struct{} `fidl2:"s,4,4"`
-	Value int32    `fidl:"0"`
-}
-
-var _mMyInt32 = _bindings.CreateLazyMarshaler(MyInt32{})
-
-func (msg *MyInt32) Marshaler() _bindings.Marshaler {
-	return _mMyInt32
-}
-
-type MyInt64 struct {
-	_     struct{} `fidl2:"s,8,8"`
-	Value int64    `fidl:"0"`
-}
-
-var _mMyInt64 = _bindings.CreateLazyMarshaler(MyInt64{})
-
-func (msg *MyInt64) Marshaler() _bindings.Marshaler {
-	return _mMyInt64
-}
-
-type MyUint8 struct {
-	_     struct{} `fidl2:"s,1,1"`
-	Value uint8    `fidl:"0"`
-}
-
-var _mMyUint8 = _bindings.CreateLazyMarshaler(MyUint8{})
-
-func (msg *MyUint8) Marshaler() _bindings.Marshaler {
-	return _mMyUint8
-}
-
-type MyUint16 struct {
-	_     struct{} `fidl2:"s,2,2"`
-	Value uint16   `fidl:"0"`
-}
-
-var _mMyUint16 = _bindings.CreateLazyMarshaler(MyUint16{})
-
-func (msg *MyUint16) Marshaler() _bindings.Marshaler {
-	return _mMyUint16
-}
-
-type MyUint32 struct {
-	_     struct{} `fidl2:"s,4,4"`
-	Value uint32   `fidl:"0"`
-}
-
-var _mMyUint32 = _bindings.CreateLazyMarshaler(MyUint32{})
-
-func (msg *MyUint32) Marshaler() _bindings.Marshaler {
-	return _mMyUint32
-}
-
-type MyUint64 struct {
-	_     struct{} `fidl2:"s,8,8"`
-	Value uint64   `fidl:"0"`
-}
-
-var _mMyUint64 = _bindings.CreateLazyMarshaler(MyUint64{})
-
-func (msg *MyUint64) Marshaler() _bindings.Marshaler {
-	return _mMyUint64
-}
-
-type MyFloat32 struct {
-	_     struct{} `fidl2:"s,4,4"`
-	Value float32  `fidl:"0"`
-}
-
-var _mMyFloat32 = _bindings.CreateLazyMarshaler(MyFloat32{})
-
-func (msg *MyFloat32) Marshaler() _bindings.Marshaler {
-	return _mMyFloat32
-}
-
-type MyFloat64 struct {
-	_     struct{} `fidl2:"s,8,8"`
-	Value float64  `fidl:"0"`
-}
-
-var _mMyFloat64 = _bindings.CreateLazyMarshaler(MyFloat64{})
-
-func (msg *MyFloat64) Marshaler() _bindings.Marshaler {
-	return _mMyFloat64
-}
-
 type StructWithOptionals struct {
-	_   struct{}               `fidl2:"s,104,8"`
+	_   struct{}               `fidl:"s,104,8" fidl2:"s,104,8"`
 	S   EmptyStruct            `fidl:"0"`
 	S2  *EmptyStruct           `fidl:"8"`
 	T   TableWithEmptyStruct   `fidl:"16"`
@@ -476,8 +236,247 @@
 	return _mStructWithOptionals
 }
 
+type MyBool struct {
+	_     struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
+	Value bool     `fidl:"0"`
+}
+
+var _mMyBool = _bindings.CreateLazyMarshaler(MyBool{})
+
+func (msg *MyBool) Marshaler() _bindings.Marshaler {
+	return _mMyBool
+}
+
+type MyByte struct {
+	_     struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
+	Value uint8    `fidl:"0"`
+}
+
+var _mMyByte = _bindings.CreateLazyMarshaler(MyByte{})
+
+func (msg *MyByte) Marshaler() _bindings.Marshaler {
+	return _mMyByte
+}
+
+type MyInt8 struct {
+	_     struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
+	Value int8     `fidl:"0"`
+}
+
+var _mMyInt8 = _bindings.CreateLazyMarshaler(MyInt8{})
+
+func (msg *MyInt8) Marshaler() _bindings.Marshaler {
+	return _mMyInt8
+}
+
+type MyInt16 struct {
+	_     struct{} `fidl:"s,2,2" fidl2:"s,2,2"`
+	Value int16    `fidl:"0"`
+}
+
+var _mMyInt16 = _bindings.CreateLazyMarshaler(MyInt16{})
+
+func (msg *MyInt16) Marshaler() _bindings.Marshaler {
+	return _mMyInt16
+}
+
+type MyInt32 struct {
+	_     struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
+	Value int32    `fidl:"0"`
+}
+
+var _mMyInt32 = _bindings.CreateLazyMarshaler(MyInt32{})
+
+func (msg *MyInt32) Marshaler() _bindings.Marshaler {
+	return _mMyInt32
+}
+
+type MyInt64 struct {
+	_     struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
+	Value int64    `fidl:"0"`
+}
+
+var _mMyInt64 = _bindings.CreateLazyMarshaler(MyInt64{})
+
+func (msg *MyInt64) Marshaler() _bindings.Marshaler {
+	return _mMyInt64
+}
+
+type MyUint8 struct {
+	_     struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
+	Value uint8    `fidl:"0"`
+}
+
+var _mMyUint8 = _bindings.CreateLazyMarshaler(MyUint8{})
+
+func (msg *MyUint8) Marshaler() _bindings.Marshaler {
+	return _mMyUint8
+}
+
+type MyUint16 struct {
+	_     struct{} `fidl:"s,2,2" fidl2:"s,2,2"`
+	Value uint16   `fidl:"0"`
+}
+
+var _mMyUint16 = _bindings.CreateLazyMarshaler(MyUint16{})
+
+func (msg *MyUint16) Marshaler() _bindings.Marshaler {
+	return _mMyUint16
+}
+
+type MyUint32 struct {
+	_     struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
+	Value uint32   `fidl:"0"`
+}
+
+var _mMyUint32 = _bindings.CreateLazyMarshaler(MyUint32{})
+
+func (msg *MyUint32) Marshaler() _bindings.Marshaler {
+	return _mMyUint32
+}
+
+type MyUint64 struct {
+	_     struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
+	Value uint64   `fidl:"0"`
+}
+
+var _mMyUint64 = _bindings.CreateLazyMarshaler(MyUint64{})
+
+func (msg *MyUint64) Marshaler() _bindings.Marshaler {
+	return _mMyUint64
+}
+
+type MyFloat32 struct {
+	_     struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
+	Value float32  `fidl:"0"`
+}
+
+var _mMyFloat32 = _bindings.CreateLazyMarshaler(MyFloat32{})
+
+func (msg *MyFloat32) Marshaler() _bindings.Marshaler {
+	return _mMyFloat32
+}
+
+type MyFloat64 struct {
+	_     struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
+	Value float64  `fidl:"0"`
+}
+
+var _mMyFloat64 = _bindings.CreateLazyMarshaler(MyFloat64{})
+
+func (msg *MyFloat64) Marshaler() _bindings.Marshaler {
+	return _mMyFloat64
+}
+
+type Length2StringWrapper struct {
+	_             struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	Length2String string   `fidl:"0,2" fidl2:"2"`
+}
+
+var _mLength2StringWrapper = _bindings.CreateLazyMarshaler(Length2StringWrapper{})
+
+func (msg *Length2StringWrapper) Marshaler() _bindings.Marshaler {
+	return _mLength2StringWrapper
+}
+
+type StringWrapper struct {
+	_   struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	Str string   `fidl:"0,"`
+}
+
+var _mStringWrapper = _bindings.CreateLazyMarshaler(StringWrapper{})
+
+func (msg *StringWrapper) Marshaler() _bindings.Marshaler {
+	return _mStringWrapper
+}
+
+type EmptyStruct struct {
+	_ struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
+}
+
+var _mEmptyStruct = _bindings.CreateLazyMarshaler(EmptyStruct{})
+
+func (msg *EmptyStruct) Marshaler() _bindings.Marshaler {
+	return _mEmptyStruct
+}
+
+type EmptyStructSandwich struct {
+	_      struct{}    `fidl:"s,40,8" fidl2:"s,40,8"`
+	Before string      `fidl:"0,"`
+	Es     EmptyStruct `fidl:"16"`
+	After  string      `fidl:"24,"`
+}
+
+var _mEmptyStructSandwich = _bindings.CreateLazyMarshaler(EmptyStructSandwich{})
+
+func (msg *EmptyStructSandwich) Marshaler() _bindings.Marshaler {
+	return _mEmptyStructSandwich
+}
+
+type Uint8Uint16Uint32Uint64 struct {
+	_  struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	F1 uint8    `fidl:"0"`
+	F2 uint16   `fidl:"2"`
+	F3 uint32   `fidl:"4"`
+	F4 uint64   `fidl:"8"`
+}
+
+var _mUint8Uint16Uint32Uint64 = _bindings.CreateLazyMarshaler(Uint8Uint16Uint32Uint64{})
+
+func (msg *Uint8Uint16Uint32Uint64) Marshaler() _bindings.Marshaler {
+	return _mUint8Uint16Uint32Uint64
+}
+
+type Uint64Uint32Uint16Uint8 struct {
+	_  struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	F1 uint64   `fidl:"0"`
+	F2 uint32   `fidl:"8"`
+	F3 uint16   `fidl:"12"`
+	F4 uint8    `fidl:"14"`
+}
+
+var _mUint64Uint32Uint16Uint8 = _bindings.CreateLazyMarshaler(Uint64Uint32Uint16Uint8{})
+
+func (msg *Uint64Uint32Uint16Uint8) Marshaler() _bindings.Marshaler {
+	return _mUint64Uint32Uint16Uint8
+}
+
+type StructOfSimpleTable struct {
+	_     struct{}    `fidl:"s,16,8" fidl2:"s,16,8"`
+	Table SimpleTable `fidl:"0"`
+}
+
+var _mStructOfSimpleTable = _bindings.CreateLazyMarshaler(StructOfSimpleTable{})
+
+func (msg *StructOfSimpleTable) Marshaler() _bindings.Marshaler {
+	return _mStructOfSimpleTable
+}
+
+type SimpleTableThenUint64 struct {
+	_      struct{}    `fidl:"s,24,8" fidl2:"s,24,8"`
+	Table  SimpleTable `fidl:"0"`
+	Number uint64      `fidl:"16"`
+}
+
+var _mSimpleTableThenUint64 = _bindings.CreateLazyMarshaler(SimpleTableThenUint64{})
+
+func (msg *SimpleTableThenUint64) Marshaler() _bindings.Marshaler {
+	return _mSimpleTableThenUint64
+}
+
+type StructOfTableWithStringAndVector struct {
+	_     struct{}                 `fidl:"s,16,8" fidl2:"s,16,8"`
+	Table TableWithStringAndVector `fidl:"0"`
+}
+
+var _mStructOfTableWithStringAndVector = _bindings.CreateLazyMarshaler(StructOfTableWithStringAndVector{})
+
+func (msg *StructOfTableWithStringAndVector) Marshaler() _bindings.Marshaler {
+	return _mStructOfTableWithStringAndVector
+}
+
 type Int64Struct struct {
-	_ struct{} `fidl2:"s,8,8"`
+	_ struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
 	X int64    `fidl:"0"`
 }
 
@@ -488,7 +487,7 @@
 }
 
 type TestInlineXUnionInStruct struct {
-	_      struct{}     `fidl2:"s,56,8"`
+	_      struct{}     `fidl:"s,56,8" fidl2:"s,56,8"`
 	Before string       `fidl:"0,"`
 	Xu     SampleXUnion `fidl:"16"`
 	After  string       `fidl:"40,"`
@@ -501,7 +500,7 @@
 }
 
 type TestOptionalXUnionInStruct struct {
-	_      struct{}      `fidl2:"s,56,8"`
+	_      struct{}      `fidl:"s,56,8" fidl2:"s,56,8"`
 	Before string        `fidl:"0,"`
 	Xu     *SampleXUnion `fidl:"16"`
 	After  string        `fidl:"40,"`
@@ -514,7 +513,7 @@
 }
 
 type TestStrictXUnionInStruct struct {
-	_  struct{}           `fidl2:"s,24,8"`
+	_  struct{}           `fidl:"s,24,8" fidl2:"s,24,8"`
 	Xu SampleStrictXUnion `fidl:"0"`
 }
 
@@ -525,7 +524,7 @@
 }
 
 type TestFlexibleXUnionInStruct struct {
-	_  struct{}     `fidl2:"s,24,8"`
+	_  struct{}     `fidl:"s,24,8" fidl2:"s,24,8"`
 	Xu SampleXUnion `fidl:"0"`
 }
 
@@ -544,7 +543,7 @@
 )
 
 type IpAddressConfig struct {
-	I_ipAddressConfigTag `fidl:"tag" fidl2:"u,28,4"`
+	I_ipAddressConfigTag `fidl:"u,28,4" fidl2:"u,28,4"`
 	PaddingSize24Align4  [6]uint32
 	Dhcp                 bool
 }
@@ -584,7 +583,7 @@
 )
 
 type UnionWithEmptyStruct struct {
-	I_unionWithEmptyStructTag `fidl:"tag" fidl2:"u,16,8"`
+	I_unionWithEmptyStructTag `fidl:"u,16,8" fidl2:"u,16,8"`
 	S                         EmptyStruct
 	S2                        *EmptyStruct
 }
@@ -627,7 +626,7 @@
 )
 
 type SimpleUnion struct {
-	I_simpleUnionTag `fidl:"tag" fidl2:"u,24,8"`
+	I_simpleUnionTag `fidl:"u,24,8" fidl2:"u,24,8"`
 	I32              int32
 	I64              int64
 	S                Int64Struct
@@ -702,7 +701,7 @@
 )
 
 type XUnionWithEmptyStruct struct {
-	I_xUnionWithEmptyStructTag `fidl2:"x,24,8"`
+	I_xUnionWithEmptyStructTag `fidl:"x,24,8" fidl2:"x,24,8"`
 	I_unknownData              []byte
 	S                          EmptyStruct `fidl:"1956241662" fidl2:"1956241662"`
 }
@@ -741,7 +740,7 @@
 )
 
 type SampleXUnion struct {
-	I_sampleXUnionTag `fidl2:"x,24,8"`
+	I_sampleXUnionTag `fidl:"x,24,8" fidl2:"x,24,8"`
 	I_unknownData     []byte
 	U                 uint32      `fidl:"949769906" fidl2:"949769906"`
 	Su                SimpleUnion `fidl:"2033143581" fidl2:"2033143581"`
@@ -807,7 +806,7 @@
 )
 
 type SampleStrictXUnion struct {
-	I_sampleStrictXUnionTag `fidl2:"x!,24,8"`
+	I_sampleStrictXUnionTag `fidl:"x!,24,8" fidl2:"x!,24,8"`
 	I_unknownData           []byte
 	U                       uint32      `fidl:"149088882" fidl2:"149088882"`
 	Su                      SimpleUnion `fidl:"670279483" fidl2:"670279483"`
@@ -856,7 +855,7 @@
 }
 
 type XUnionInTable struct {
-	_             struct{} `fidl2:"t,16,8"`
+	_             struct{} `fidl:"t,16,8" fidl2:"t,16,8"`
 	Before        string   `fidl:"1," fidl2:"1,"`
 	BeforePresent bool
 	Xu            SampleXUnion `fidl:"2" fidl2:"2"`
@@ -937,8 +936,38 @@
 	u.AfterPresent = false
 }
 
+type TableWithEmptyStruct struct {
+	_        struct{}    `fidl:"t,16,8" fidl2:"t,16,8"`
+	S        EmptyStruct `fidl:"1" fidl2:"1"`
+	SPresent bool
+}
+
+func (u *TableWithEmptyStruct) SetS(s EmptyStruct) {
+	u.S = s
+	u.SPresent = true
+}
+
+func (u *TableWithEmptyStruct) GetS() EmptyStruct {
+	return u.S
+}
+
+func (u *TableWithEmptyStruct) GetSWithDefault(_default EmptyStruct) EmptyStruct {
+	if !u.HasS() {
+		return _default
+	}
+	return u.S
+}
+
+func (u *TableWithEmptyStruct) HasS() bool {
+	return u.SPresent
+}
+
+func (u *TableWithEmptyStruct) ClearS() {
+	u.SPresent = false
+}
+
 type SimpleTable struct {
-	_        struct{} `fidl2:"t,16,8"`
+	_        struct{} `fidl:"t,16,8" fidl2:"t,16,8"`
 	X        int64    `fidl:"1" fidl2:"1"`
 	XPresent bool
 	Y        int64 `fidl:"5" fidl2:"5"`
@@ -994,7 +1023,7 @@
 }
 
 type TableWithStringAndVector struct {
-	_          struct{} `fidl2:"t,16,8"`
+	_          struct{} `fidl:"t,16,8" fidl2:"t,16,8"`
 	Foo        string   `fidl:"1," fidl2:"1,"`
 	FooPresent bool
 	Bar        int32 `fidl:"2" fidl2:"2"`
@@ -1075,36 +1104,6 @@
 	u.BazPresent = false
 }
 
-type TableWithEmptyStruct struct {
-	_        struct{}    `fidl2:"t,16,8"`
-	S        EmptyStruct `fidl:"1" fidl2:"1"`
-	SPresent bool
-}
-
-func (u *TableWithEmptyStruct) SetS(s EmptyStruct) {
-	u.S = s
-	u.SPresent = true
-}
-
-func (u *TableWithEmptyStruct) GetS() EmptyStruct {
-	return u.S
-}
-
-func (u *TableWithEmptyStruct) GetSWithDefault(_default EmptyStruct) EmptyStruct {
-	if !u.HasS() {
-		return _default
-	}
-	return u.S
-}
-
-func (u *TableWithEmptyStruct) HasS() bool {
-	return u.SPresent
-}
-
-func (u *TableWithEmptyStruct) ClearS() {
-	u.SPresent = false
-}
-
 type EthernetDeviceInterface _bindings.ChannelProxy
 
 type EthernetDevice interface {
diff --git a/src/syscall/zx/io/impl.go b/src/syscall/zx/io/impl.go
index 050ba96..f7c8fbc 100644
--- a/src/syscall/zx/io/impl.go
+++ b/src/syscall/zx/io/impl.go
@@ -199,7 +199,7 @@
 // The default protocol, interface information must be acquired some
 // other way.
 type Service struct {
-	_ struct{} `fidl2:"s,1,1"`
+	_ struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
 }
 
 var _mService = _bindings.CreateLazyMarshaler(Service{})
@@ -210,14 +210,14 @@
 
 // The object may be cast to interface 'File'.
 type FileObject struct {
-	_ struct{} `fidl2:"s,4,4"`
+	_ struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
 	// An optional event which transmits information about an object's readability
 	// or writability. This event relays information about the underlying object, not
 	// the capability granted to client: this event may be signalled "readable" on a
 	// connection that does not have the capability to read.
 	//
 	// The "`FILE_SIGNAL_`" values may be observed on this event.
-	Event _zx.Event `fidl:"1" fidl2:"1"`
+	Event _zx.Event `fidl:"0,1" fidl2:"1"`
 }
 
 var _mFileObject = _bindings.CreateLazyMarshaler(FileObject{})
@@ -228,7 +228,7 @@
 
 // The object may be cast to interface 'Directory'.
 type DirectoryObject struct {
-	_ struct{} `fidl2:"s,1,1"`
+	_ struct{} `fidl:"s,1,1" fidl2:"s,1,1"`
 }
 
 var _mDirectoryObject = _bindings.CreateLazyMarshaler(DirectoryObject{})
@@ -239,8 +239,8 @@
 
 // The object is accompanied by a pipe.
 type Pipe struct {
-	_      struct{}   `fidl2:"s,4,4"`
-	Socket _zx.Socket `fidl:"0" fidl2:"0"`
+	_      struct{}   `fidl:"s,4,4" fidl2:"s,4,4"`
+	Socket _zx.Socket `fidl:"0,0" fidl2:"0"`
 }
 
 var _mPipe = _bindings.CreateLazyMarshaler(Pipe{})
@@ -251,8 +251,8 @@
 
 // The object is accompanied by a socket.
 type Socket struct {
-	_      struct{}   `fidl2:"s,4,4"`
-	Socket _zx.Socket `fidl:"0" fidl2:"0"`
+	_      struct{}   `fidl:"s,4,4" fidl2:"s,4,4"`
+	Socket _zx.Socket `fidl:"0,0" fidl2:"0"`
 }
 
 var _mSocket = _bindings.CreateLazyMarshaler(Socket{})
@@ -266,13 +266,13 @@
 // may represent multiple Vmofiles. To identify the logical portion of the VMO
 // that represents the single file, an offset and length parameter are also supplied.
 type Vmofile struct {
-	_ struct{} `fidl2:"s,24,8"`
+	_ struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
 	// The VMO which backs this file.
-	Vmo _zx.VMO `fidl:"0" fidl2:"0"`
+	Vmo _zx.VMO `fidl:"0,0" fidl2:"0"`
 	// The index into `vmo` which represents the first byte of the file.
-	Offset uint64
+	Offset uint64 `fidl:"8"`
 	// The number of bytes, starting at `offset`, which may be used to represent this file.
-	Length uint64
+	Length uint64 `fidl:"16"`
 }
 
 var _mVmofile = _bindings.CreateLazyMarshaler(Vmofile{})
@@ -283,11 +283,11 @@
 
 // The object may be cast to interface 'Device'.
 type Device struct {
-	_ struct{} `fidl2:"s,4,4"`
+	_ struct{} `fidl:"s,4,4" fidl2:"s,4,4"`
 	// An optional event which transmits information about a device's state.
 	//
 	// The "`DEVICE_SIGNAL_`" values may be observed on this event.
-	Event _zx.Handle `fidl:"1" fidl2:"1"`
+	Event _zx.Handle `fidl:"0,1" fidl2:"1"`
 }
 
 var _mDevice = _bindings.CreateLazyMarshaler(Device{})
@@ -298,8 +298,8 @@
 
 // The object may be cast to interface 'Tty'
 type Tty struct {
-	_     struct{}   `fidl2:"s,4,4"`
-	Event _zx.Handle `fidl:"1" fidl2:"1"`
+	_     struct{}   `fidl:"s,4,4" fidl2:"s,4,4"`
+	Event _zx.Handle `fidl:"0,1" fidl2:"1"`
 }
 
 var _mTty = _bindings.CreateLazyMarshaler(Tty{})
@@ -310,21 +310,21 @@
 
 // NodeAttributes defines generic information about a filesystem node.
 type NodeAttributes struct {
-	_ struct{} `fidl2:"s,56,8"`
+	_ struct{} `fidl:"s,56,8" fidl2:"s,56,8"`
 	// Protection bits and node type information describe in 'mode'.
-	Mode uint32
+	Mode uint32 `fidl:"0"`
 	// A filesystem-unique ID.
-	Id uint64
+	Id uint64 `fidl:"8"`
 	// Node size, in bytes.
-	ContentSize uint64
+	ContentSize uint64 `fidl:"16"`
 	// Space needed to store node (possibly larger than size), in bytes.
-	StorageSize uint64
+	StorageSize uint64 `fidl:"24"`
 	// Hard link count.
-	LinkCount uint64
+	LinkCount uint64 `fidl:"32"`
 	// Time of creation (may be updated manually after creation) in ns since Unix epoch, UTC.
-	CreationTime uint64
+	CreationTime uint64 `fidl:"40"`
 	// Time of last modification in ns since Unix epoch, UTC.
-	ModificationTime uint64
+	ModificationTime uint64 `fidl:"48"`
 }
 
 var _mNodeAttributes = _bindings.CreateLazyMarshaler(NodeAttributes{})
@@ -335,10 +335,10 @@
 
 // WatchedEvent describes events returned from a DirectoryWatcher.
 type WatchedEvent struct {
-	_     struct{} `fidl2:"s,24,8"`
-	Event uint8
-	Len   uint8
-	Name  []uint8 `fidl:"255" fidl2:"255"`
+	_     struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
+	Event uint8    `fidl:"0"`
+	Len   uint8    `fidl:"1"`
+	Name  []uint8  `fidl:"8,255" fidl2:"255"`
 }
 
 var _mWatchedEvent = _bindings.CreateLazyMarshaler(WatchedEvent{})
@@ -348,29 +348,29 @@
 }
 
 type FilesystemInfo struct {
-	_ struct{} `fidl2:"s,96,8"`
+	_ struct{} `fidl:"s,96,8" fidl2:"s,96,8"`
 	// The number of data bytes which may be stored in a filesystem.
-	TotalBytes uint64
+	TotalBytes uint64 `fidl:"0"`
 	// The number of data bytes which are in use by the filesystem.
-	UsedBytes uint64
+	UsedBytes uint64 `fidl:"8"`
 	// The number of nodes which may be stored in the filesystem.
-	TotalNodes uint64
+	TotalNodes uint64 `fidl:"16"`
 	// The number of nodes used by the filesystem.
-	UsedNodes uint64
+	UsedNodes uint64 `fidl:"24"`
 	// The amount of space which may be allocated from the underlying
 	// volume manager. If unsupported, this will be zero.
-	FreeSharedPoolBytes uint64
+	FreeSharedPoolBytes uint64 `fidl:"32"`
 	// A unique identifier for this filesystem instance. Will not be preserved
 	// across reboots.
-	FsId uint64
+	FsId uint64 `fidl:"40"`
 	// The size of a single filesystem block.
-	BlockSize uint32
+	BlockSize uint32 `fidl:"48"`
 	// The maximum length of a filesystem name.
-	MaxFilenameSize uint32
+	MaxFilenameSize uint32 `fidl:"52"`
 	// A unique identifier for the type of the underlying filesystem.
-	FsType  uint32
-	Padding uint32
-	Name    [32]int8
+	FsType  uint32   `fidl:"56"`
+	Padding uint32   `fidl:"60"`
+	Name    [32]int8 `fidl:"64"`
 }
 
 var _mFilesystemInfo = _bindings.CreateLazyMarshaler(FilesystemInfo{})
@@ -398,7 +398,7 @@
 //
 // Refer to `Node::Describe()` and `Node::OnOpen()` for usage.
 type NodeInfo struct {
-	I_nodeInfoTag `fidl:"tag" fidl2:"u,32,8"`
+	I_nodeInfoTag `fidl:"u,32,8" fidl2:"u,32,8"`
 	Service       Service
 	File          FileObject
 	Directory     DirectoryObject
@@ -502,18 +502,26 @@
 }
 
 const (
-	NodeCloneOrdinal    uint64 = 0x17fe6a4c00000000
-	NodeCloseOrdinal    uint64 = 0x52b9568700000000
-	NodeDescribeOrdinal uint64 = 0x1f62df5e00000000
-	NodeOnOpenOrdinal   uint64 = 0x4700a7bd00000000
-	NodeSyncOrdinal     uint64 = 0x62423faa00000000
-	NodeGetAttrOrdinal  uint64 = 0x4585e7c800000000
-	NodeSetAttrOrdinal  uint64 = 0xbd5559a00000000
-	NodeIoctlOrdinal    uint64 = 0x35f3aca700000000
+	NodeCloneOrdinal       uint64 = 0x17fe6a4c00000000
+	NodeCloneGenOrdinal    uint64 = 0x5a61678f293ce16f
+	NodeCloseOrdinal       uint64 = 0x52b9568700000000
+	NodeCloseGenOrdinal    uint64 = 0x5309c5bd1c33dc44
+	NodeDescribeOrdinal    uint64 = 0x1f62df5e00000000
+	NodeDescribeGenOrdinal uint64 = 0xffcec215078dea0
+	NodeOnOpenOrdinal      uint64 = 0x4700a7bd00000000
+	NodeOnOpenGenOrdinal   uint64 = 0x7fc7bbb1dbfd1972
+	NodeSyncOrdinal        uint64 = 0x62423faa00000000
+	NodeSyncGenOrdinal     uint64 = 0x189d88326c18b519
+	NodeGetAttrOrdinal     uint64 = 0x4585e7c800000000
+	NodeGetAttrGenOrdinal  uint64 = 0x78985e216314dafd
+	NodeSetAttrOrdinal     uint64 = 0xbd5559a00000000
+	NodeSetAttrGenOrdinal  uint64 = 0x4186c0f40d938f46
+	NodeIoctlOrdinal       uint64 = 0x35f3aca700000000
+	NodeIoctlGenOrdinal    uint64 = 0x45afae358dcb5b88
 )
 
 type nodeCloneRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags  uint32
 	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
 }
@@ -525,7 +533,7 @@
 }
 
 type nodeCloseResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -536,7 +544,7 @@
 }
 
 type nodeDescribeResponse struct {
-	_    struct{} `fidl2:"s,32,0"`
+	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Info NodeInfo
 }
 
@@ -547,7 +555,7 @@
 }
 
 type nodeOnOpenResponse struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S    int32
 	Info *NodeInfo
 }
@@ -559,7 +567,7 @@
 }
 
 type nodeSyncResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -570,7 +578,7 @@
 }
 
 type nodeGetAttrResponse struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	S          int32
 	Attributes NodeAttributes
 }
@@ -582,7 +590,7 @@
 }
 
 type nodeSetAttrRequest struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	Flags      uint32
 	Attributes NodeAttributes
 }
@@ -594,7 +602,7 @@
 }
 
 type nodeSetAttrResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -605,7 +613,7 @@
 }
 
 type nodeIoctlRequest struct {
-	_       struct{} `fidl2:"s,48,0"`
+	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
 	Opcode  uint32
 	MaxOut  uint64
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
@@ -619,7 +627,7 @@
 }
 
 type nodeIoctlResponse struct {
-	_       struct{} `fidl2:"s,40,0"`
+	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
 	S       int32
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
 	Out     []uint8      `fidl:"8192" fidl2:"8192"`
@@ -686,7 +694,7 @@
 // (the same as would be returned by `Describe`).
 func (p *NodeInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
 	resp_ := &nodeOnOpenResponse{}
-	err := ((*_bindings.ChannelProxy)(p)).Recv(NodeOnOpenOrdinal, resp_)
+	err := ((*_bindings.ChannelProxy)(p)).Recv(NodeOnOpenOrdinal, resp_, NodeOnOpenGenOrdinal)
 	return resp_.S, resp_.Info, err
 }
 
@@ -803,6 +811,8 @@
 func (s_ *NodeStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case NodeCloneOrdinal:
+		fallthrough
+	case NodeCloneGenOrdinal:
 		in_ := nodeCloneRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -810,27 +820,37 @@
 		err_ := s_.Impl.Clone(in_.Flags, in_.Object)
 		return nil, false, err_
 	case NodeCloseOrdinal:
+		fallthrough
+	case NodeCloseGenOrdinal:
 		s, err_ := s_.Impl.Close()
 		out_ := nodeCloseResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case NodeDescribeOrdinal:
+		fallthrough
+	case NodeDescribeGenOrdinal:
 		info, err_ := s_.Impl.Describe()
 		out_ := nodeDescribeResponse{}
 		out_.Info = info
 		return &out_, true, err_
 	case NodeSyncOrdinal:
+		fallthrough
+	case NodeSyncGenOrdinal:
 		s, err_ := s_.Impl.Sync()
 		out_ := nodeSyncResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case NodeGetAttrOrdinal:
+		fallthrough
+	case NodeGetAttrGenOrdinal:
 		s, attributes, err_ := s_.Impl.GetAttr()
 		out_ := nodeGetAttrResponse{}
 		out_.S = s
 		out_.Attributes = attributes
 		return &out_, true, err_
 	case NodeSetAttrOrdinal:
+		fallthrough
+	case NodeSetAttrGenOrdinal:
 		in_ := nodeSetAttrRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -840,6 +860,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case NodeIoctlOrdinal:
+		fallthrough
+	case NodeIoctlGenOrdinal:
 		in_ := nodeIoctlRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -878,27 +900,44 @@
 }
 
 const (
-	FileCloneOrdinal     uint64 = 0x17fe6a4c00000000
-	FileCloseOrdinal     uint64 = 0x52b9568700000000
-	FileDescribeOrdinal  uint64 = 0x1f62df5e00000000
-	FileOnOpenOrdinal    uint64 = 0x4700a7bd00000000
-	FileSyncOrdinal      uint64 = 0x62423faa00000000
-	FileGetAttrOrdinal   uint64 = 0x4585e7c800000000
-	FileSetAttrOrdinal   uint64 = 0xbd5559a00000000
-	FileIoctlOrdinal     uint64 = 0x35f3aca700000000
-	FileReadOrdinal      uint64 = 0x25f7418400000000
-	FileReadAtOrdinal    uint64 = 0x7c724dc400000000
-	FileWriteOrdinal     uint64 = 0x512e7a000000000
-	FileWriteAtOrdinal   uint64 = 0x3e5522e500000000
-	FileSeekOrdinal      uint64 = 0x782a774500000000
-	FileTruncateOrdinal  uint64 = 0x42ab3a3a00000000
-	FileGetFlagsOrdinal  uint64 = 0x6416a3f600000000
-	FileSetFlagsOrdinal  uint64 = 0x3f23cc7600000000
-	FileGetBufferOrdinal uint64 = 0x74c3097300000000
+	FileCloneOrdinal        uint64 = 0x17fe6a4c00000000
+	FileCloneGenOrdinal     uint64 = 0x5a61678f293ce16f
+	FileCloseOrdinal        uint64 = 0x52b9568700000000
+	FileCloseGenOrdinal     uint64 = 0x5309c5bd1c33dc44
+	FileDescribeOrdinal     uint64 = 0x1f62df5e00000000
+	FileDescribeGenOrdinal  uint64 = 0xffcec215078dea0
+	FileOnOpenOrdinal       uint64 = 0x4700a7bd00000000
+	FileOnOpenGenOrdinal    uint64 = 0x7fc7bbb1dbfd1972
+	FileSyncOrdinal         uint64 = 0x62423faa00000000
+	FileSyncGenOrdinal      uint64 = 0x189d88326c18b519
+	FileGetAttrOrdinal      uint64 = 0x4585e7c800000000
+	FileGetAttrGenOrdinal   uint64 = 0x78985e216314dafd
+	FileSetAttrOrdinal      uint64 = 0xbd5559a00000000
+	FileSetAttrGenOrdinal   uint64 = 0x4186c0f40d938f46
+	FileIoctlOrdinal        uint64 = 0x35f3aca700000000
+	FileIoctlGenOrdinal     uint64 = 0x45afae358dcb5b88
+	FileReadOrdinal         uint64 = 0x25f7418400000000
+	FileReadGenOrdinal      uint64 = 0x29b2b7074c95208c
+	FileReadAtOrdinal       uint64 = 0x7c724dc400000000
+	FileReadAtGenOrdinal    uint64 = 0x6527ee3fbc9c5749
+	FileWriteOrdinal        uint64 = 0x512e7a000000000
+	FileWriteGenOrdinal     uint64 = 0x3b6432f57914225b
+	FileWriteAtOrdinal      uint64 = 0x3e5522e500000000
+	FileWriteAtGenOrdinal   uint64 = 0x4b29e1582ab379e4
+	FileSeekOrdinal         uint64 = 0x782a774500000000
+	FileSeekGenOrdinal      uint64 = 0x324968e9b8a0e394
+	FileTruncateOrdinal     uint64 = 0x42ab3a3a00000000
+	FileTruncateGenOrdinal  uint64 = 0x5ec8f337359a2ddb
+	FileGetFlagsOrdinal     uint64 = 0x6416a3f600000000
+	FileGetFlagsGenOrdinal  uint64 = 0x200be82ca523ab96
+	FileSetFlagsOrdinal     uint64 = 0x3f23cc7600000000
+	FileSetFlagsGenOrdinal  uint64 = 0x713f375258671141
+	FileGetBufferOrdinal    uint64 = 0x74c3097300000000
+	FileGetBufferGenOrdinal uint64 = 0x4b93b8486666d951
 )
 
 type fileCloneRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags  uint32
 	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
 }
@@ -910,7 +949,7 @@
 }
 
 type fileCloseResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -921,7 +960,7 @@
 }
 
 type fileDescribeResponse struct {
-	_    struct{} `fidl2:"s,32,0"`
+	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Info NodeInfo
 }
 
@@ -932,7 +971,7 @@
 }
 
 type fileOnOpenResponse struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S    int32
 	Info *NodeInfo
 }
@@ -944,7 +983,7 @@
 }
 
 type fileSyncResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -955,7 +994,7 @@
 }
 
 type fileGetAttrResponse struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	S          int32
 	Attributes NodeAttributes
 }
@@ -967,7 +1006,7 @@
 }
 
 type fileSetAttrRequest struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	Flags      uint32
 	Attributes NodeAttributes
 }
@@ -979,7 +1018,7 @@
 }
 
 type fileSetAttrResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -990,7 +1029,7 @@
 }
 
 type fileIoctlRequest struct {
-	_       struct{} `fidl2:"s,48,0"`
+	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
 	Opcode  uint32
 	MaxOut  uint64
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
@@ -1004,7 +1043,7 @@
 }
 
 type fileIoctlResponse struct {
-	_       struct{} `fidl2:"s,40,0"`
+	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
 	S       int32
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
 	Out     []uint8      `fidl:"8192" fidl2:"8192"`
@@ -1017,7 +1056,7 @@
 }
 
 type fileReadRequest struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Count uint64
 }
 
@@ -1028,7 +1067,7 @@
 }
 
 type fileReadResponse struct {
-	_    struct{} `fidl2:"s,24,0"`
+	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	S    int32
 	Data []uint8 `fidl:"8192" fidl2:"8192"`
 }
@@ -1040,7 +1079,7 @@
 }
 
 type fileReadAtRequest struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Count  uint64
 	Offset uint64
 }
@@ -1052,7 +1091,7 @@
 }
 
 type fileReadAtResponse struct {
-	_    struct{} `fidl2:"s,24,0"`
+	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	S    int32
 	Data []uint8 `fidl:"8192" fidl2:"8192"`
 }
@@ -1064,7 +1103,7 @@
 }
 
 type fileWriteRequest struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Data []uint8  `fidl:"8192" fidl2:"8192"`
 }
 
@@ -1075,7 +1114,7 @@
 }
 
 type fileWriteResponse struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S      int32
 	Actual uint64
 }
@@ -1087,7 +1126,7 @@
 }
 
 type fileWriteAtRequest struct {
-	_      struct{} `fidl2:"s,24,0"`
+	_      struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Data   []uint8  `fidl:"8192" fidl2:"8192"`
 	Offset uint64
 }
@@ -1099,7 +1138,7 @@
 }
 
 type fileWriteAtResponse struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S      int32
 	Actual uint64
 }
@@ -1111,7 +1150,7 @@
 }
 
 type fileSeekRequest struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Offset int64
 	Start  SeekOrigin
 }
@@ -1123,7 +1162,7 @@
 }
 
 type fileSeekResponse struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S      int32
 	Offset uint64
 }
@@ -1135,7 +1174,7 @@
 }
 
 type fileTruncateRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Length uint64
 }
 
@@ -1146,7 +1185,7 @@
 }
 
 type fileTruncateResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1157,7 +1196,7 @@
 }
 
 type fileGetFlagsResponse struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S     int32
 	Flags uint32
 }
@@ -1169,7 +1208,7 @@
 }
 
 type fileSetFlagsRequest struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags uint32
 }
 
@@ -1180,7 +1219,7 @@
 }
 
 type fileSetFlagsResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1191,7 +1230,7 @@
 }
 
 type fileGetBufferRequest struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags uint32
 }
 
@@ -1202,7 +1241,7 @@
 }
 
 type fileGetBufferResponse struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S      int32
 	Buffer *fuchsiamem.Buffer
 }
@@ -1268,7 +1307,7 @@
 // (the same as would be returned by `Describe`).
 func (p *FileInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
 	resp_ := &fileOnOpenResponse{}
-	err := ((*_bindings.ChannelProxy)(p)).Recv(FileOnOpenOrdinal, resp_)
+	err := ((*_bindings.ChannelProxy)(p)).Recv(FileOnOpenOrdinal, resp_, FileOnOpenGenOrdinal)
 	return resp_.S, resp_.Info, err
 }
 
@@ -1554,6 +1593,8 @@
 func (s_ *FileStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case FileCloneOrdinal:
+		fallthrough
+	case FileCloneGenOrdinal:
 		in_ := fileCloneRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1561,27 +1602,37 @@
 		err_ := s_.Impl.Clone(in_.Flags, in_.Object)
 		return nil, false, err_
 	case FileCloseOrdinal:
+		fallthrough
+	case FileCloseGenOrdinal:
 		s, err_ := s_.Impl.Close()
 		out_ := fileCloseResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case FileDescribeOrdinal:
+		fallthrough
+	case FileDescribeGenOrdinal:
 		info, err_ := s_.Impl.Describe()
 		out_ := fileDescribeResponse{}
 		out_.Info = info
 		return &out_, true, err_
 	case FileSyncOrdinal:
+		fallthrough
+	case FileSyncGenOrdinal:
 		s, err_ := s_.Impl.Sync()
 		out_ := fileSyncResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case FileGetAttrOrdinal:
+		fallthrough
+	case FileGetAttrGenOrdinal:
 		s, attributes, err_ := s_.Impl.GetAttr()
 		out_ := fileGetAttrResponse{}
 		out_.S = s
 		out_.Attributes = attributes
 		return &out_, true, err_
 	case FileSetAttrOrdinal:
+		fallthrough
+	case FileSetAttrGenOrdinal:
 		in_ := fileSetAttrRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1591,6 +1642,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case FileIoctlOrdinal:
+		fallthrough
+	case FileIoctlGenOrdinal:
 		in_ := fileIoctlRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1602,6 +1655,8 @@
 		out_.Out = out
 		return &out_, true, err_
 	case FileReadOrdinal:
+		fallthrough
+	case FileReadGenOrdinal:
 		in_ := fileReadRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1612,6 +1667,8 @@
 		out_.Data = data
 		return &out_, true, err_
 	case FileReadAtOrdinal:
+		fallthrough
+	case FileReadAtGenOrdinal:
 		in_ := fileReadAtRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1622,6 +1679,8 @@
 		out_.Data = data
 		return &out_, true, err_
 	case FileWriteOrdinal:
+		fallthrough
+	case FileWriteGenOrdinal:
 		in_ := fileWriteRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1632,6 +1691,8 @@
 		out_.Actual = actual
 		return &out_, true, err_
 	case FileWriteAtOrdinal:
+		fallthrough
+	case FileWriteAtGenOrdinal:
 		in_ := fileWriteAtRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1642,6 +1703,8 @@
 		out_.Actual = actual
 		return &out_, true, err_
 	case FileSeekOrdinal:
+		fallthrough
+	case FileSeekGenOrdinal:
 		in_ := fileSeekRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1652,6 +1715,8 @@
 		out_.Offset = offset
 		return &out_, true, err_
 	case FileTruncateOrdinal:
+		fallthrough
+	case FileTruncateGenOrdinal:
 		in_ := fileTruncateRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1661,12 +1726,16 @@
 		out_.S = s
 		return &out_, true, err_
 	case FileGetFlagsOrdinal:
+		fallthrough
+	case FileGetFlagsGenOrdinal:
 		s, flags, err_ := s_.Impl.GetFlags()
 		out_ := fileGetFlagsResponse{}
 		out_.S = s
 		out_.Flags = flags
 		return &out_, true, err_
 	case FileSetFlagsOrdinal:
+		fallthrough
+	case FileSetFlagsGenOrdinal:
 		in_ := fileSetFlagsRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1676,6 +1745,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case FileGetBufferOrdinal:
+		fallthrough
+	case FileGetBufferGenOrdinal:
 		in_ := fileGetBufferRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1713,11 +1784,12 @@
 }
 
 const (
-	DirectoryWatcherOnEventOrdinal uint64 = 0x208bcc9d00000000
+	DirectoryWatcherOnEventOrdinal    uint64 = 0x208bcc9d00000000
+	DirectoryWatcherOnEventGenOrdinal uint64 = 0x3937a088fe53412a
 )
 
 type directoryWatcherOnEventRequest struct {
-	_      struct{} `fidl2:"s,16,0"`
+	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Events []uint8  `fidl:"8192" fidl2:"8192"`
 }
 
@@ -1761,6 +1833,8 @@
 func (s_ *DirectoryWatcherStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case DirectoryWatcherOnEventOrdinal:
+		fallthrough
+	case DirectoryWatcherOnEventGenOrdinal:
 		in_ := directoryWatcherOnEventRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -1787,26 +1861,42 @@
 type DirectoryWatcherEventProxy _bindings.ChannelProxy
 
 const (
-	DirectoryCloneOrdinal       uint64 = 0x17fe6a4c00000000
-	DirectoryCloseOrdinal       uint64 = 0x52b9568700000000
-	DirectoryDescribeOrdinal    uint64 = 0x1f62df5e00000000
-	DirectoryOnOpenOrdinal      uint64 = 0x4700a7bd00000000
-	DirectorySyncOrdinal        uint64 = 0x62423faa00000000
-	DirectoryGetAttrOrdinal     uint64 = 0x4585e7c800000000
-	DirectorySetAttrOrdinal     uint64 = 0xbd5559a00000000
-	DirectoryIoctlOrdinal       uint64 = 0x35f3aca700000000
-	DirectoryOpenOrdinal        uint64 = 0x77e4cceb00000000
-	DirectoryUnlinkOrdinal      uint64 = 0x2cbadb1900000000
-	DirectoryReadDirentsOrdinal uint64 = 0x2ea53c2d00000000
-	DirectoryRewindOrdinal      uint64 = 0x7072fd8700000000
-	DirectoryGetTokenOrdinal    uint64 = 0x3217bced00000000
-	DirectoryRenameOrdinal      uint64 = 0x4a94b0ac00000000
-	DirectoryLinkOrdinal        uint64 = 0x1b8a5e6400000000
-	DirectoryWatchOrdinal       uint64 = 0x5ac28f3400000000
+	DirectoryCloneOrdinal          uint64 = 0x17fe6a4c00000000
+	DirectoryCloneGenOrdinal       uint64 = 0x5a61678f293ce16f
+	DirectoryCloseOrdinal          uint64 = 0x52b9568700000000
+	DirectoryCloseGenOrdinal       uint64 = 0x5309c5bd1c33dc44
+	DirectoryDescribeOrdinal       uint64 = 0x1f62df5e00000000
+	DirectoryDescribeGenOrdinal    uint64 = 0xffcec215078dea0
+	DirectoryOnOpenOrdinal         uint64 = 0x4700a7bd00000000
+	DirectoryOnOpenGenOrdinal      uint64 = 0x7fc7bbb1dbfd1972
+	DirectorySyncOrdinal           uint64 = 0x62423faa00000000
+	DirectorySyncGenOrdinal        uint64 = 0x189d88326c18b519
+	DirectoryGetAttrOrdinal        uint64 = 0x4585e7c800000000
+	DirectoryGetAttrGenOrdinal     uint64 = 0x78985e216314dafd
+	DirectorySetAttrOrdinal        uint64 = 0xbd5559a00000000
+	DirectorySetAttrGenOrdinal     uint64 = 0x4186c0f40d938f46
+	DirectoryIoctlOrdinal          uint64 = 0x35f3aca700000000
+	DirectoryIoctlGenOrdinal       uint64 = 0x45afae358dcb5b88
+	DirectoryOpenOrdinal           uint64 = 0x77e4cceb00000000
+	DirectoryOpenGenOrdinal        uint64 = 0x2c5044561d685ec0
+	DirectoryUnlinkOrdinal         uint64 = 0x2cbadb1900000000
+	DirectoryUnlinkGenOrdinal      uint64 = 0x5a0ff90760a8bc23
+	DirectoryReadDirentsOrdinal    uint64 = 0x2ea53c2d00000000
+	DirectoryReadDirentsGenOrdinal uint64 = 0x3582806bf27faa0a
+	DirectoryRewindOrdinal         uint64 = 0x7072fd8700000000
+	DirectoryRewindGenOrdinal      uint64 = 0x16b1202af0f34c71
+	DirectoryGetTokenOrdinal       uint64 = 0x3217bced00000000
+	DirectoryGetTokenGenOrdinal    uint64 = 0x26ae9d18763c8655
+	DirectoryRenameOrdinal         uint64 = 0x4a94b0ac00000000
+	DirectoryRenameGenOrdinal      uint64 = 0xa8e00a247f3c905
+	DirectoryLinkOrdinal           uint64 = 0x1b8a5e6400000000
+	DirectoryLinkGenOrdinal        uint64 = 0x740604c0c7c930e7
+	DirectoryWatchOrdinal          uint64 = 0x5ac28f3400000000
+	DirectoryWatchGenOrdinal       uint64 = 0x5717193a59d66d91
 )
 
 type directoryCloneRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags  uint32
 	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
 }
@@ -1818,7 +1908,7 @@
 }
 
 type directoryCloseResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1829,7 +1919,7 @@
 }
 
 type directoryDescribeResponse struct {
-	_    struct{} `fidl2:"s,32,0"`
+	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Info NodeInfo
 }
 
@@ -1840,7 +1930,7 @@
 }
 
 type directoryOnOpenResponse struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S    int32
 	Info *NodeInfo
 }
@@ -1852,7 +1942,7 @@
 }
 
 type directorySyncResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1863,7 +1953,7 @@
 }
 
 type directoryGetAttrResponse struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	S          int32
 	Attributes NodeAttributes
 }
@@ -1875,7 +1965,7 @@
 }
 
 type directorySetAttrRequest struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	Flags      uint32
 	Attributes NodeAttributes
 }
@@ -1887,7 +1977,7 @@
 }
 
 type directorySetAttrResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1898,7 +1988,7 @@
 }
 
 type directoryIoctlRequest struct {
-	_       struct{} `fidl2:"s,48,0"`
+	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
 	Opcode  uint32
 	MaxOut  uint64
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
@@ -1912,7 +2002,7 @@
 }
 
 type directoryIoctlResponse struct {
-	_       struct{} `fidl2:"s,40,0"`
+	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
 	S       int32
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
 	Out     []uint8      `fidl:"8192" fidl2:"8192"`
@@ -1925,7 +2015,7 @@
 }
 
 type directoryOpenRequest struct {
-	_      struct{} `fidl2:"s,32,0"`
+	_      struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Flags  uint32
 	Mode   uint32
 	Path   string               `fidl:"4096" fidl2:"4096"`
@@ -1939,7 +2029,7 @@
 }
 
 type directoryUnlinkRequest struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Path string   `fidl:"4096" fidl2:"4096"`
 }
 
@@ -1950,7 +2040,7 @@
 }
 
 type directoryUnlinkResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1961,7 +2051,7 @@
 }
 
 type directoryReadDirentsRequest struct {
-	_        struct{} `fidl2:"s,8,0"`
+	_        struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	MaxBytes uint64
 }
 
@@ -1972,7 +2062,7 @@
 }
 
 type directoryReadDirentsResponse struct {
-	_       struct{} `fidl2:"s,24,0"`
+	_       struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	S       int32
 	Dirents []uint8 `fidl:"8192" fidl2:"8192"`
 }
@@ -1984,7 +2074,7 @@
 }
 
 type directoryRewindResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -1995,7 +2085,7 @@
 }
 
 type directoryGetTokenResponse struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S     int32
 	Token _zx.Handle `fidl:"1" fidl2:"1"`
 }
@@ -2007,7 +2097,7 @@
 }
 
 type directoryRenameRequest struct {
-	_              struct{}   `fidl2:"s,40,0"`
+	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
 	Src            string     `fidl:"4096" fidl2:"4096"`
 	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
 	Dst            string     `fidl:"4096" fidl2:"4096"`
@@ -2020,7 +2110,7 @@
 }
 
 type directoryRenameResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2031,7 +2121,7 @@
 }
 
 type directoryLinkRequest struct {
-	_              struct{}   `fidl2:"s,40,0"`
+	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
 	Src            string     `fidl:"4096" fidl2:"4096"`
 	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
 	Dst            string     `fidl:"4096" fidl2:"4096"`
@@ -2044,7 +2134,7 @@
 }
 
 type directoryLinkResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2055,7 +2145,7 @@
 }
 
 type directoryWatchRequest struct {
-	_       struct{} `fidl2:"s,16,0"`
+	_       struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Mask    uint32
 	Options uint32
 	Watcher _zx.Channel `fidl:"0" fidl2:"0"`
@@ -2068,7 +2158,7 @@
 }
 
 type directoryWatchResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2133,7 +2223,7 @@
 // (the same as would be returned by `Describe`).
 func (p *DirectoryInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
 	resp_ := &directoryOnOpenResponse{}
-	err := ((*_bindings.ChannelProxy)(p)).Recv(DirectoryOnOpenOrdinal, resp_)
+	err := ((*_bindings.ChannelProxy)(p)).Recv(DirectoryOnOpenOrdinal, resp_, DirectoryOnOpenGenOrdinal)
 	return resp_.S, resp_.Info, err
 }
 
@@ -2556,6 +2646,8 @@
 func (s_ *DirectoryStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case DirectoryCloneOrdinal:
+		fallthrough
+	case DirectoryCloneGenOrdinal:
 		in_ := directoryCloneRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2563,27 +2655,37 @@
 		err_ := s_.Impl.Clone(in_.Flags, in_.Object)
 		return nil, false, err_
 	case DirectoryCloseOrdinal:
+		fallthrough
+	case DirectoryCloseGenOrdinal:
 		s, err_ := s_.Impl.Close()
 		out_ := directoryCloseResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryDescribeOrdinal:
+		fallthrough
+	case DirectoryDescribeGenOrdinal:
 		info, err_ := s_.Impl.Describe()
 		out_ := directoryDescribeResponse{}
 		out_.Info = info
 		return &out_, true, err_
 	case DirectorySyncOrdinal:
+		fallthrough
+	case DirectorySyncGenOrdinal:
 		s, err_ := s_.Impl.Sync()
 		out_ := directorySyncResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryGetAttrOrdinal:
+		fallthrough
+	case DirectoryGetAttrGenOrdinal:
 		s, attributes, err_ := s_.Impl.GetAttr()
 		out_ := directoryGetAttrResponse{}
 		out_.S = s
 		out_.Attributes = attributes
 		return &out_, true, err_
 	case DirectorySetAttrOrdinal:
+		fallthrough
+	case DirectorySetAttrGenOrdinal:
 		in_ := directorySetAttrRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2593,6 +2695,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryIoctlOrdinal:
+		fallthrough
+	case DirectoryIoctlGenOrdinal:
 		in_ := directoryIoctlRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2604,6 +2708,8 @@
 		out_.Out = out
 		return &out_, true, err_
 	case DirectoryOpenOrdinal:
+		fallthrough
+	case DirectoryOpenGenOrdinal:
 		in_ := directoryOpenRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2611,6 +2717,8 @@
 		err_ := s_.Impl.Open(in_.Flags, in_.Mode, in_.Path, in_.Object)
 		return nil, false, err_
 	case DirectoryUnlinkOrdinal:
+		fallthrough
+	case DirectoryUnlinkGenOrdinal:
 		in_ := directoryUnlinkRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2620,6 +2728,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryReadDirentsOrdinal:
+		fallthrough
+	case DirectoryReadDirentsGenOrdinal:
 		in_ := directoryReadDirentsRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2630,17 +2740,23 @@
 		out_.Dirents = dirents
 		return &out_, true, err_
 	case DirectoryRewindOrdinal:
+		fallthrough
+	case DirectoryRewindGenOrdinal:
 		s, err_ := s_.Impl.Rewind()
 		out_ := directoryRewindResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryGetTokenOrdinal:
+		fallthrough
+	case DirectoryGetTokenGenOrdinal:
 		s, token, err_ := s_.Impl.GetToken()
 		out_ := directoryGetTokenResponse{}
 		out_.S = s
 		out_.Token = token
 		return &out_, true, err_
 	case DirectoryRenameOrdinal:
+		fallthrough
+	case DirectoryRenameGenOrdinal:
 		in_ := directoryRenameRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2650,6 +2766,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryLinkOrdinal:
+		fallthrough
+	case DirectoryLinkGenOrdinal:
 		in_ := directoryLinkRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2659,6 +2777,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryWatchOrdinal:
+		fallthrough
+	case DirectoryWatchGenOrdinal:
 		in_ := directoryWatchRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -2695,32 +2815,54 @@
 }
 
 const (
-	DirectoryAdminCloneOrdinal           uint64 = 0x17fe6a4c00000000
-	DirectoryAdminCloseOrdinal           uint64 = 0x52b9568700000000
-	DirectoryAdminDescribeOrdinal        uint64 = 0x1f62df5e00000000
-	DirectoryAdminOnOpenOrdinal          uint64 = 0x4700a7bd00000000
-	DirectoryAdminSyncOrdinal            uint64 = 0x62423faa00000000
-	DirectoryAdminGetAttrOrdinal         uint64 = 0x4585e7c800000000
-	DirectoryAdminSetAttrOrdinal         uint64 = 0xbd5559a00000000
-	DirectoryAdminIoctlOrdinal           uint64 = 0x35f3aca700000000
-	DirectoryAdminOpenOrdinal            uint64 = 0x77e4cceb00000000
-	DirectoryAdminUnlinkOrdinal          uint64 = 0x2cbadb1900000000
-	DirectoryAdminReadDirentsOrdinal     uint64 = 0x2ea53c2d00000000
-	DirectoryAdminRewindOrdinal          uint64 = 0x7072fd8700000000
-	DirectoryAdminGetTokenOrdinal        uint64 = 0x3217bced00000000
-	DirectoryAdminRenameOrdinal          uint64 = 0x4a94b0ac00000000
-	DirectoryAdminLinkOrdinal            uint64 = 0x1b8a5e6400000000
-	DirectoryAdminWatchOrdinal           uint64 = 0x5ac28f3400000000
-	DirectoryAdminMountOrdinal           uint64 = 0x7e5f12e600000000
-	DirectoryAdminMountAndCreateOrdinal  uint64 = 0x3225f69100000000
-	DirectoryAdminUnmountOrdinal         uint64 = 0x2502275400000000
-	DirectoryAdminUnmountNodeOrdinal     uint64 = 0x16da38a700000000
-	DirectoryAdminQueryFilesystemOrdinal uint64 = 0x66298d9200000000
-	DirectoryAdminGetDevicePathOrdinal   uint64 = 0x2ef70eb800000000
+	DirectoryAdminCloneOrdinal              uint64 = 0x17fe6a4c00000000
+	DirectoryAdminCloneGenOrdinal           uint64 = 0x5a61678f293ce16f
+	DirectoryAdminCloseOrdinal              uint64 = 0x52b9568700000000
+	DirectoryAdminCloseGenOrdinal           uint64 = 0x5309c5bd1c33dc44
+	DirectoryAdminDescribeOrdinal           uint64 = 0x1f62df5e00000000
+	DirectoryAdminDescribeGenOrdinal        uint64 = 0xffcec215078dea0
+	DirectoryAdminOnOpenOrdinal             uint64 = 0x4700a7bd00000000
+	DirectoryAdminOnOpenGenOrdinal          uint64 = 0x7fc7bbb1dbfd1972
+	DirectoryAdminSyncOrdinal               uint64 = 0x62423faa00000000
+	DirectoryAdminSyncGenOrdinal            uint64 = 0x189d88326c18b519
+	DirectoryAdminGetAttrOrdinal            uint64 = 0x4585e7c800000000
+	DirectoryAdminGetAttrGenOrdinal         uint64 = 0x78985e216314dafd
+	DirectoryAdminSetAttrOrdinal            uint64 = 0xbd5559a00000000
+	DirectoryAdminSetAttrGenOrdinal         uint64 = 0x4186c0f40d938f46
+	DirectoryAdminIoctlOrdinal              uint64 = 0x35f3aca700000000
+	DirectoryAdminIoctlGenOrdinal           uint64 = 0x45afae358dcb5b88
+	DirectoryAdminOpenOrdinal               uint64 = 0x77e4cceb00000000
+	DirectoryAdminOpenGenOrdinal            uint64 = 0x2c5044561d685ec0
+	DirectoryAdminUnlinkOrdinal             uint64 = 0x2cbadb1900000000
+	DirectoryAdminUnlinkGenOrdinal          uint64 = 0x5a0ff90760a8bc23
+	DirectoryAdminReadDirentsOrdinal        uint64 = 0x2ea53c2d00000000
+	DirectoryAdminReadDirentsGenOrdinal     uint64 = 0x3582806bf27faa0a
+	DirectoryAdminRewindOrdinal             uint64 = 0x7072fd8700000000
+	DirectoryAdminRewindGenOrdinal          uint64 = 0x16b1202af0f34c71
+	DirectoryAdminGetTokenOrdinal           uint64 = 0x3217bced00000000
+	DirectoryAdminGetTokenGenOrdinal        uint64 = 0x26ae9d18763c8655
+	DirectoryAdminRenameOrdinal             uint64 = 0x4a94b0ac00000000
+	DirectoryAdminRenameGenOrdinal          uint64 = 0xa8e00a247f3c905
+	DirectoryAdminLinkOrdinal               uint64 = 0x1b8a5e6400000000
+	DirectoryAdminLinkGenOrdinal            uint64 = 0x740604c0c7c930e7
+	DirectoryAdminWatchOrdinal              uint64 = 0x5ac28f3400000000
+	DirectoryAdminWatchGenOrdinal           uint64 = 0x5717193a59d66d91
+	DirectoryAdminMountOrdinal              uint64 = 0x7e5f12e600000000
+	DirectoryAdminMountGenOrdinal           uint64 = 0xfa166d1522c27d0
+	DirectoryAdminMountAndCreateOrdinal     uint64 = 0x3225f69100000000
+	DirectoryAdminMountAndCreateGenOrdinal  uint64 = 0x7bc782242022b3b3
+	DirectoryAdminUnmountOrdinal            uint64 = 0x2502275400000000
+	DirectoryAdminUnmountGenOrdinal         uint64 = 0x7da45d654c35c9a4
+	DirectoryAdminUnmountNodeOrdinal        uint64 = 0x16da38a700000000
+	DirectoryAdminUnmountNodeGenOrdinal     uint64 = 0x26b9d90ebe5f93db
+	DirectoryAdminQueryFilesystemOrdinal    uint64 = 0x66298d9200000000
+	DirectoryAdminQueryFilesystemGenOrdinal uint64 = 0x4a879480f1d7875d
+	DirectoryAdminGetDevicePathOrdinal      uint64 = 0x2ef70eb800000000
+	DirectoryAdminGetDevicePathGenOrdinal   uint64 = 0x76f2e3c7331f815b
 )
 
 type directoryAdminCloneRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags  uint32
 	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
 }
@@ -2732,7 +2874,7 @@
 }
 
 type directoryAdminCloseResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2743,7 +2885,7 @@
 }
 
 type directoryAdminDescribeResponse struct {
-	_    struct{} `fidl2:"s,32,0"`
+	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Info NodeInfo
 }
 
@@ -2754,7 +2896,7 @@
 }
 
 type directoryAdminOnOpenResponse struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S    int32
 	Info *NodeInfo
 }
@@ -2766,7 +2908,7 @@
 }
 
 type directoryAdminSyncResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2777,7 +2919,7 @@
 }
 
 type directoryAdminGetAttrResponse struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	S          int32
 	Attributes NodeAttributes
 }
@@ -2789,7 +2931,7 @@
 }
 
 type directoryAdminSetAttrRequest struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	Flags      uint32
 	Attributes NodeAttributes
 }
@@ -2801,7 +2943,7 @@
 }
 
 type directoryAdminSetAttrResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2812,7 +2954,7 @@
 }
 
 type directoryAdminIoctlRequest struct {
-	_       struct{} `fidl2:"s,48,0"`
+	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
 	Opcode  uint32
 	MaxOut  uint64
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
@@ -2826,7 +2968,7 @@
 }
 
 type directoryAdminIoctlResponse struct {
-	_       struct{} `fidl2:"s,40,0"`
+	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
 	S       int32
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
 	Out     []uint8      `fidl:"8192" fidl2:"8192"`
@@ -2839,7 +2981,7 @@
 }
 
 type directoryAdminOpenRequest struct {
-	_      struct{} `fidl2:"s,32,0"`
+	_      struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Flags  uint32
 	Mode   uint32
 	Path   string               `fidl:"4096" fidl2:"4096"`
@@ -2853,7 +2995,7 @@
 }
 
 type directoryAdminUnlinkRequest struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Path string   `fidl:"4096" fidl2:"4096"`
 }
 
@@ -2864,7 +3006,7 @@
 }
 
 type directoryAdminUnlinkResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2875,7 +3017,7 @@
 }
 
 type directoryAdminReadDirentsRequest struct {
-	_        struct{} `fidl2:"s,8,0"`
+	_        struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	MaxBytes uint64
 }
 
@@ -2886,7 +3028,7 @@
 }
 
 type directoryAdminReadDirentsResponse struct {
-	_       struct{} `fidl2:"s,24,0"`
+	_       struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	S       int32
 	Dirents []uint8 `fidl:"8192" fidl2:"8192"`
 }
@@ -2898,7 +3040,7 @@
 }
 
 type directoryAdminRewindResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2909,7 +3051,7 @@
 }
 
 type directoryAdminGetTokenResponse struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S     int32
 	Token _zx.Handle `fidl:"1" fidl2:"1"`
 }
@@ -2921,7 +3063,7 @@
 }
 
 type directoryAdminRenameRequest struct {
-	_              struct{}   `fidl2:"s,40,0"`
+	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
 	Src            string     `fidl:"4096" fidl2:"4096"`
 	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
 	Dst            string     `fidl:"4096" fidl2:"4096"`
@@ -2934,7 +3076,7 @@
 }
 
 type directoryAdminRenameResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2945,7 +3087,7 @@
 }
 
 type directoryAdminLinkRequest struct {
-	_              struct{}   `fidl2:"s,40,0"`
+	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
 	Src            string     `fidl:"4096" fidl2:"4096"`
 	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
 	Dst            string     `fidl:"4096" fidl2:"4096"`
@@ -2958,7 +3100,7 @@
 }
 
 type directoryAdminLinkResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2969,7 +3111,7 @@
 }
 
 type directoryAdminWatchRequest struct {
-	_       struct{} `fidl2:"s,16,0"`
+	_       struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Mask    uint32
 	Options uint32
 	Watcher _zx.Channel `fidl:"0" fidl2:"0"`
@@ -2982,7 +3124,7 @@
 }
 
 type directoryAdminWatchResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -2993,7 +3135,7 @@
 }
 
 type directoryAdminMountRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Remote DirectoryInterface
 }
 
@@ -3004,7 +3146,7 @@
 }
 
 type directoryAdminMountResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -3015,7 +3157,7 @@
 }
 
 type directoryAdminMountAndCreateRequest struct {
-	_      struct{} `fidl2:"s,32,0"`
+	_      struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Remote DirectoryInterface
 	Name   string `fidl:"255" fidl2:"255"`
 	Flags  uint32
@@ -3028,7 +3170,7 @@
 }
 
 type directoryAdminMountAndCreateResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -3039,7 +3181,7 @@
 }
 
 type directoryAdminUnmountResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -3050,7 +3192,7 @@
 }
 
 type directoryAdminUnmountNodeResponse struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S      int32
 	Remote DirectoryInterface
 }
@@ -3062,7 +3204,7 @@
 }
 
 type directoryAdminQueryFilesystemResponse struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S    int32
 	Info *FilesystemInfo
 }
@@ -3074,7 +3216,7 @@
 }
 
 type directoryAdminGetDevicePathResponse struct {
-	_    struct{} `fidl2:"s,24,0"`
+	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	S    int32
 	Path *string `fidl:"4096" fidl2:"4096"`
 }
@@ -3140,7 +3282,7 @@
 // (the same as would be returned by `Describe`).
 func (p *DirectoryAdminInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
 	resp_ := &directoryAdminOnOpenResponse{}
-	err := ((*_bindings.ChannelProxy)(p)).Recv(DirectoryAdminOnOpenOrdinal, resp_)
+	err := ((*_bindings.ChannelProxy)(p)).Recv(DirectoryAdminOnOpenOrdinal, resp_, DirectoryAdminOnOpenGenOrdinal)
 	return resp_.S, resp_.Info, err
 }
 
@@ -3642,6 +3784,8 @@
 func (s_ *DirectoryAdminStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case DirectoryAdminCloneOrdinal:
+		fallthrough
+	case DirectoryAdminCloneGenOrdinal:
 		in_ := directoryAdminCloneRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3649,27 +3793,37 @@
 		err_ := s_.Impl.Clone(in_.Flags, in_.Object)
 		return nil, false, err_
 	case DirectoryAdminCloseOrdinal:
+		fallthrough
+	case DirectoryAdminCloseGenOrdinal:
 		s, err_ := s_.Impl.Close()
 		out_ := directoryAdminCloseResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminDescribeOrdinal:
+		fallthrough
+	case DirectoryAdminDescribeGenOrdinal:
 		info, err_ := s_.Impl.Describe()
 		out_ := directoryAdminDescribeResponse{}
 		out_.Info = info
 		return &out_, true, err_
 	case DirectoryAdminSyncOrdinal:
+		fallthrough
+	case DirectoryAdminSyncGenOrdinal:
 		s, err_ := s_.Impl.Sync()
 		out_ := directoryAdminSyncResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminGetAttrOrdinal:
+		fallthrough
+	case DirectoryAdminGetAttrGenOrdinal:
 		s, attributes, err_ := s_.Impl.GetAttr()
 		out_ := directoryAdminGetAttrResponse{}
 		out_.S = s
 		out_.Attributes = attributes
 		return &out_, true, err_
 	case DirectoryAdminSetAttrOrdinal:
+		fallthrough
+	case DirectoryAdminSetAttrGenOrdinal:
 		in_ := directoryAdminSetAttrRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3679,6 +3833,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminIoctlOrdinal:
+		fallthrough
+	case DirectoryAdminIoctlGenOrdinal:
 		in_ := directoryAdminIoctlRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3690,6 +3846,8 @@
 		out_.Out = out
 		return &out_, true, err_
 	case DirectoryAdminOpenOrdinal:
+		fallthrough
+	case DirectoryAdminOpenGenOrdinal:
 		in_ := directoryAdminOpenRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3697,6 +3855,8 @@
 		err_ := s_.Impl.Open(in_.Flags, in_.Mode, in_.Path, in_.Object)
 		return nil, false, err_
 	case DirectoryAdminUnlinkOrdinal:
+		fallthrough
+	case DirectoryAdminUnlinkGenOrdinal:
 		in_ := directoryAdminUnlinkRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3706,6 +3866,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminReadDirentsOrdinal:
+		fallthrough
+	case DirectoryAdminReadDirentsGenOrdinal:
 		in_ := directoryAdminReadDirentsRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3716,17 +3878,23 @@
 		out_.Dirents = dirents
 		return &out_, true, err_
 	case DirectoryAdminRewindOrdinal:
+		fallthrough
+	case DirectoryAdminRewindGenOrdinal:
 		s, err_ := s_.Impl.Rewind()
 		out_ := directoryAdminRewindResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminGetTokenOrdinal:
+		fallthrough
+	case DirectoryAdminGetTokenGenOrdinal:
 		s, token, err_ := s_.Impl.GetToken()
 		out_ := directoryAdminGetTokenResponse{}
 		out_.S = s
 		out_.Token = token
 		return &out_, true, err_
 	case DirectoryAdminRenameOrdinal:
+		fallthrough
+	case DirectoryAdminRenameGenOrdinal:
 		in_ := directoryAdminRenameRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3736,6 +3904,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminLinkOrdinal:
+		fallthrough
+	case DirectoryAdminLinkGenOrdinal:
 		in_ := directoryAdminLinkRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3745,6 +3915,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminWatchOrdinal:
+		fallthrough
+	case DirectoryAdminWatchGenOrdinal:
 		in_ := directoryAdminWatchRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3754,6 +3926,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminMountOrdinal:
+		fallthrough
+	case DirectoryAdminMountGenOrdinal:
 		in_ := directoryAdminMountRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3763,6 +3937,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminMountAndCreateOrdinal:
+		fallthrough
+	case DirectoryAdminMountAndCreateGenOrdinal:
 		in_ := directoryAdminMountAndCreateRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -3772,23 +3948,31 @@
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminUnmountOrdinal:
+		fallthrough
+	case DirectoryAdminUnmountGenOrdinal:
 		s, err_ := s_.Impl.Unmount()
 		out_ := directoryAdminUnmountResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case DirectoryAdminUnmountNodeOrdinal:
+		fallthrough
+	case DirectoryAdminUnmountNodeGenOrdinal:
 		s, remote, err_ := s_.Impl.UnmountNode()
 		out_ := directoryAdminUnmountNodeResponse{}
 		out_.S = s
 		out_.Remote = remote
 		return &out_, true, err_
 	case DirectoryAdminQueryFilesystemOrdinal:
+		fallthrough
+	case DirectoryAdminQueryFilesystemGenOrdinal:
 		s, info, err_ := s_.Impl.QueryFilesystem()
 		out_ := directoryAdminQueryFilesystemResponse{}
 		out_.S = s
 		out_.Info = info
 		return &out_, true, err_
 	case DirectoryAdminGetDevicePathOrdinal:
+		fallthrough
+	case DirectoryAdminGetDevicePathGenOrdinal:
 		s, path, err_ := s_.Impl.GetDevicePath()
 		out_ := directoryAdminGetDevicePathResponse{}
 		out_.S = s
diff --git a/src/syscall/zx/mem/impl.go b/src/syscall/zx/mem/impl.go
index 42df624..1f6f2c8 100644
--- a/src/syscall/zx/mem/impl.go
+++ b/src/syscall/zx/mem/impl.go
@@ -23,9 +23,9 @@
 // data. `fuchsia.mem.Buffer` is a standard struct that aggregate the VMO
 // and its size.
 type Buffer struct {
-	_ struct{} `fidl2:"s,16,8"`
+	_ struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
 	// The vmo that contains the buffer.
-	Vmo _zx.VMO `fidl:"0" fidl2:"0"`
+	Vmo _zx.VMO `fidl:"0,0" fidl2:"0"`
 	// The number of bytes in the buffer.
 	//
 	// The content of the buffer begin at the start of the VMO and continue
@@ -33,7 +33,7 @@
 	// the beginning of the VMO, use `Range` rather than buffer.
 	//
 	// This size must not be greater than the physical size of the VMO.
-	Size uint64
+	Size uint64 `fidl:"8"`
 }
 
 var _mBuffer = _bindings.CreateLazyMarshaler(Buffer{})
@@ -44,15 +44,15 @@
 
 // A range of bytes within a VMO.
 type Range struct {
-	_ struct{} `fidl2:"s,24,8"`
+	_ struct{} `fidl:"s,24,8" fidl2:"s,24,8"`
 	// The vmo that contains the bytes.
-	Vmo _zx.VMO `fidl:"0" fidl2:"0"`
+	Vmo _zx.VMO `fidl:"0,0" fidl2:"0"`
 	// The offset of the first byte within the range relative to the start of
 	// the VMO.
 	//
 	// For example, if `offset` is zero, then the first byte in the range is
 	// the first byte in the VMO.
-	Offset uint64
+	Offset uint64 `fidl:"8"`
 	// The number of bytes in the range.
 	//
 	// For example, if the offset is 3 and the size is 2, and the VMO starts
@@ -60,7 +60,7 @@
 	//
 	// The sum of the offset and the size must not be greater than the
 	// physical size of the VMO.
-	Size uint64
+	Size uint64 `fidl:"16"`
 }
 
 var _mRange = _bindings.CreateLazyMarshaler(Range{})
@@ -84,7 +84,7 @@
 // `bytes`) but also need to support arbitrary amounts of data (i.e., which
 // need to be provided out-of-line in a `Buffer`).
 type Data struct {
-	I_dataTag     `fidl2:"x,24,8"`
+	I_dataTag     `fidl:"x,24,8" fidl2:"x,24,8"`
 	I_unknownData []byte
 	// The binary data provided inline in the message.
 	Bytes []uint8 `fidl:"835814982," fidl2:"835814982,"`
diff --git a/src/syscall/zx/net/impl.go b/src/syscall/zx/net/impl.go
index 904a721..221c37d 100644
--- a/src/syscall/zx/net/impl.go
+++ b/src/syscall/zx/net/impl.go
@@ -17,27 +17,44 @@
 )
 
 const (
-	ControlCloneOrdinal       uint64 = 0x17fe6a4c00000000
-	ControlCloseOrdinal       uint64 = 0x52b9568700000000
-	ControlDescribeOrdinal    uint64 = 0x1f62df5e00000000
-	ControlOnOpenOrdinal      uint64 = 0x4700a7bd00000000
-	ControlSyncOrdinal        uint64 = 0x62423faa00000000
-	ControlGetAttrOrdinal     uint64 = 0x4585e7c800000000
-	ControlSetAttrOrdinal     uint64 = 0xbd5559a00000000
-	ControlIoctlOrdinal       uint64 = 0x35f3aca700000000
-	ControlBindOrdinal        uint64 = 0x147441ed00000000
-	ControlConnectOrdinal     uint64 = 0x237ed33800000000
-	ControlListenOrdinal      uint64 = 0x2e63628600000000
-	ControlAcceptOrdinal      uint64 = 0x11ed297300000000
-	ControlGetSockNameOrdinal uint64 = 0x63c1368200000000
-	ControlGetPeerNameOrdinal uint64 = 0x58787bb600000000
-	ControlSetSockOptOrdinal  uint64 = 0x4ba217a700000000
-	ControlGetSockOptOrdinal  uint64 = 0x3685367800000000
-	ControlIoctlPosixOrdinal  uint64 = 0x50a8f69d00000000
+	ControlCloneOrdinal          uint64 = 0x17fe6a4c00000000
+	ControlCloneGenOrdinal       uint64 = 0x5a61678f293ce16f
+	ControlCloseOrdinal          uint64 = 0x52b9568700000000
+	ControlCloseGenOrdinal       uint64 = 0x5309c5bd1c33dc44
+	ControlDescribeOrdinal       uint64 = 0x1f62df5e00000000
+	ControlDescribeGenOrdinal    uint64 = 0xffcec215078dea0
+	ControlOnOpenOrdinal         uint64 = 0x4700a7bd00000000
+	ControlOnOpenGenOrdinal      uint64 = 0x7fc7bbb1dbfd1972
+	ControlSyncOrdinal           uint64 = 0x62423faa00000000
+	ControlSyncGenOrdinal        uint64 = 0x189d88326c18b519
+	ControlGetAttrOrdinal        uint64 = 0x4585e7c800000000
+	ControlGetAttrGenOrdinal     uint64 = 0x78985e216314dafd
+	ControlSetAttrOrdinal        uint64 = 0xbd5559a00000000
+	ControlSetAttrGenOrdinal     uint64 = 0x4186c0f40d938f46
+	ControlIoctlOrdinal          uint64 = 0x35f3aca700000000
+	ControlIoctlGenOrdinal       uint64 = 0x45afae358dcb5b88
+	ControlBindOrdinal           uint64 = 0x147441ed00000000
+	ControlBindGenOrdinal        uint64 = 0x369838aa5347aa8f
+	ControlConnectOrdinal        uint64 = 0x237ed33800000000
+	ControlConnectGenOrdinal     uint64 = 0x1138f666cb3655b1
+	ControlListenOrdinal         uint64 = 0x2e63628600000000
+	ControlListenGenOrdinal      uint64 = 0xa860257383d5651
+	ControlAcceptOrdinal         uint64 = 0x11ed297300000000
+	ControlAcceptGenOrdinal      uint64 = 0x17921a9ebebb7ba0
+	ControlGetSockNameOrdinal    uint64 = 0x63c1368200000000
+	ControlGetSockNameGenOrdinal uint64 = 0x6f68e0f0d72c2d1d
+	ControlGetPeerNameOrdinal    uint64 = 0x58787bb600000000
+	ControlGetPeerNameGenOrdinal uint64 = 0x555a019c03d9820d
+	ControlSetSockOptOrdinal     uint64 = 0x4ba217a700000000
+	ControlSetSockOptGenOrdinal  uint64 = 0x24e784a5e281b466
+	ControlGetSockOptOrdinal     uint64 = 0x3685367800000000
+	ControlGetSockOptGenOrdinal  uint64 = 0x66298180e94aa6b4
+	ControlIoctlPosixOrdinal     uint64 = 0x50a8f69d00000000
+	ControlIoctlPosixGenOrdinal  uint64 = 0x47466fcb0021432d
 )
 
 type controlCloneRequest struct {
-	_      struct{} `fidl2:"s,8,0"`
+	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags  uint32
 	Object fuchsiaio.NodeInterfaceRequest `fidl:"0" fidl2:"0"`
 }
@@ -49,7 +66,7 @@
 }
 
 type controlCloseResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -60,7 +77,7 @@
 }
 
 type controlDescribeResponse struct {
-	_    struct{} `fidl2:"s,32,0"`
+	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
 	Info fuchsiaio.NodeInfo
 }
 
@@ -71,7 +88,7 @@
 }
 
 type controlOnOpenResponse struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	S    int32
 	Info *fuchsiaio.NodeInfo
 }
@@ -83,7 +100,7 @@
 }
 
 type controlSyncResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -94,7 +111,7 @@
 }
 
 type controlGetAttrResponse struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	S          int32
 	Attributes fuchsiaio.NodeAttributes
 }
@@ -106,7 +123,7 @@
 }
 
 type controlSetAttrRequest struct {
-	_          struct{} `fidl2:"s,64,0"`
+	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
 	Flags      uint32
 	Attributes fuchsiaio.NodeAttributes
 }
@@ -118,7 +135,7 @@
 }
 
 type controlSetAttrResponse struct {
-	_ struct{} `fidl2:"s,8,0"`
+	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	S int32
 }
 
@@ -129,7 +146,7 @@
 }
 
 type controlIoctlRequest struct {
-	_       struct{} `fidl2:"s,48,0"`
+	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
 	Opcode  uint32
 	MaxOut  uint64
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
@@ -143,7 +160,7 @@
 }
 
 type controlIoctlResponse struct {
-	_       struct{} `fidl2:"s,40,0"`
+	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
 	S       int32
 	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
 	Out     []uint8      `fidl:"8192" fidl2:"8192"`
@@ -156,7 +173,7 @@
 }
 
 type controlBindRequest struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Addr []uint8
 }
 
@@ -167,7 +184,7 @@
 }
 
 type controlBindResponse struct {
-	_    struct{} `fidl2:"s,8,0"`
+	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Code int16
 }
 
@@ -178,7 +195,7 @@
 }
 
 type controlConnectRequest struct {
-	_    struct{} `fidl2:"s,16,0"`
+	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
 	Addr []uint8
 }
 
@@ -189,7 +206,7 @@
 }
 
 type controlConnectResponse struct {
-	_    struct{} `fidl2:"s,8,0"`
+	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Code int16
 }
 
@@ -200,7 +217,7 @@
 }
 
 type controlListenRequest struct {
-	_       struct{} `fidl2:"s,8,0"`
+	_       struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Backlog int16
 }
 
@@ -211,7 +228,7 @@
 }
 
 type controlListenResponse struct {
-	_    struct{} `fidl2:"s,8,0"`
+	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Code int16
 }
 
@@ -222,7 +239,7 @@
 }
 
 type controlAcceptRequest struct {
-	_     struct{} `fidl2:"s,8,0"`
+	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Flags int16
 }
 
@@ -233,7 +250,7 @@
 }
 
 type controlAcceptResponse struct {
-	_    struct{} `fidl2:"s,8,0"`
+	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Code int16
 	S    ControlInterface
 }
@@ -245,7 +262,7 @@
 }
 
 type controlGetSockNameResponse struct {
-	_    struct{} `fidl2:"s,24,0"`
+	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Code int16
 	Addr []uint8
 }
@@ -257,7 +274,7 @@
 }
 
 type controlGetPeerNameResponse struct {
-	_    struct{} `fidl2:"s,24,0"`
+	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Code int16
 	Addr []uint8
 }
@@ -269,7 +286,7 @@
 }
 
 type controlSetSockOptRequest struct {
-	_       struct{} `fidl2:"s,24,0"`
+	_       struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Level   int16
 	Optname int16
 	Optval  []uint8
@@ -282,7 +299,7 @@
 }
 
 type controlSetSockOptResponse struct {
-	_    struct{} `fidl2:"s,8,0"`
+	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Code int16
 }
 
@@ -293,7 +310,7 @@
 }
 
 type controlGetSockOptRequest struct {
-	_       struct{} `fidl2:"s,8,0"`
+	_       struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Level   int16
 	Optname int16
 }
@@ -305,7 +322,7 @@
 }
 
 type controlGetSockOptResponse struct {
-	_      struct{} `fidl2:"s,24,0"`
+	_      struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Code   int16
 	Optval []uint8
 }
@@ -317,7 +334,7 @@
 }
 
 type controlIoctlPosixRequest struct {
-	_   struct{} `fidl2:"s,24,0"`
+	_   struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Req int16
 	In  []uint8
 }
@@ -329,7 +346,7 @@
 }
 
 type controlIoctlPosixResponse struct {
-	_    struct{} `fidl2:"s,24,0"`
+	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
 	Code int16
 	Out  []uint8
 }
@@ -395,7 +412,7 @@
 // (the same as would be returned by `Describe`).
 func (p *ControlInterface) ExpectOnOpen() (int32, *fuchsiaio.NodeInfo, error) {
 	resp_ := &controlOnOpenResponse{}
-	err := ((*_bindings.ChannelProxy)(p)).Recv(ControlOnOpenOrdinal, resp_)
+	err := ((*_bindings.ChannelProxy)(p)).Recv(ControlOnOpenOrdinal, resp_, ControlOnOpenGenOrdinal)
 	return resp_.S, resp_.Info, err
 }
 
@@ -630,6 +647,8 @@
 func (s_ *ControlStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case ControlCloneOrdinal:
+		fallthrough
+	case ControlCloneGenOrdinal:
 		in_ := controlCloneRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -637,27 +656,37 @@
 		err_ := s_.Impl.Clone(in_.Flags, in_.Object)
 		return nil, false, err_
 	case ControlCloseOrdinal:
+		fallthrough
+	case ControlCloseGenOrdinal:
 		s, err_ := s_.Impl.Close()
 		out_ := controlCloseResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case ControlDescribeOrdinal:
+		fallthrough
+	case ControlDescribeGenOrdinal:
 		info, err_ := s_.Impl.Describe()
 		out_ := controlDescribeResponse{}
 		out_.Info = info
 		return &out_, true, err_
 	case ControlSyncOrdinal:
+		fallthrough
+	case ControlSyncGenOrdinal:
 		s, err_ := s_.Impl.Sync()
 		out_ := controlSyncResponse{}
 		out_.S = s
 		return &out_, true, err_
 	case ControlGetAttrOrdinal:
+		fallthrough
+	case ControlGetAttrGenOrdinal:
 		s, attributes, err_ := s_.Impl.GetAttr()
 		out_ := controlGetAttrResponse{}
 		out_.S = s
 		out_.Attributes = attributes
 		return &out_, true, err_
 	case ControlSetAttrOrdinal:
+		fallthrough
+	case ControlSetAttrGenOrdinal:
 		in_ := controlSetAttrRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -667,6 +696,8 @@
 		out_.S = s
 		return &out_, true, err_
 	case ControlIoctlOrdinal:
+		fallthrough
+	case ControlIoctlGenOrdinal:
 		in_ := controlIoctlRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -678,6 +709,8 @@
 		out_.Out = out
 		return &out_, true, err_
 	case ControlBindOrdinal:
+		fallthrough
+	case ControlBindGenOrdinal:
 		in_ := controlBindRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -687,6 +720,8 @@
 		out_.Code = code
 		return &out_, true, err_
 	case ControlConnectOrdinal:
+		fallthrough
+	case ControlConnectGenOrdinal:
 		in_ := controlConnectRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -696,6 +731,8 @@
 		out_.Code = code
 		return &out_, true, err_
 	case ControlListenOrdinal:
+		fallthrough
+	case ControlListenGenOrdinal:
 		in_ := controlListenRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -705,6 +742,8 @@
 		out_.Code = code
 		return &out_, true, err_
 	case ControlAcceptOrdinal:
+		fallthrough
+	case ControlAcceptGenOrdinal:
 		in_ := controlAcceptRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -715,18 +754,24 @@
 		out_.S = s
 		return &out_, true, err_
 	case ControlGetSockNameOrdinal:
+		fallthrough
+	case ControlGetSockNameGenOrdinal:
 		code, addr, err_ := s_.Impl.GetSockName()
 		out_ := controlGetSockNameResponse{}
 		out_.Code = code
 		out_.Addr = addr
 		return &out_, true, err_
 	case ControlGetPeerNameOrdinal:
+		fallthrough
+	case ControlGetPeerNameGenOrdinal:
 		code, addr, err_ := s_.Impl.GetPeerName()
 		out_ := controlGetPeerNameResponse{}
 		out_.Code = code
 		out_.Addr = addr
 		return &out_, true, err_
 	case ControlSetSockOptOrdinal:
+		fallthrough
+	case ControlSetSockOptGenOrdinal:
 		in_ := controlSetSockOptRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -736,6 +781,8 @@
 		out_.Code = code
 		return &out_, true, err_
 	case ControlGetSockOptOrdinal:
+		fallthrough
+	case ControlGetSockOptGenOrdinal:
 		in_ := controlGetSockOptRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -746,6 +793,8 @@
 		out_.Optval = optval
 		return &out_, true, err_
 	case ControlIoctlPosixOrdinal:
+		fallthrough
+	case ControlIoctlPosixGenOrdinal:
 		in_ := controlIoctlPosixRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_
@@ -783,11 +832,12 @@
 }
 
 const (
-	ProviderSocketOrdinal uint64 = 0x4d07378200000000
+	ProviderSocketOrdinal    uint64 = 0x4d07378200000000
+	ProviderSocketGenOrdinal uint64 = 0x3c53fd7d5afacab8
 )
 
 type providerSocketRequest struct {
-	_        struct{} `fidl2:"s,8,0"`
+	_        struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Domain   int16
 	Type     int16
 	Protocol int16
@@ -800,7 +850,7 @@
 }
 
 type providerSocketResponse struct {
-	_    struct{} `fidl2:"s,8,0"`
+	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
 	Code int16
 	S    ControlInterface
 }
@@ -859,6 +909,8 @@
 func (s_ *ProviderStub) DispatchImpl(ordinal_ uint64, data_ []byte, handles_ []_zx.Handle) (_bindings.Message, bool, error) {
 	switch ordinal_ {
 	case ProviderSocketOrdinal:
+		fallthrough
+	case ProviderSocketGenOrdinal:
 		in_ := providerSocketRequest{}
 		if _, _, err_ := _bindings.Unmarshal(data_, handles_, &in_); err_ != nil {
 			return nil, false, err_