diff --git a/api/bbsim/bbsim.pb.go b/api/bbsim/bbsim.pb.go
index 7226f79..2f2f647 100644
--- a/api/bbsim/bbsim.pb.go
+++ b/api/bbsim/bbsim.pb.go
@@ -582,45 +582,46 @@
 func init() { proto.RegisterFile("api/bbsim/bbsim.proto", fileDescriptor_ef7750073d18011b) }
 
 var fileDescriptor_ef7750073d18011b = []byte{
-	// 593 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x94, 0xd1, 0x6e, 0xda, 0x30,
-	0x14, 0x86, 0x13, 0x20, 0x04, 0x4e, 0x68, 0xa7, 0x59, 0xdd, 0x14, 0xa1, 0x6a, 0x43, 0x56, 0x35,
-	0xb1, 0x5d, 0xb4, 0x1b, 0x4c, 0xda, 0x6e, 0xd7, 0x82, 0x56, 0xa4, 0x2a, 0xa0, 0xa4, 0xec, 0x76,
-	0x0a, 0xc4, 0x82, 0x48, 0x49, 0x9c, 0xc5, 0xa6, 0x68, 0x0f, 0xb0, 0x77, 0xda, 0x8b, 0xec, 0x61,
-	0x76, 0x37, 0x39, 0x76, 0x02, 0x29, 0x9a, 0xd4, 0xed, 0xa6, 0x37, 0xc8, 0xe7, 0x3b, 0xe7, 0x3f,
-	0xb6, 0xff, 0x63, 0x02, 0xcf, 0xfc, 0x34, 0xbc, 0x58, 0x2c, 0x58, 0x18, 0xcb, 0xdf, 0xf3, 0x34,
-	0xa3, 0x9c, 0x22, 0x23, 0x0f, 0xf0, 0x07, 0x30, 0x67, 0x53, 0x67, 0x46, 0x33, 0x8e, 0x8e, 0xa1,
-	0x36, 0x19, 0xd9, 0x7a, 0x4f, 0xef, 0x1b, 0x6e, 0x6d, 0x32, 0x42, 0xa7, 0xd0, 0x9e, 0xa6, 0x24,
-	0xf3, 0xb8, 0xcf, 0x89, 0x5d, 0xeb, 0xe9, 0xfd, 0xb6, 0xbb, 0x03, 0x42, 0xe8, 0x38, 0x93, 0xff,
-	0x10, 0xfe, 0xd2, 0xa1, 0x3e, 0x8d, 0x0e, 0x55, 0x18, 0x3a, 0x1e, 0xc9, 0x42, 0x3f, 0x72, 0x36,
-	0xf1, 0x82, 0x64, 0x4a, 0x58, 0x61, 0xd5, 0xce, 0xf5, 0x7b, 0x9d, 0xd1, 0x19, 0x1c, 0x4d, 0x12,
-	0x4e, 0xb2, 0xc4, 0x8f, 0x64, 0x45, 0x23, 0xaf, 0xa8, 0x42, 0xf4, 0x06, 0x5a, 0xea, 0xe0, 0xcc,
-	0x36, 0x7a, 0xf5, 0xbe, 0x35, 0x38, 0x3e, 0x97, 0xc6, 0x28, 0xec, 0x96, 0x79, 0x51, 0xab, 0xdc,
-	0x61, 0x76, 0xb3, 0x52, 0xab, 0xb0, 0x5b, 0xe6, 0xf1, 0x6f, 0x71, 0x2f, 0x67, 0xfe, 0x68, 0xf7,
-	0x3a, 0x85, 0xf6, 0x8c, 0x26, 0xe2, 0x2c, 0x93, 0x91, 0x6d, 0xe4, 0xdb, 0xef, 0x00, 0x42, 0xd0,
-	0xf0, 0x6e, 0xfd, 0x95, 0xdd, 0xcc, 0x13, 0xf9, 0x5a, 0xb0, 0x2b, 0xc1, 0x4c, 0xc9, 0xc4, 0x5a,
-	0x74, 0xb9, 0xde, 0x7e, 0x0a, 0x82, 0x8c, 0x30, 0x66, 0xb7, 0xe4, 0x49, 0x4a, 0x80, 0x9e, 0x43,
-	0x53, 0xf4, 0x73, 0xa8, 0xdd, 0xce, 0x35, 0x2a, 0xc2, 0x7d, 0x68, 0x4c, 0x9d, 0x39, 0x43, 0x3d,
-	0x30, 0x42, 0x4e, 0x62, 0x66, 0xeb, 0xb9, 0x59, 0xa0, 0xcc, 0x9a, 0x3a, 0x73, 0x57, 0x26, 0xf0,
-	0x5b, 0x00, 0x11, 0x91, 0x6f, 0x1b, 0xc2, 0xf8, 0x81, 0x37, 0xfa, 0xa1, 0x37, 0xf8, 0x87, 0x0e,
-	0x47, 0x5f, 0x48, 0xc6, 0x42, 0x9a, 0x28, 0xb7, 0x6c, 0x30, 0xef, 0x24, 0x50, 0x82, 0x22, 0x14,
-	0xa7, 0x5f, 0x6c, 0xc2, 0x28, 0xb8, 0x0d, 0xe3, 0xf2, 0xe5, 0x95, 0x00, 0xbd, 0x00, 0x58, 0xd2,
-	0x38, 0x0e, 0xf9, 0xb5, 0xcf, 0xd6, 0xca, 0xe6, 0x3d, 0x22, 0xd4, 0xab, 0x90, 0x0b, 0x37, 0x37,
-	0x4c, 0x79, 0xbc, 0x03, 0xf8, 0x23, 0xb4, 0x6e, 0xe8, 0xea, 0x86, 0xdc, 0x91, 0x08, 0x9d, 0x80,
-	0x11, 0x89, 0x85, 0xda, 0x5f, 0x06, 0xc2, 0x9d, 0xa5, 0x1f, 0x45, 0x6a, 0xc6, 0x2d, 0x57, 0x45,
-	0x78, 0x0c, 0x2d, 0x97, 0xb0, 0x94, 0x26, 0x8c, 0xa0, 0x97, 0x60, 0xb1, 0xbc, 0xdf, 0xd7, 0x25,
-	0x0d, 0x88, 0x7a, 0x26, 0x20, 0xd1, 0x15, 0x0d, 0x88, 0xb8, 0x5c, 0x4c, 0x18, 0xf3, 0x57, 0xc5,
-	0x05, 0x8a, 0x10, 0x9b, 0x60, 0x8c, 0xe3, 0x94, 0x7f, 0x1f, 0xfc, 0xac, 0x83, 0x71, 0x79, 0xe9,
-	0x85, 0x31, 0xba, 0x00, 0x53, 0x59, 0x83, 0x3a, 0xca, 0xeb, 0xbc, 0xa4, 0x7b, 0xa2, 0xa2, 0x8a,
-	0x71, 0x58, 0x43, 0x67, 0xd0, 0xfc, 0x4c, 0xb8, 0xf8, 0xfb, 0x55, 0xeb, 0xcb, 0x49, 0x45, 0x1c,
-	0x6b, 0xe8, 0x15, 0x98, 0xa2, 0x4a, 0x4c, 0xb4, 0x5a, 0x66, 0xed, 0x06, 0xca, 0xb0, 0x86, 0x5e,
-	0xcb, 0x6e, 0xce, 0x1c, 0x3d, 0xdd, 0x9b, 0xb4, 0x9c, 0x6d, 0x77, 0x6f, 0xf8, 0x58, 0x43, 0xef,
-	0xc0, 0xf2, 0x08, 0x2f, 0x0d, 0x7c, 0xa2, 0x92, 0x05, 0xe8, 0xde, 0x07, 0x58, 0x43, 0x43, 0xb0,
-	0xbc, 0xf5, 0x86, 0x07, 0x74, 0x9b, 0xfc, 0x65, 0x8b, 0x42, 0x54, 0xb8, 0x8b, 0x35, 0x34, 0x00,
-	0x98, 0xd1, 0x2d, 0xc9, 0xe8, 0x3f, 0x68, 0xde, 0x43, 0xc7, 0x25, 0x8c, 0xfb, 0x19, 0x1f, 0xfb,
-	0x29, 0x8d, 0x1e, 0xa8, 0x1a, 0x82, 0xa5, 0x54, 0xa3, 0xf5, 0x32, 0x7d, 0x98, 0x68, 0xd1, 0xcc,
-	0x3f, 0xbe, 0xc3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x15, 0x8d, 0x8c, 0x02, 0x95, 0x05, 0x00,
-	0x00,
+	// 617 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0xd1, 0x8e, 0xd2, 0x4c,
+	0x18, 0x6d, 0x81, 0x52, 0xf8, 0xca, 0xee, 0x9f, 0x7f, 0xb2, 0x9a, 0x86, 0x6c, 0x94, 0x4c, 0x36,
+	0x06, 0x8d, 0xb2, 0x0a, 0x26, 0x7a, 0xeb, 0x2e, 0xc4, 0x25, 0xd9, 0x14, 0xd2, 0x2e, 0xde, 0x9a,
+	0x96, 0x4e, 0xa0, 0x49, 0xdb, 0xa9, 0x9d, 0x61, 0x89, 0x0f, 0xe0, 0xa3, 0xf9, 0x08, 0x3e, 0x8c,
+	0x77, 0x66, 0xda, 0x69, 0xa1, 0xcb, 0x5e, 0x10, 0x6f, 0xbc, 0x21, 0x73, 0xce, 0x9c, 0x33, 0xf3,
+	0x7d, 0x67, 0x3e, 0x52, 0x78, 0xe2, 0x26, 0xc1, 0xa5, 0xe7, 0xb1, 0x20, 0xca, 0x7f, 0x07, 0x49,
+	0x4a, 0x39, 0x45, 0x5a, 0x06, 0xf0, 0x07, 0xd0, 0xe7, 0x33, 0x6b, 0x4e, 0x53, 0x8e, 0x4e, 0xa1,
+	0x36, 0x1d, 0x9b, 0x6a, 0x4f, 0xed, 0x6b, 0x76, 0x6d, 0x3a, 0x46, 0xe7, 0xd0, 0x9e, 0x25, 0x24,
+	0x75, 0xb8, 0xcb, 0x89, 0x59, 0xeb, 0xa9, 0xfd, 0xb6, 0xbd, 0x23, 0x84, 0xd1, 0xb2, 0xa6, 0x7f,
+	0x61, 0xfc, 0xa5, 0x42, 0x7d, 0x16, 0x1e, 0xba, 0x30, 0x74, 0x1c, 0x92, 0x06, 0x6e, 0x68, 0x6d,
+	0x22, 0x8f, 0xa4, 0xd2, 0x58, 0xe1, 0xaa, 0x27, 0xd7, 0x1f, 0x9c, 0x8c, 0x2e, 0xe0, 0x64, 0x1a,
+	0x73, 0x92, 0xc6, 0x6e, 0x98, 0x2b, 0x1a, 0x99, 0xa2, 0x4a, 0xa2, 0x57, 0xd0, 0x92, 0x85, 0x33,
+	0x53, 0xeb, 0xd5, 0xfb, 0xc6, 0xf0, 0x74, 0x90, 0x07, 0x23, 0x69, 0xbb, 0xdc, 0x17, 0x5a, 0x99,
+	0x0e, 0x33, 0x9b, 0x15, 0xad, 0xa4, 0xed, 0x72, 0x1f, 0xff, 0x16, 0x7d, 0x59, 0x8b, 0x7f, 0xd6,
+	0xd7, 0x39, 0xb4, 0xe7, 0x34, 0x16, 0xb5, 0x4c, 0xc7, 0xa6, 0x96, 0x5d, 0xbf, 0x23, 0x10, 0x82,
+	0x86, 0x73, 0xe7, 0xae, 0xcc, 0x66, 0xb6, 0x91, 0xad, 0x05, 0x77, 0x2d, 0x38, 0x3d, 0xe7, 0xc4,
+	0x5a, 0x9c, 0x72, 0xb3, 0xfd, 0xe4, 0xfb, 0x29, 0x61, 0xcc, 0x6c, 0xe5, 0x95, 0x94, 0x04, 0x7a,
+	0x0a, 0x4d, 0x71, 0x9e, 0x45, 0xcd, 0x76, 0xe6, 0x91, 0x08, 0xf7, 0xa1, 0x31, 0xb3, 0x16, 0x0c,
+	0xf5, 0x40, 0x0b, 0x38, 0x89, 0x98, 0xa9, 0x66, 0x61, 0x81, 0x0c, 0x6b, 0x66, 0x2d, 0xec, 0x7c,
+	0x03, 0xbf, 0x05, 0x10, 0x88, 0x7c, 0xdb, 0x10, 0xc6, 0x0f, 0xb2, 0x51, 0x0f, 0xb3, 0xc1, 0x3f,
+	0x54, 0x38, 0xf9, 0x42, 0x52, 0x16, 0xd0, 0x58, 0xa6, 0x65, 0x82, 0x7e, 0x9f, 0x13, 0xd2, 0x50,
+	0x40, 0x51, 0xbd, 0xb7, 0x09, 0x42, 0xff, 0x2e, 0x88, 0xca, 0xc9, 0x2b, 0x09, 0xf4, 0x0c, 0x60,
+	0x49, 0xa3, 0x28, 0xe0, 0x37, 0x2e, 0x5b, 0xcb, 0x98, 0xf7, 0x18, 0xe1, 0x5e, 0x05, 0x5c, 0xa4,
+	0xb9, 0x61, 0x32, 0xe3, 0x1d, 0x81, 0x3f, 0x42, 0xeb, 0x96, 0xae, 0x6e, 0xc9, 0x3d, 0x09, 0xd1,
+	0x19, 0x68, 0xa1, 0x58, 0xc8, 0xfb, 0x73, 0x20, 0xd2, 0x59, 0xba, 0x61, 0x28, 0xdf, 0xb8, 0x65,
+	0x4b, 0x84, 0x27, 0xd0, 0xb2, 0x09, 0x4b, 0x68, 0xcc, 0x08, 0x7a, 0x0e, 0x06, 0xcb, 0xce, 0xfb,
+	0xba, 0xa4, 0x3e, 0x91, 0x63, 0x02, 0x39, 0x75, 0x4d, 0x7d, 0x22, 0x9a, 0x8b, 0x08, 0x63, 0xee,
+	0xaa, 0x68, 0xa0, 0x80, 0x58, 0x07, 0x6d, 0x12, 0x25, 0xfc, 0xfb, 0xf0, 0x67, 0x03, 0xb4, 0xab,
+	0x2b, 0x27, 0x88, 0xd0, 0x25, 0xe8, 0x32, 0x1a, 0xd4, 0x91, 0x59, 0x67, 0x92, 0xee, 0x99, 0x44,
+	0x95, 0xe0, 0xb0, 0x82, 0x2e, 0xa0, 0xf9, 0x99, 0x70, 0xf1, 0xf7, 0xab, 0xea, 0xcb, 0x97, 0x0a,
+	0x39, 0x56, 0xd0, 0x1b, 0x80, 0x39, 0xdd, 0x92, 0x94, 0xc6, 0x87, 0xca, 0xff, 0x24, 0x2a, 0x3a,
+	0xc2, 0x0a, 0x1a, 0x80, 0xe1, 0xac, 0x37, 0xdc, 0xa7, 0xdb, 0xe3, 0xf4, 0xaf, 0xa1, 0x6d, 0x13,
+	0x8f, 0x52, 0x7e, 0x94, 0xfa, 0x05, 0xe8, 0xa2, 0x64, 0x31, 0x5e, 0x55, 0xad, 0xb1, 0x9b, 0x2e,
+	0x86, 0x15, 0xf4, 0x32, 0x6f, 0xcd, 0x5a, 0xa0, 0xff, 0xf7, 0xc6, 0x2e, 0x1f, 0xb4, 0xee, 0xde,
+	0x24, 0x62, 0x05, 0xbd, 0x03, 0xc3, 0x21, 0xbc, 0x7c, 0xcd, 0xe2, 0xd2, 0x82, 0xe8, 0x3e, 0x24,
+	0xb0, 0x82, 0x46, 0x7b, 0x3d, 0x3e, 0x7e, 0xc5, 0x23, 0xa5, 0x0f, 0x77, 0x39, 0x1e, 0xed, 0x79,
+	0x0f, 0x1d, 0x9b, 0x30, 0xee, 0xa6, 0x7c, 0xe2, 0x26, 0x34, 0x3c, 0xd2, 0x35, 0x02, 0x43, 0xba,
+	0xc6, 0xeb, 0x65, 0x72, 0x9c, 0xc9, 0x6b, 0x66, 0x5f, 0x82, 0xd1, 0x9f, 0x00, 0x00, 0x00, 0xff,
+	0xff, 0x57, 0x53, 0xc7, 0x05, 0x22, 0x06, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -637,6 +638,9 @@
 type BBSimClient interface {
 	Version(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*VersionNumber, error)
 	GetOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Olt, error)
+	PoweronOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Response, error)
+	ShutdownOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Response, error)
+	RebootOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Response, error)
 	GetONUs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ONUs, error)
 	GetONU(ctx context.Context, in *ONURequest, opts ...grpc.CallOption) (*ONU, error)
 	SetLogLevel(ctx context.Context, in *LogLevel, opts ...grpc.CallOption) (*LogLevel, error)
@@ -672,6 +676,33 @@
 	return out, nil
 }
 
+func (c *bBSimClient) PoweronOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Response, error) {
+	out := new(Response)
+	err := c.cc.Invoke(ctx, "/bbsim.BBSim/PoweronOlt", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *bBSimClient) ShutdownOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Response, error) {
+	out := new(Response)
+	err := c.cc.Invoke(ctx, "/bbsim.BBSim/ShutdownOlt", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *bBSimClient) RebootOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Response, error) {
+	out := new(Response)
+	err := c.cc.Invoke(ctx, "/bbsim.BBSim/RebootOlt", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *bBSimClient) GetONUs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ONUs, error) {
 	out := new(ONUs)
 	err := c.cc.Invoke(ctx, "/bbsim.BBSim/GetONUs", in, out, opts...)
@@ -739,6 +770,9 @@
 type BBSimServer interface {
 	Version(context.Context, *Empty) (*VersionNumber, error)
 	GetOlt(context.Context, *Empty) (*Olt, error)
+	PoweronOlt(context.Context, *Empty) (*Response, error)
+	ShutdownOlt(context.Context, *Empty) (*Response, error)
+	RebootOlt(context.Context, *Empty) (*Response, error)
 	GetONUs(context.Context, *Empty) (*ONUs, error)
 	GetONU(context.Context, *ONURequest) (*ONU, error)
 	SetLogLevel(context.Context, *LogLevel) (*LogLevel, error)
@@ -758,6 +792,15 @@
 func (*UnimplementedBBSimServer) GetOlt(ctx context.Context, req *Empty) (*Olt, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetOlt not implemented")
 }
+func (*UnimplementedBBSimServer) PoweronOlt(ctx context.Context, req *Empty) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PoweronOlt not implemented")
+}
+func (*UnimplementedBBSimServer) ShutdownOlt(ctx context.Context, req *Empty) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShutdownOlt not implemented")
+}
+func (*UnimplementedBBSimServer) RebootOlt(ctx context.Context, req *Empty) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RebootOlt not implemented")
+}
 func (*UnimplementedBBSimServer) GetONUs(ctx context.Context, req *Empty) (*ONUs, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetONUs not implemented")
 }
@@ -820,6 +863,60 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _BBSim_PoweronOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BBSimServer).PoweronOlt(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bbsim.BBSim/PoweronOlt",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BBSimServer).PoweronOlt(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BBSim_ShutdownOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BBSimServer).ShutdownOlt(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bbsim.BBSim/ShutdownOlt",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BBSimServer).ShutdownOlt(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BBSim_RebootOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BBSimServer).RebootOlt(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bbsim.BBSim/RebootOlt",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BBSimServer).RebootOlt(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _BBSim_GetONUs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(Empty)
 	if err := dec(in); err != nil {
@@ -959,6 +1056,18 @@
 			Handler:    _BBSim_GetOlt_Handler,
 		},
 		{
+			MethodName: "PoweronOlt",
+			Handler:    _BBSim_PoweronOlt_Handler,
+		},
+		{
+			MethodName: "ShutdownOlt",
+			Handler:    _BBSim_ShutdownOlt_Handler,
+		},
+		{
+			MethodName: "RebootOlt",
+			Handler:    _BBSim_RebootOlt_Handler,
+		},
+		{
 			MethodName: "GetONUs",
 			Handler:    _BBSim_GetONUs_Handler,
 		},
diff --git a/api/bbsim/bbsim.proto b/api/bbsim/bbsim.proto
index 29583c5..e147bb5 100644
--- a/api/bbsim/bbsim.proto
+++ b/api/bbsim/bbsim.proto
@@ -82,6 +82,9 @@
 service BBSim {
     rpc Version(Empty) returns (VersionNumber) {}
     rpc GetOlt(Empty) returns (Olt) {}
+    rpc PoweronOlt(Empty) returns (Response) {}
+    rpc ShutdownOlt(Empty) returns (Response) {}
+    rpc RebootOlt(Empty) returns (Response) {}
     rpc GetONUs(Empty) returns (ONUs) {}
     rpc GetONU(ONURequest) returns (ONU) {}
     rpc SetLogLevel(LogLevel) returns (LogLevel) {}
