diff --git a/descpb.bin b/descpb.bin
index 7abf297..ddb9c87 100644
--- a/descpb.bin
+++ b/descpb.bin
Binary files differ
diff --git a/go/lab/peripherals.pb.go b/go/lab/peripherals.pb.go
index 8b727d8..136e655 100644
--- a/go/lab/peripherals.pb.go
+++ b/go/lab/peripherals.pb.go
@@ -51,6 +51,37 @@
 	return fileDescriptor_3da5da8c71ea9e2e, []int{0}
 }
 
+type CableType int32
+
+const (
+	CableType_CABLE_INVALID     CableType = 0
+	CableType_CABLE_AUDIOJACK   CableType = 1
+	CableType_CABLE_USBAUDIO    CableType = 2
+	CableType_CABLE_USBPRINTING CableType = 3
+)
+
+var CableType_name = map[int32]string{
+	0: "CABLE_INVALID",
+	1: "CABLE_AUDIOJACK",
+	2: "CABLE_USBAUDIO",
+	3: "CABLE_USBPRINTING",
+}
+
+var CableType_value = map[string]int32{
+	"CABLE_INVALID":     0,
+	"CABLE_AUDIOJACK":   1,
+	"CABLE_USBAUDIO":    2,
+	"CABLE_USBPRINTING": 3,
+}
+
+func (x CableType) String() string {
+	return proto.EnumName(CableType_name, int32(x))
+}
+
+func (CableType) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_3da5da8c71ea9e2e, []int{1}
+}
+
 // DUT's WiFi antenna's connection.
 // Next Tag: 3
 type Wifi_AntennaConnection int32
@@ -80,10 +111,10 @@
 }
 
 func (Wifi_AntennaConnection) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_3da5da8c71ea9e2e, []int{4, 0}
+	return fileDescriptor_3da5da8c71ea9e2e, []int{5, 0}
 }
 
-// Peripherals of device. Next Tag: 10
+// Peripherals of device. Next Tag: 12
 type Peripherals struct {
 	Servo     *Servo     `protobuf:"bytes,1,opt,name=servo,proto3" json:"servo,omitempty"`
 	Chameleon *Chameleon `protobuf:"bytes,2,opt,name=chameleon,proto3" json:"chameleon,omitempty"`
@@ -97,7 +128,11 @@
 	Carrier string `protobuf:"bytes,8,opt,name=carrier,proto3" json:"carrier,omitempty"`
 	// Indicate if the device is setup in a steady and controllable camera box environment for camera test automation.
 	// https://docs.google.com/document/d/12YqHhBuOUolA7BjVEcG4rOIVIO2pgmb4jnOEApB806Y/edit#
-	Camerabox            bool     `protobuf:"varint,9,opt,name=camerabox,proto3" json:"camerabox,omitempty"`
+	Camerabox bool `protobuf:"varint,9,opt,name=camerabox,proto3" json:"camerabox,omitempty"`
+	// Indicate if the device is setup in a chaos environment. It's a special settings for running wifi interop tests.
+	Chaos bool `protobuf:"varint,10,opt,name=chaos,proto3" json:"chaos,omitempty"`
+	// Indicate the cables that connect audio, printer to the device in ACS lab.
+	Cable                []*Cable `protobuf:"bytes,11,rep,name=cable,proto3" json:"cable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -191,6 +226,20 @@
 	return false
 }
 
+func (m *Peripherals) GetChaos() bool {
+	if m != nil {
+		return m.Chaos
+	}
+	return false
+}
+
+func (m *Peripherals) GetCable() []*Cable {
+	if m != nil {
+		return m.Cable
+	}
+	return nil
+}
+
 // Remote power management info.
 // Next Tag: 3
 type RPM struct {
@@ -280,6 +329,45 @@
 	return CameraType_CAMERA_INVALID
 }
 
+type Cable struct {
+	Type                 CableType `protobuf:"varint,1,opt,name=type,proto3,enum=lab.CableType" json:"type,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
+	XXX_unrecognized     []byte    `json:"-"`
+	XXX_sizecache        int32     `json:"-"`
+}
+
+func (m *Cable) Reset()         { *m = Cable{} }
+func (m *Cable) String() string { return proto.CompactTextString(m) }
+func (*Cable) ProtoMessage()    {}
+func (*Cable) Descriptor() ([]byte, []int) {
+	return fileDescriptor_3da5da8c71ea9e2e, []int{3}
+}
+
+func (m *Cable) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Cable.Unmarshal(m, b)
+}
+func (m *Cable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Cable.Marshal(b, m, deterministic)
+}
+func (m *Cable) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Cable.Merge(m, src)
+}
+func (m *Cable) XXX_Size() int {
+	return xxx_messageInfo_Cable.Size(m)
+}
+func (m *Cable) XXX_DiscardUnknown() {
+	xxx_messageInfo_Cable.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Cable proto.InternalMessageInfo
+
+func (m *Cable) GetType() CableType {
+	if m != nil {
+		return m.Type
+	}
+	return CableType_CABLE_INVALID
+}
+
 // Next Tag: 3
 type Audio struct {
 	// Indicate if the DUT is housed in an audio box to record / replay audio
@@ -296,7 +384,7 @@
 func (m *Audio) String() string { return proto.CompactTextString(m) }
 func (*Audio) ProtoMessage()    {}
 func (*Audio) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3da5da8c71ea9e2e, []int{3}
+	return fileDescriptor_3da5da8c71ea9e2e, []int{4}
 }
 
 func (m *Audio) XXX_Unmarshal(b []byte) error {
@@ -345,7 +433,7 @@
 func (m *Wifi) String() string { return proto.CompactTextString(m) }
 func (*Wifi) ProtoMessage()    {}
 func (*Wifi) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3da5da8c71ea9e2e, []int{4}
+	return fileDescriptor_3da5da8c71ea9e2e, []int{5}
 }
 
 func (m *Wifi) XXX_Unmarshal(b []byte) error {
@@ -393,7 +481,7 @@
 func (m *Touch) String() string { return proto.CompactTextString(m) }
 func (*Touch) ProtoMessage()    {}
 func (*Touch) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3da5da8c71ea9e2e, []int{5}
+	return fileDescriptor_3da5da8c71ea9e2e, []int{6}
 }
 
 func (m *Touch) XXX_Unmarshal(b []byte) error {
@@ -423,10 +511,12 @@
 
 func init() {
 	proto.RegisterEnum("lab.CameraType", CameraType_name, CameraType_value)
+	proto.RegisterEnum("lab.CableType", CableType_name, CableType_value)
 	proto.RegisterEnum("lab.Wifi_AntennaConnection", Wifi_AntennaConnection_name, Wifi_AntennaConnection_value)
 	proto.RegisterType((*Peripherals)(nil), "lab.Peripherals")
 	proto.RegisterType((*RPM)(nil), "lab.RPM")
 	proto.RegisterType((*Camera)(nil), "lab.Camera")
+	proto.RegisterType((*Cable)(nil), "lab.Cable")
 	proto.RegisterType((*Audio)(nil), "lab.Audio")
 	proto.RegisterType((*Wifi)(nil), "lab.Wifi")
 	proto.RegisterType((*Touch)(nil), "lab.Touch")
@@ -435,41 +525,47 @@
 func init() { proto.RegisterFile("lab/peripherals.proto", fileDescriptor_3da5da8c71ea9e2e) }
 
 var fileDescriptor_3da5da8c71ea9e2e = []byte{
-	// 572 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x93, 0x5f, 0x6b, 0xdb, 0x30,
-	0x14, 0xc5, 0xeb, 0xfc, 0x69, 0xed, 0x9b, 0x36, 0x71, 0xd5, 0x0d, 0x4c, 0xba, 0x41, 0x30, 0x0c,
-	0xb2, 0xb1, 0xc5, 0x23, 0x83, 0x3d, 0xf4, 0x61, 0x90, 0x26, 0x65, 0x2d, 0x6b, 0x9d, 0xa0, 0xa5,
-	0x2d, 0xeb, 0x8b, 0x51, 0x5c, 0xb5, 0x11, 0xd8, 0x96, 0x51, 0x9c, 0xb5, 0xfd, 0x4e, 0xfb, 0x28,
-	0xfb, 0x50, 0x43, 0x57, 0x49, 0x1c, 0xd8, 0x9b, 0xee, 0xef, 0x1e, 0x1f, 0x1f, 0x1f, 0x61, 0x78,
-	0x9d, 0xb0, 0x59, 0x90, 0x73, 0x25, 0xf2, 0x39, 0x57, 0x2c, 0x59, 0xf4, 0x72, 0x25, 0x0b, 0x49,
-	0xaa, 0x09, 0x9b, 0xb5, 0x8f, 0xf4, 0x2e, 0x9e, 0xb3, 0x94, 0x27, 0x5c, 0x66, 0x66, 0xd3, 0x6e,
-	0x69, 0xb8, 0xe0, 0xea, 0xb7, 0x34, 0xc0, 0xff, 0x5b, 0x81, 0xc6, 0xa4, 0x34, 0x20, 0x1d, 0xa8,
-	0xe3, 0xda, 0xb3, 0x3a, 0x56, 0xb7, 0xd1, 0x87, 0x5e, 0xc2, 0x66, 0xbd, 0x9f, 0x9a, 0x50, 0xb3,
-	0x20, 0x1f, 0xc1, 0xd9, 0xb8, 0x7a, 0x15, 0x54, 0x35, 0x51, 0x35, 0x5c, 0x53, 0x5a, 0x0a, 0x48,
-	0x1b, 0xaa, 0x2a, 0x4f, 0xbd, 0x2a, 0xea, 0x6c, 0xd4, 0xd1, 0xc9, 0x15, 0xd5, 0x90, 0x7c, 0x05,
-	0x37, 0x96, 0x59, 0xc6, 0xe3, 0x82, 0xdf, 0x47, 0x31, 0x4b, 0xb9, 0x62, 0x5e, 0xad, 0x53, 0xed,
-	0x36, 0xfa, 0x0d, 0x63, 0x88, 0x88, 0xb6, 0x36, 0x22, 0x03, 0x74, 0x46, 0xb6, 0xbc, 0x17, 0xd2,
-	0xab, 0x6f, 0x65, 0x1c, 0x68, 0x42, 0xcd, 0x82, 0xbc, 0x85, 0xda, 0x93, 0x78, 0x10, 0xde, 0x2e,
-	0x0a, 0x1c, 0x14, 0xdc, 0x8a, 0x07, 0x41, 0x11, 0x6b, 0x83, 0x42, 0x2e, 0xe3, 0xb9, 0xb7, 0xb7,
-	0x65, 0x30, 0xd5, 0x84, 0x9a, 0x05, 0xf1, 0x60, 0x2f, 0x66, 0x4a, 0x09, 0xae, 0x3c, 0xbb, 0x63,
-	0x75, 0x1d, 0xba, 0x1e, 0xc9, 0x1b, 0x70, 0x4c, 0xd4, 0x99, 0x7c, 0xf6, 0x9c, 0x8e, 0xd5, 0xb5,
-	0x69, 0x09, 0xfc, 0x5b, 0xa8, 0xd2, 0xc9, 0x15, 0x79, 0x07, 0xcd, 0x5c, 0x3e, 0x71, 0xb5, 0xcc,
-	0x44, 0x11, 0x65, 0x2c, 0xe5, 0x58, 0xa7, 0x43, 0x0f, 0x36, 0x34, 0x64, 0x29, 0x27, 0xef, 0xc1,
-	0x2d, 0x65, 0x72, 0x59, 0x24, 0xbc, 0xc0, 0x46, 0x1d, 0xda, 0xda, 0xf0, 0x31, 0x62, 0xff, 0x04,
-	0x76, 0x57, 0x5f, 0xff, 0x19, 0x1a, 0xe6, 0x7d, 0x51, 0xf1, 0x92, 0x1b, 0xe3, 0x66, 0xbf, 0xb5,
-	0x55, 0xd8, 0xf4, 0x25, 0xe7, 0x14, 0xe2, 0xcd, 0xd9, 0x3f, 0x81, 0x3a, 0xb6, 0x43, 0x8e, 0xc1,
-	0xc1, 0x7e, 0x22, 0x9d, 0xdd, 0xc2, 0xec, 0x36, 0x82, 0x53, 0xf9, 0x4c, 0x5e, 0x41, 0x9d, 0x15,
-	0x6a, 0xb9, 0xc0, 0x04, 0x36, 0x35, 0x83, 0xff, 0xc7, 0x82, 0x9a, 0x6e, 0x8e, 0xb4, 0xc1, 0xd6,
-	0xdd, 0xc5, 0x3c, 0x49, 0xd6, 0x8f, 0xae, 0x67, 0xf2, 0x0d, 0xf6, 0x59, 0x56, 0xf0, 0x2c, 0x63,
-	0x91, 0xbe, 0x2b, 0x74, 0x68, 0xf6, 0x8f, 0x37, 0xb5, 0xf7, 0x06, 0x66, 0x3b, 0x34, 0x17, 0x29,
-	0x64, 0x46, 0x1b, 0xac, 0x44, 0xfe, 0x39, 0x1c, 0xfe, 0xa7, 0x20, 0x2e, 0xec, 0x0f, 0xc7, 0x61,
-	0x18, 0x5d, 0x87, 0x3f, 0xc2, 0xf1, 0x6d, 0xe8, 0xee, 0x90, 0x23, 0x68, 0x21, 0x19, 0x8e, 0xc3,
-	0xd1, 0xf5, 0x70, 0x7a, 0x71, 0x73, 0xe6, 0x5a, 0x64, 0x1f, 0x6c, 0x84, 0xe3, 0xe9, 0xc0, 0xad,
-	0xf8, 0xc7, 0x50, 0xc7, 0x7b, 0x24, 0x04, 0x6a, 0xa9, 0x48, 0xe5, 0x2a, 0x2a, 0x9e, 0x3f, 0x7c,
-	0x07, 0x28, 0x1b, 0x22, 0x04, 0x9a, 0xc3, 0xc1, 0xd5, 0x19, 0x1d, 0x44, 0x17, 0xe1, 0xcd, 0xe0,
-	0xf2, 0x62, 0xe4, 0xee, 0x90, 0x43, 0x38, 0x58, 0xb1, 0xf3, 0xeb, 0xd1, 0xe8, 0xf2, 0x97, 0x6b,
-	0x6d, 0xc9, 0x26, 0xd3, 0xbb, 0x09, 0x1d, 0xf7, 0xdd, 0xca, 0x69, 0x70, 0xf7, 0xe9, 0x51, 0xf6,
-	0xe2, 0xb9, 0x92, 0xa9, 0x58, 0xa6, 0x3d, 0xa9, 0x1e, 0x83, 0xf5, 0x20, 0x17, 0x81, 0xc8, 0x1e,
-	0x14, 0x0b, 0xf0, 0xf7, 0x0a, 0x1e, 0x65, 0x90, 0xb0, 0xd9, 0x6c, 0x17, 0xa7, 0x2f, 0xff, 0x02,
-	0x00, 0x00, 0xff, 0xff, 0xaa, 0x35, 0x3b, 0xb4, 0xb0, 0x03, 0x00, 0x00,
+	// 661 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x94, 0x5f, 0x6f, 0xda, 0x3c,
+	0x14, 0xc6, 0x1b, 0xfe, 0xb4, 0xe4, 0xd0, 0x42, 0xea, 0xbe, 0x95, 0x22, 0xfa, 0x4e, 0x42, 0x91,
+	0x26, 0xb1, 0x6e, 0x83, 0x89, 0x49, 0xbb, 0xe8, 0xc5, 0xa4, 0x00, 0x55, 0xcb, 0xda, 0x06, 0xe4,
+	0x42, 0xab, 0xf5, 0x62, 0xc8, 0x49, 0xdd, 0x12, 0x29, 0x89, 0x91, 0x09, 0xeb, 0x7a, 0xbf, 0x8f,
+	0xb3, 0x0f, 0x39, 0xf9, 0x18, 0x12, 0xa4, 0xdd, 0xe5, 0xfc, 0x9e, 0xc7, 0x87, 0xc7, 0xe7, 0x58,
+	0xc0, 0x71, 0xc4, 0xfc, 0xce, 0x82, 0xcb, 0x70, 0x31, 0xe7, 0x92, 0x45, 0xcb, 0xf6, 0x42, 0x8a,
+	0x54, 0x90, 0x62, 0xc4, 0xfc, 0xc6, 0x91, 0xd2, 0x82, 0x39, 0x8b, 0x79, 0xc4, 0x45, 0xa2, 0x95,
+	0x46, 0x5d, 0xc1, 0x25, 0x97, 0x3f, 0x85, 0x06, 0xce, 0xef, 0x22, 0x54, 0xc7, 0x79, 0x03, 0xd2,
+	0x84, 0x32, 0xca, 0xb6, 0xd1, 0x34, 0x5a, 0xd5, 0x2e, 0xb4, 0x23, 0xe6, 0xb7, 0x6f, 0x15, 0xa1,
+	0x5a, 0x20, 0x1f, 0xc0, 0xcc, 0xba, 0xda, 0x05, 0x74, 0xd5, 0xd0, 0xd5, 0xdf, 0x50, 0x9a, 0x1b,
+	0x48, 0x03, 0x8a, 0x72, 0x11, 0xdb, 0x45, 0xf4, 0x55, 0xd0, 0x47, 0xc7, 0x37, 0x54, 0x41, 0xf2,
+	0x05, 0xac, 0x40, 0x24, 0x09, 0x0f, 0x52, 0xfe, 0x38, 0x0b, 0x58, 0xcc, 0x25, 0xb3, 0x4b, 0xcd,
+	0x62, 0xab, 0xda, 0xad, 0xea, 0x86, 0x88, 0x68, 0x3d, 0x33, 0x69, 0xa0, 0x32, 0xb2, 0xd5, 0x63,
+	0x28, 0xec, 0xf2, 0x56, 0x46, 0x57, 0x11, 0xaa, 0x05, 0xf2, 0x06, 0x4a, 0x2f, 0xe1, 0x53, 0x68,
+	0xef, 0xa2, 0xc1, 0x44, 0xc3, 0x7d, 0xf8, 0x14, 0x52, 0xc4, 0xaa, 0x41, 0x2a, 0x56, 0xc1, 0xdc,
+	0xde, 0xdb, 0x6a, 0x30, 0x51, 0x84, 0x6a, 0x81, 0xd8, 0xb0, 0x17, 0x30, 0x29, 0x43, 0x2e, 0xed,
+	0x4a, 0xd3, 0x68, 0x99, 0x74, 0x53, 0x92, 0xff, 0xc1, 0xd4, 0x51, 0x7d, 0xf1, 0xcb, 0x36, 0x9b,
+	0x46, 0xab, 0x42, 0x73, 0x40, 0xfe, 0x83, 0x72, 0x30, 0x67, 0x62, 0x69, 0x03, 0x2a, 0xba, 0x50,
+	0xbf, 0x17, 0x30, 0x3f, 0xe2, 0x76, 0x15, 0x6f, 0x07, 0xeb, 0xdb, 0xf9, 0x11, 0xa7, 0x5a, 0x70,
+	0xee, 0xa1, 0x48, 0xc7, 0x37, 0xe4, 0x2d, 0xd4, 0x16, 0xe2, 0x85, 0xcb, 0x55, 0x12, 0xa6, 0xb3,
+	0x84, 0xc5, 0x1c, 0xd7, 0x60, 0xd2, 0x83, 0x8c, 0x7a, 0x2c, 0xe6, 0xe4, 0x1d, 0x58, 0xb9, 0x4d,
+	0xac, 0xd2, 0x88, 0xa7, 0xb8, 0x09, 0x93, 0xd6, 0x33, 0x3e, 0x42, 0xec, 0x9c, 0xc1, 0xee, 0x7a,
+	0x6a, 0x9f, 0xa0, 0xaa, 0x73, 0xce, 0xd2, 0xd7, 0x85, 0x6e, 0x5c, 0xeb, 0xd6, 0xb7, 0x06, 0x3d,
+	0x79, 0x5d, 0x70, 0x0a, 0x41, 0xf6, 0xed, 0xbc, 0x87, 0x32, 0x86, 0x24, 0x0e, 0x94, 0xb6, 0xce,
+	0xd4, 0xf2, 0xf8, 0x78, 0x04, 0x35, 0xe7, 0x0c, 0xca, 0xb8, 0x02, 0x72, 0x02, 0x26, 0x2e, 0x61,
+	0xa6, 0x06, 0x64, 0xe0, 0x18, 0x2a, 0x08, 0x7a, 0x7a, 0x3e, 0x2c, 0x95, 0xab, 0x25, 0xc6, 0xad,
+	0x50, 0x5d, 0x38, 0x7f, 0x0c, 0x28, 0xa9, 0xf5, 0x90, 0x06, 0x54, 0xd4, 0x82, 0x02, 0x1e, 0x45,
+	0x9b, 0xa3, 0x9b, 0x9a, 0x7c, 0x85, 0x7d, 0x96, 0xa4, 0x3c, 0x49, 0xd8, 0x4c, 0x3d, 0x08, 0xec,
+	0x50, 0xeb, 0x9e, 0x64, 0xbb, 0x6d, 0xbb, 0x5a, 0xed, 0xeb, 0xd7, 0x12, 0x8a, 0x84, 0x56, 0x59,
+	0x8e, 0x9c, 0x4b, 0x38, 0xfc, 0xc7, 0x41, 0x2c, 0xd8, 0xef, 0x8f, 0x3c, 0x6f, 0x36, 0xf5, 0xae,
+	0xbc, 0xd1, 0xbd, 0x67, 0xed, 0x90, 0x23, 0xa8, 0x23, 0xe9, 0x8f, 0xbc, 0xc1, 0xb4, 0x3f, 0x19,
+	0xde, 0x9d, 0x5b, 0x06, 0xd9, 0x87, 0x0a, 0xc2, 0xd1, 0xc4, 0xb5, 0x0a, 0xce, 0x09, 0x94, 0xf1,
+	0xb1, 0x10, 0x02, 0xa5, 0x38, 0x8c, 0xc5, 0x3a, 0x2a, 0x7e, 0x9f, 0x5e, 0x00, 0xe4, 0xe3, 0x24,
+	0x04, 0x6a, 0x7d, 0xf7, 0xe6, 0x9c, 0xba, 0xb3, 0xa1, 0x77, 0xe7, 0x5e, 0x0f, 0x07, 0xd6, 0x0e,
+	0x39, 0x84, 0x83, 0x35, 0xbb, 0x9c, 0x0e, 0x06, 0xd7, 0xdf, 0x2d, 0x63, 0xcb, 0x36, 0x9e, 0x3c,
+	0x8c, 0xe9, 0xa8, 0x6b, 0x15, 0x4e, 0x7f, 0x80, 0x99, 0xcd, 0x58, 0x9f, 0xe9, 0x5d, 0x9f, 0x6f,
+	0xb5, 0x51, 0x41, 0x11, 0xb9, 0xd3, 0xc1, 0x70, 0xf4, 0xcd, 0xed, 0x5f, 0x6d, 0x1a, 0x29, 0x38,
+	0xbd, 0xed, 0x21, 0xb7, 0x0a, 0xe4, 0x18, 0x0e, 0x33, 0x36, 0xa6, 0x43, 0x6f, 0x32, 0xf4, 0x2e,
+	0xac, 0x62, 0xaf, 0xf3, 0xf0, 0xf1, 0x59, 0xb4, 0x83, 0xb9, 0x14, 0x71, 0xb8, 0x8a, 0xdb, 0x42,
+	0x3e, 0x77, 0x36, 0x85, 0x58, 0x76, 0xc2, 0xe4, 0x49, 0xb2, 0x0e, 0xfe, 0x47, 0x74, 0x9e, 0x45,
+	0x27, 0x62, 0xbe, 0xbf, 0x8b, 0xd5, 0xe7, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x69, 0x57, 0x01,
+	0x92, 0x75, 0x04, 0x00, 0x00,
 }
diff --git a/src/lab/peripherals.proto b/src/lab/peripherals.proto
index aa7500a..280bc9b 100644
--- a/src/lab/peripherals.proto
+++ b/src/lab/peripherals.proto
@@ -13,7 +13,7 @@
 
 // This proto defines setup labels in lab config of a DUT.
 
-// Peripherals of device. Next Tag: 10
+// Peripherals of device. Next Tag: 12
 message Peripherals {
   Servo servo = 1;
   Chameleon chameleon = 2;
@@ -28,6 +28,10 @@
   // Indicate if the device is setup in a steady and controllable camera box environment for camera test automation.
   // https://docs.google.com/document/d/12YqHhBuOUolA7BjVEcG4rOIVIO2pgmb4jnOEApB806Y/edit#
   bool camerabox = 9;
+  // Indicate if the device is setup in a chaos environment. It's a special settings for running wifi interop tests.
+  bool chaos = 10;
+  // Indicate the cables that connect audio, printer to the device in ACS lab.
+  repeated Cable cable = 11;
 }
 
 // Remote power management info.
@@ -51,6 +55,17 @@
   CameraType camera_type = 1;
 }
 
+enum CableType {
+  CABLE_INVALID = 0;
+  CABLE_AUDIOJACK = 1;
+  CABLE_USBAUDIO = 2;
+  CABLE_USBPRINTING = 3;
+}
+
+message Cable {
+  CableType type = 1;
+}
+
 // Next Tag: 3
 message Audio {
   // Indicate if the DUT is housed in an audio box to record / replay audio
@@ -81,4 +96,4 @@
 message Touch {
   // Has touch monitor mimo.
   bool mimo = 1;
-}
\ No newline at end of file
+}
