routerrpc: expose mission control reset rpc

This commit is contained in:
Joost Jager 2019-05-10 18:00:15 +02:00
parent 3db48dc53f
commit 68f2a04f42
No known key found for this signature in database
GPG Key ID: A61B9D4C393C59C7
7 changed files with 218 additions and 82 deletions

@ -737,6 +737,68 @@ func (m *ChannelUpdate) GetExtraOpaqueData() []byte {
return nil return nil
} }
type ResetMissionControlRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ResetMissionControlRequest) Reset() { *m = ResetMissionControlRequest{} }
func (m *ResetMissionControlRequest) String() string { return proto.CompactTextString(m) }
func (*ResetMissionControlRequest) ProtoMessage() {}
func (*ResetMissionControlRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_7a0613f69d37b0a5, []int{8}
}
func (m *ResetMissionControlRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResetMissionControlRequest.Unmarshal(m, b)
}
func (m *ResetMissionControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ResetMissionControlRequest.Marshal(b, m, deterministic)
}
func (m *ResetMissionControlRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ResetMissionControlRequest.Merge(m, src)
}
func (m *ResetMissionControlRequest) XXX_Size() int {
return xxx_messageInfo_ResetMissionControlRequest.Size(m)
}
func (m *ResetMissionControlRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ResetMissionControlRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ResetMissionControlRequest proto.InternalMessageInfo
type ResetMissionControlResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ResetMissionControlResponse) Reset() { *m = ResetMissionControlResponse{} }
func (m *ResetMissionControlResponse) String() string { return proto.CompactTextString(m) }
func (*ResetMissionControlResponse) ProtoMessage() {}
func (*ResetMissionControlResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_7a0613f69d37b0a5, []int{9}
}
func (m *ResetMissionControlResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResetMissionControlResponse.Unmarshal(m, b)
}
func (m *ResetMissionControlResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ResetMissionControlResponse.Marshal(b, m, deterministic)
}
func (m *ResetMissionControlResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ResetMissionControlResponse.Merge(m, src)
}
func (m *ResetMissionControlResponse) XXX_Size() int {
return xxx_messageInfo_ResetMissionControlResponse.Size(m)
}
func (m *ResetMissionControlResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ResetMissionControlResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ResetMissionControlResponse proto.InternalMessageInfo
func init() { func init() {
proto.RegisterEnum("routerrpc.Failure_FailureCode", Failure_FailureCode_name, Failure_FailureCode_value) proto.RegisterEnum("routerrpc.Failure_FailureCode", Failure_FailureCode_name, Failure_FailureCode_value)
proto.RegisterType((*PaymentRequest)(nil), "routerrpc.PaymentRequest") proto.RegisterType((*PaymentRequest)(nil), "routerrpc.PaymentRequest")
@ -747,89 +809,94 @@ func init() {
proto.RegisterType((*SendToRouteResponse)(nil), "routerrpc.SendToRouteResponse") proto.RegisterType((*SendToRouteResponse)(nil), "routerrpc.SendToRouteResponse")
proto.RegisterType((*Failure)(nil), "routerrpc.Failure") proto.RegisterType((*Failure)(nil), "routerrpc.Failure")
proto.RegisterType((*ChannelUpdate)(nil), "routerrpc.ChannelUpdate") proto.RegisterType((*ChannelUpdate)(nil), "routerrpc.ChannelUpdate")
proto.RegisterType((*ResetMissionControlRequest)(nil), "routerrpc.ResetMissionControlRequest")
proto.RegisterType((*ResetMissionControlResponse)(nil), "routerrpc.ResetMissionControlResponse")
} }
func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) } func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) }
var fileDescriptor_7a0613f69d37b0a5 = []byte{ var fileDescriptor_7a0613f69d37b0a5 = []byte{
// 1224 bytes of a gzipped FileDescriptorProto // 1271 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x56, 0xef, 0x72, 0x1a, 0x37, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x56, 0xdd, 0x72, 0x1a, 0x37,
0x10, 0x2f, 0xb1, 0xcd, 0x9f, 0x05, 0xcc, 0x59, 0xb6, 0x13, 0x4c, 0xe2, 0xc4, 0xa1, 0x9d, 0xd6, 0x14, 0x2e, 0xf1, 0x0f, 0x70, 0x00, 0xb3, 0x96, 0xed, 0x04, 0xe3, 0x38, 0x71, 0xb6, 0x6d, 0xea,
0x93, 0xe9, 0xd8, 0x53, 0x3a, 0xc9, 0xc7, 0x76, 0x08, 0x88, 0xfa, 0x26, 0x70, 0x47, 0x75, 0xe0, 0xc9, 0x74, 0xec, 0x29, 0x9d, 0xe4, 0xb2, 0x1d, 0x02, 0xa2, 0xde, 0x09, 0xec, 0x52, 0x01, 0x4e,
0xc4, 0xed, 0x07, 0x8d, 0xcc, 0xc9, 0x70, 0x35, 0xf7, 0xc7, 0x77, 0xa2, 0xb5, 0x5f, 0xa0, 0xaf, 0xdc, 0x5e, 0x68, 0x64, 0x56, 0x86, 0xad, 0xd9, 0x1f, 0xef, 0x8a, 0x36, 0x7e, 0x81, 0xbe, 0x4e,
0xd3, 0xa7, 0xe8, 0x43, 0xf4, 0x11, 0xfa, 0x16, 0x1d, 0x49, 0x77, 0x80, 0x1d, 0xf7, 0x13, 0xa7, 0x9f, 0xa2, 0xd7, 0xbd, 0xee, 0xdb, 0x74, 0x24, 0xed, 0x02, 0x76, 0x9c, 0xe9, 0x15, 0xe8, 0xfb,
0xdf, 0xef, 0xa7, 0x5d, 0xed, 0x6a, 0x77, 0x05, 0x3c, 0x8d, 0xc3, 0x85, 0xe0, 0x71, 0x1c, 0x4d, 0x3e, 0x9d, 0xa3, 0x73, 0x74, 0xce, 0xd1, 0xc2, 0xe3, 0x38, 0x9c, 0x0b, 0x1e, 0xc7, 0xd1, 0xf8,
0x4e, 0xf5, 0xd7, 0x49, 0x14, 0x87, 0x22, 0x44, 0xa5, 0x25, 0xde, 0x28, 0xc5, 0xd1, 0x44, 0xa3, 0x54, 0xff, 0x3b, 0x89, 0xe2, 0x50, 0x84, 0xa8, 0xb8, 0xc0, 0xeb, 0xc5, 0x38, 0x1a, 0x6b, 0xd4,
0xcd, 0xbf, 0x73, 0xb0, 0x3d, 0x64, 0x77, 0x3e, 0x0f, 0x04, 0xe1, 0x37, 0x0b, 0x9e, 0x08, 0xf4, 0xfc, 0x3b, 0x07, 0x5b, 0x7d, 0x76, 0xeb, 0xf3, 0x40, 0x10, 0x7e, 0x33, 0xe7, 0x89, 0x40, 0x4f,
0x0c, 0x0a, 0x11, 0xbb, 0xa3, 0x31, 0xbf, 0xa9, 0xe7, 0x8e, 0x72, 0xc7, 0x25, 0x92, 0x8f, 0xd8, 0x20, 0x1f, 0xb1, 0x5b, 0x1a, 0xf3, 0x9b, 0x5a, 0xee, 0x28, 0x77, 0x5c, 0x24, 0x9b, 0x11, 0xbb,
0x1d, 0xe1, 0x37, 0xa8, 0x09, 0xd5, 0x2b, 0xce, 0xe9, 0xdc, 0xf3, 0x3d, 0x41, 0x13, 0x26, 0xea, 0x25, 0xfc, 0x06, 0x99, 0x50, 0xb9, 0xe2, 0x9c, 0xce, 0x3c, 0xdf, 0x13, 0x34, 0x61, 0xa2, 0xf6,
0x4f, 0x8e, 0x72, 0xc7, 0x1b, 0xa4, 0x7c, 0xc5, 0x79, 0x5f, 0x62, 0x0e, 0x13, 0xe8, 0x10, 0x60, 0xe8, 0x28, 0x77, 0xbc, 0x46, 0x4a, 0x57, 0x9c, 0x77, 0x25, 0x36, 0x60, 0x02, 0x1d, 0x02, 0x8c,
0x32, 0x17, 0xbf, 0x6b, 0x51, 0x7d, 0xe3, 0x28, 0x77, 0xbc, 0x45, 0x4a, 0x12, 0x51, 0x0a, 0xf4, 0x67, 0xe2, 0x77, 0x2d, 0xaa, 0xad, 0x1d, 0xe5, 0x8e, 0x37, 0x48, 0x51, 0x22, 0x4a, 0x81, 0xbe,
0x0d, 0xd4, 0x84, 0xe7, 0xf3, 0x70, 0x21, 0x68, 0xc2, 0x27, 0x61, 0xe0, 0x26, 0xf5, 0x4d, 0xa5, 0x81, 0xaa, 0xf0, 0x7c, 0x1e, 0xce, 0x05, 0x4d, 0xf8, 0x38, 0x0c, 0xdc, 0xa4, 0xb6, 0xae, 0x34,
0xd9, 0x4e, 0x61, 0x47, 0xa3, 0xe8, 0x04, 0x76, 0xc3, 0x85, 0x98, 0x86, 0x5e, 0x30, 0xa5, 0x93, 0x5b, 0x29, 0x3c, 0xd0, 0x28, 0x3a, 0x81, 0x9d, 0x70, 0x2e, 0x26, 0xa1, 0x17, 0x4c, 0xe8, 0x78,
0x19, 0x0b, 0x02, 0x3e, 0xa7, 0x9e, 0x5b, 0xdf, 0x52, 0x1e, 0x77, 0x32, 0xaa, 0xa3, 0x19, 0xd3, 0xca, 0x82, 0x80, 0xcf, 0xa8, 0xe7, 0xd6, 0x36, 0x94, 0xc7, 0xed, 0x8c, 0x6a, 0x69, 0xc6, 0x72,
0x6d, 0xfe, 0x06, 0xb5, 0x65, 0x18, 0x49, 0x14, 0x06, 0x09, 0x47, 0x07, 0x50, 0x94, 0x71, 0xcc, 0xcd, 0xdf, 0xa0, 0xba, 0x08, 0x23, 0x89, 0xc2, 0x20, 0xe1, 0x68, 0x1f, 0x0a, 0x32, 0x8e, 0x29,
0x58, 0x32, 0x53, 0x81, 0x54, 0x88, 0x8c, 0xeb, 0x8c, 0x25, 0x33, 0xf4, 0x1c, 0x4a, 0x51, 0xcc, 0x4b, 0xa6, 0x2a, 0x90, 0x32, 0x91, 0x71, 0x9d, 0xb1, 0x64, 0x8a, 0x0e, 0xa0, 0x18, 0xc5, 0x9c,
0xa9, 0xe7, 0xb3, 0x29, 0x57, 0x51, 0x54, 0x48, 0x31, 0x8a, 0xb9, 0x29, 0xd7, 0xe8, 0x15, 0x94, 0x7a, 0x3e, 0x9b, 0x70, 0x15, 0x45, 0x99, 0x14, 0xa2, 0x98, 0x5b, 0x72, 0x8d, 0x9e, 0x43, 0x29,
0x23, 0x6d, 0x8a, 0xf2, 0x38, 0x56, 0x31, 0x94, 0x08, 0xa4, 0x10, 0x8e, 0xe3, 0xe6, 0x0f, 0x50, 0xd2, 0xa6, 0x28, 0x8f, 0x63, 0x15, 0x43, 0x91, 0x40, 0x0a, 0xe1, 0x38, 0x36, 0x7f, 0x80, 0x2a,
0x23, 0x32, 0x97, 0x3d, 0xce, 0xb3, 0x9c, 0x21, 0xd8, 0x74, 0x79, 0x22, 0x52, 0x3f, 0xea, 0x5b, 0x91, 0xb9, 0xec, 0x70, 0x9e, 0xe5, 0x0c, 0xc1, 0xba, 0xcb, 0x13, 0x91, 0xfa, 0x51, 0xff, 0x65,
0xe6, 0x91, 0xf9, 0xeb, 0x89, 0xca, 0x33, 0x5f, 0xe6, 0xa8, 0xe9, 0x82, 0xb1, 0xda, 0x9f, 0x1e, 0x1e, 0x99, 0xbf, 0x9a, 0xa8, 0x4d, 0xe6, 0xcb, 0x1c, 0x99, 0x2e, 0x18, 0xcb, 0xfd, 0xe9, 0x61,
0xf6, 0x18, 0x0c, 0x79, 0x3f, 0x32, 0x5c, 0x99, 0x63, 0x5f, 0xee, 0xca, 0xa9, 0x5d, 0xdb, 0x29, 0x8f, 0xc1, 0x90, 0xf7, 0x23, 0xc3, 0x95, 0x39, 0xf6, 0xe5, 0xae, 0x9c, 0xda, 0xb5, 0x95, 0xe2,
0xde, 0xe3, 0x7c, 0x90, 0x30, 0x81, 0xbe, 0xd6, 0x29, 0xa4, 0xf3, 0x70, 0x72, 0x4d, 0x5d, 0x3e, 0x1d, 0xce, 0x7b, 0x09, 0x13, 0xe8, 0xa5, 0x4e, 0x21, 0x9d, 0x85, 0xe3, 0x6b, 0xea, 0xf2, 0x19,
0x67, 0x77, 0xa9, 0xf9, 0xaa, 0x84, 0xfb, 0xe1, 0xe4, 0xba, 0x2b, 0xc1, 0xe6, 0xaf, 0x80, 0x1c, 0xbb, 0x4d, 0xcd, 0x57, 0x24, 0xdc, 0x0d, 0xc7, 0xd7, 0x6d, 0x09, 0x9a, 0xbf, 0x02, 0x1a, 0xf0,
0x1e, 0xb8, 0xa3, 0x50, 0xf9, 0xca, 0x0e, 0xfa, 0x1a, 0x2a, 0x59, 0x70, 0x6b, 0x89, 0xc9, 0x02, 0xc0, 0x1d, 0x86, 0xca, 0x57, 0x76, 0xd0, 0x17, 0x50, 0xce, 0x82, 0x5b, 0x49, 0x4c, 0x16, 0xb0,
0x56, 0xc9, 0x69, 0xc2, 0x96, 0x2a, 0x15, 0x65, 0xb6, 0xdc, 0xaa, 0x9c, 0xcc, 0x03, 0x59, 0x2f, 0x4a, 0x8e, 0x09, 0x1b, 0xaa, 0x54, 0x94, 0xd9, 0x52, 0xa3, 0x7c, 0x32, 0x0b, 0x64, 0xbd, 0x68,
0xda, 0x8c, 0xa6, 0x9a, 0x14, 0x76, 0xef, 0x19, 0x4f, 0xa3, 0x68, 0x80, 0x4c, 0xa3, 0x4e, 0x6b, 0x33, 0x9a, 0x32, 0x29, 0xec, 0xdc, 0x31, 0x9e, 0x46, 0x51, 0x07, 0x99, 0x46, 0x9d, 0xd6, 0xdc,
0x6e, 0x99, 0x56, 0xb5, 0x46, 0xdf, 0x42, 0xe1, 0x8a, 0x79, 0xf3, 0x45, 0x9c, 0x19, 0x46, 0x27, 0x22, 0xad, 0x6a, 0x8d, 0xbe, 0x85, 0xfc, 0x15, 0xf3, 0x66, 0xf3, 0x38, 0x33, 0x8c, 0x4e, 0x16,
0xcb, 0x8a, 0x3c, 0xe9, 0x69, 0x86, 0x64, 0x92, 0xe6, 0x9f, 0x05, 0x28, 0xa4, 0x20, 0x6a, 0xc1, 0x15, 0x79, 0xd2, 0xd1, 0x0c, 0xc9, 0x24, 0xe6, 0x9f, 0x79, 0xc8, 0xa7, 0x20, 0x6a, 0xc0, 0xfa,
0xe6, 0x24, 0x74, 0xb5, 0xc5, 0xed, 0xd6, 0xcb, 0xcf, 0xb7, 0x65, 0xbf, 0x9d, 0xd0, 0xe5, 0x44, 0x38, 0x74, 0xb5, 0xc5, 0xad, 0xc6, 0xb3, 0x4f, 0xb7, 0x65, 0xbf, 0xad, 0xd0, 0xe5, 0x44, 0x69,
0x69, 0x51, 0x0b, 0xf6, 0x53, 0x53, 0x34, 0x09, 0x17, 0xf1, 0x84, 0xd3, 0x68, 0x71, 0x79, 0xcd, 0x51, 0x03, 0xf6, 0x52, 0x53, 0x34, 0x09, 0xe7, 0xf1, 0x98, 0xd3, 0x68, 0x7e, 0x79, 0xcd, 0x6f,
0xef, 0xd2, 0xdb, 0xde, 0x4d, 0x49, 0x47, 0x71, 0x43, 0x45, 0xa1, 0x1f, 0x61, 0x3b, 0x2b, 0xb5, 0xd3, 0xdb, 0xde, 0x49, 0xc9, 0x81, 0xe2, 0xfa, 0x8a, 0x42, 0x3f, 0xc2, 0x56, 0x56, 0x6a, 0xf3,
0x45, 0xe4, 0x32, 0xc1, 0xd5, 0xdd, 0x97, 0x5b, 0xf5, 0x35, 0x8f, 0x69, 0xc5, 0x8d, 0x15, 0x4f, 0xc8, 0x65, 0x82, 0xab, 0xbb, 0x2f, 0x35, 0x6a, 0x2b, 0x1e, 0xd3, 0x8a, 0x1b, 0x29, 0x9e, 0x54,
0xaa, 0x93, 0xf5, 0xa5, 0x2c, 0xab, 0x99, 0x98, 0x4f, 0xf4, 0xed, 0xc9, 0xba, 0xde, 0x24, 0x45, 0xc6, 0xab, 0x4b, 0x59, 0x56, 0x53, 0x31, 0x1b, 0xeb, 0xdb, 0x93, 0x75, 0xbd, 0x4e, 0x0a, 0x12,
0x09, 0xa8, 0x7b, 0x6b, 0x42, 0x35, 0x0c, 0xbc, 0x30, 0xa0, 0xc9, 0x8c, 0xd1, 0xd6, 0xdb, 0x77, 0x50, 0xf7, 0x66, 0x42, 0x25, 0x0c, 0xbc, 0x30, 0xa0, 0xc9, 0x94, 0xd1, 0xc6, 0xeb, 0x37, 0xaa,
0xaa, 0x96, 0x2b, 0xa4, 0xac, 0x40, 0x67, 0xc6, 0x5a, 0x6f, 0xdf, 0xc9, 0xd2, 0x53, 0xdd, 0xc3, 0x96, 0xcb, 0xa4, 0xa4, 0xc0, 0xc1, 0x94, 0x35, 0x5e, 0xbf, 0x91, 0xa5, 0xa7, 0xba, 0x87, 0x7f,
0x6f, 0x23, 0x2f, 0xbe, 0xab, 0xe7, 0x8f, 0x72, 0xc7, 0x55, 0xa2, 0x1a, 0x0a, 0x2b, 0x04, 0xed, 0x8c, 0xbc, 0xf8, 0xb6, 0xb6, 0x79, 0x94, 0x3b, 0xae, 0x10, 0xd5, 0x50, 0x58, 0x21, 0x68, 0x17,
0xc1, 0xd6, 0xd5, 0x9c, 0x4d, 0x93, 0x7a, 0x41, 0x51, 0x7a, 0xd1, 0xfc, 0x67, 0x13, 0xca, 0x6b, 0x36, 0xae, 0x66, 0x6c, 0x92, 0xd4, 0xf2, 0x8a, 0xd2, 0x0b, 0xf3, 0xdf, 0x75, 0x28, 0xad, 0xa4,
0x29, 0x40, 0x15, 0x28, 0x12, 0xec, 0x60, 0x72, 0x8e, 0xbb, 0xc6, 0x17, 0xa8, 0x0e, 0x7b, 0x63, 0x00, 0x95, 0xa1, 0x40, 0xf0, 0x00, 0x93, 0x73, 0xdc, 0x36, 0xbe, 0x40, 0x35, 0xd8, 0x1d, 0xd9,
0xeb, 0x83, 0x65, 0x7f, 0xb4, 0xe8, 0xb0, 0x7d, 0x31, 0xc0, 0xd6, 0x88, 0x9e, 0xb5, 0x9d, 0x33, 0xef, 0x6c, 0xe7, 0xbd, 0x4d, 0xfb, 0xcd, 0x8b, 0x1e, 0xb6, 0x87, 0xf4, 0xac, 0x39, 0x38, 0x33,
0x23, 0x87, 0x5e, 0x40, 0xdd, 0xb4, 0x3a, 0x36, 0x21, 0xb8, 0x33, 0x5a, 0x72, 0xed, 0x81, 0x3d, 0x72, 0xe8, 0x29, 0xd4, 0x2c, 0xbb, 0xe5, 0x10, 0x82, 0x5b, 0xc3, 0x05, 0xd7, 0xec, 0x39, 0x23,
0xb6, 0x46, 0xc6, 0x13, 0xf4, 0x0a, 0x9e, 0xf7, 0x4c, 0xab, 0xdd, 0xa7, 0x2b, 0x4d, 0xa7, 0x3f, 0x7b, 0x68, 0x3c, 0x42, 0xcf, 0xe1, 0xa0, 0x63, 0xd9, 0xcd, 0x2e, 0x5d, 0x6a, 0x5a, 0xdd, 0xe1,
0x3a, 0xa7, 0xf8, 0xd3, 0xd0, 0x24, 0x17, 0xc6, 0xc6, 0x63, 0x82, 0xb3, 0x51, 0xbf, 0x93, 0x59, 0x39, 0xc5, 0x1f, 0xfa, 0x16, 0xb9, 0x30, 0xd6, 0x1e, 0x12, 0x9c, 0x0d, 0xbb, 0xad, 0xcc, 0xc2,
0xd8, 0x44, 0x07, 0xb0, 0xaf, 0x05, 0x7a, 0x0b, 0x1d, 0xd9, 0x36, 0x75, 0x6c, 0xdb, 0x32, 0xb6, 0x3a, 0xda, 0x87, 0x3d, 0x2d, 0xd0, 0x5b, 0xe8, 0xd0, 0x71, 0xe8, 0xc0, 0x71, 0x6c, 0x63, 0x03,
0xd0, 0x0e, 0x54, 0x4d, 0xeb, 0xbc, 0xdd, 0x37, 0xbb, 0x94, 0xe0, 0x76, 0x7f, 0x60, 0xe4, 0xd1, 0x6d, 0x43, 0xc5, 0xb2, 0xcf, 0x9b, 0x5d, 0xab, 0x4d, 0x09, 0x6e, 0x76, 0x7b, 0xc6, 0x26, 0xda,
0x2e, 0xd4, 0x1e, 0xea, 0x0a, 0xd2, 0x44, 0xa6, 0xb3, 0x2d, 0xd3, 0xb6, 0xe8, 0x39, 0x26, 0x8e, 0x81, 0xea, 0x7d, 0x5d, 0x5e, 0x9a, 0xc8, 0x74, 0x8e, 0x6d, 0x39, 0x36, 0x3d, 0xc7, 0x64, 0x60,
0x69, 0x5b, 0x46, 0x11, 0x3d, 0x05, 0x74, 0x9f, 0x3a, 0x1b, 0xb4, 0x3b, 0x46, 0x09, 0xed, 0xc3, 0x39, 0xb6, 0x51, 0x40, 0x8f, 0x01, 0xdd, 0xa5, 0xce, 0x7a, 0xcd, 0x96, 0x51, 0x44, 0x7b, 0xb0,
0xce, 0x7d, 0xfc, 0x03, 0xbe, 0x30, 0x40, 0xa6, 0x41, 0x1f, 0x8c, 0xbe, 0xc7, 0x7d, 0xfb, 0x23, 0x7d, 0x17, 0x7f, 0x87, 0x2f, 0x0c, 0x90, 0x69, 0xd0, 0x07, 0xa3, 0x6f, 0x71, 0xd7, 0x79, 0x4f,
0x1d, 0x98, 0x96, 0x39, 0x18, 0x0f, 0x8c, 0x32, 0xda, 0x03, 0xa3, 0x87, 0x31, 0x35, 0x2d, 0x67, 0x7b, 0x96, 0x6d, 0xf5, 0x46, 0x3d, 0xa3, 0x84, 0x76, 0xc1, 0xe8, 0x60, 0x4c, 0x2d, 0x7b, 0x30,
0xdc, 0xeb, 0x99, 0x1d, 0x13, 0x5b, 0x23, 0xa3, 0xa2, 0x3d, 0x3f, 0x16, 0x78, 0x55, 0x6e, 0xe8, 0xea, 0x74, 0xac, 0x96, 0x85, 0xed, 0xa1, 0x51, 0xd6, 0x9e, 0x1f, 0x0a, 0xbc, 0x22, 0x37, 0xb4,
0x9c, 0xb5, 0x2d, 0x0b, 0xf7, 0x69, 0xd7, 0x74, 0xda, 0xef, 0xfb, 0xb8, 0x6b, 0x6c, 0xa3, 0x43, 0xce, 0x9a, 0xb6, 0x8d, 0xbb, 0xb4, 0x6d, 0x0d, 0x9a, 0x6f, 0xbb, 0xb8, 0x6d, 0x6c, 0xa1, 0x43,
0x38, 0x18, 0xe1, 0xc1, 0xd0, 0x26, 0x6d, 0x72, 0x41, 0x33, 0xbe, 0xd7, 0x36, 0xfb, 0x63, 0x82, 0xd8, 0x1f, 0xe2, 0x5e, 0xdf, 0x21, 0x4d, 0x72, 0x41, 0x33, 0xbe, 0xd3, 0xb4, 0xba, 0x23, 0x82,
0x8d, 0x1a, 0x7a, 0x0d, 0x87, 0x04, 0xff, 0x3c, 0x36, 0x09, 0xee, 0x52, 0xcb, 0xee, 0x62, 0xda, 0x8d, 0x2a, 0x7a, 0x01, 0x87, 0x04, 0xff, 0x3c, 0xb2, 0x08, 0x6e, 0x53, 0xdb, 0x69, 0x63, 0xda,
0xc3, 0xed, 0xd1, 0x98, 0x60, 0x3a, 0x30, 0x1d, 0xc7, 0xb4, 0x7e, 0x32, 0x0c, 0xf4, 0x15, 0x1c, 0xc1, 0xcd, 0xe1, 0x88, 0x60, 0xda, 0xb3, 0x06, 0x03, 0xcb, 0xfe, 0xc9, 0x30, 0xd0, 0x57, 0x70,
0x2d, 0x25, 0x4b, 0x03, 0x0f, 0x54, 0x3b, 0x32, 0xbe, 0xec, 0x3e, 0x2d, 0xfc, 0x69, 0x44, 0x87, 0xb4, 0x90, 0x2c, 0x0c, 0xdc, 0x53, 0x6d, 0xcb, 0xf8, 0xb2, 0xfb, 0xb4, 0xf1, 0x87, 0x21, 0xed,
0x18, 0x13, 0x03, 0xa1, 0x06, 0x3c, 0x5d, 0xb9, 0xd7, 0x0e, 0x52, 0xdf, 0xbb, 0x92, 0x1b, 0x62, 0x63, 0x4c, 0x0c, 0x84, 0xea, 0xf0, 0x78, 0xe9, 0x5e, 0x3b, 0x48, 0x7d, 0xef, 0x48, 0xae, 0x8f,
0x32, 0x68, 0x5b, 0xf2, 0x82, 0xef, 0x71, 0x7b, 0xf2, 0xd8, 0x2b, 0xee, 0xe1, 0xb1, 0xf7, 0x9b, 0x49, 0xaf, 0x69, 0xcb, 0x0b, 0xbe, 0xc3, 0xed, 0xca, 0x63, 0x2f, 0xb9, 0xfb, 0xc7, 0xde, 0x33,
0x7f, 0x6d, 0x40, 0xf5, 0x5e, 0xd1, 0xa3, 0x17, 0x50, 0x4a, 0xbc, 0x69, 0xc0, 0x84, 0x6c, 0x65, 0xff, 0x5a, 0x83, 0xca, 0x9d, 0xa2, 0x47, 0x4f, 0xa1, 0x98, 0x78, 0x93, 0x80, 0x09, 0xd9, 0xca,
0xdd, 0xe5, 0x2b, 0x40, 0x3d, 0x00, 0x33, 0xe6, 0x05, 0x7a, 0xbc, 0xe8, 0x6e, 0x2b, 0x29, 0x44, 0xba, 0xcb, 0x97, 0x80, 0x7a, 0x00, 0xa6, 0xcc, 0x0b, 0xf4, 0x78, 0xd1, 0xdd, 0x56, 0x54, 0x88,
0x0d, 0x97, 0x67, 0x50, 0x90, 0x3d, 0x23, 0x67, 0xf9, 0x86, 0x6a, 0x90, 0xbc, 0x5c, 0x9a, 0xae, 0x1a, 0x2e, 0x4f, 0x20, 0x2f, 0x7b, 0x46, 0xce, 0xf2, 0x35, 0xd5, 0x20, 0x9b, 0x72, 0x69, 0xb9,
0xb4, 0x2a, 0xe7, 0x57, 0x22, 0x98, 0x1f, 0xa9, 0xde, 0xa9, 0x92, 0x15, 0x80, 0xbe, 0x84, 0xaa, 0xd2, 0xaa, 0x9c, 0x5f, 0x89, 0x60, 0x7e, 0xa4, 0x7a, 0xa7, 0x42, 0x96, 0x00, 0xfa, 0x12, 0x2a,
0xcf, 0x93, 0x84, 0x4d, 0x39, 0xd5, 0xf5, 0x0f, 0x4a, 0x51, 0x49, 0xc1, 0x9e, 0xc4, 0xa4, 0x28, 0x3e, 0x4f, 0x12, 0x36, 0xe1, 0x54, 0xd7, 0x3f, 0x28, 0x45, 0x39, 0x05, 0x3b, 0x12, 0x93, 0xa2,
0xeb, 0x5f, 0x2d, 0xda, 0xd2, 0xa2, 0x14, 0xd4, 0xa2, 0x87, 0xe3, 0x53, 0xb0, 0xb4, 0xcd, 0xd6, 0xac, 0x7f, 0xb5, 0x68, 0x43, 0x8b, 0x52, 0x50, 0x8b, 0xee, 0x8f, 0x4f, 0xc1, 0xd2, 0x36, 0x5b,
0xc7, 0xa7, 0x60, 0xe8, 0x0d, 0xec, 0xe8, 0x5e, 0xf6, 0x02, 0xcf, 0x5f, 0xf8, 0xba, 0xa7, 0x0b, 0x1d, 0x9f, 0x82, 0xa1, 0x57, 0xb0, 0xad, 0x7b, 0xd9, 0x0b, 0x3c, 0x7f, 0xee, 0xeb, 0x9e, 0xce,
0xea, 0xc8, 0x35, 0xd5, 0xd3, 0x1a, 0x57, 0xad, 0x7d, 0x00, 0xc5, 0x4b, 0x96, 0x70, 0x39, 0xb9, 0xab, 0x23, 0x57, 0x55, 0x4f, 0x6b, 0x5c, 0xb5, 0xf6, 0x3e, 0x14, 0x2e, 0x59, 0xc2, 0xe5, 0xe4,
0xeb, 0x45, 0x65, 0xac, 0x20, 0xd7, 0x3d, 0xae, 0x1e, 0x21, 0x39, 0xcf, 0x63, 0x39, 0x4d, 0x4a, 0xae, 0x15, 0x94, 0xb1, 0xbc, 0x5c, 0x77, 0xb8, 0x7a, 0x84, 0xe4, 0x3c, 0x8f, 0xe5, 0x34, 0x29,
0x9a, 0xba, 0xe2, 0x9c, 0xc8, 0x3c, 0x2e, 0x3d, 0xb0, 0xdb, 0x95, 0x87, 0xf2, 0x9a, 0x07, 0x8d, 0x6a, 0xea, 0x8a, 0x73, 0x22, 0xf3, 0xb8, 0xf0, 0xc0, 0x3e, 0x2e, 0x3d, 0x94, 0x56, 0x3c, 0x68,
0x2b, 0x0f, 0x6f, 0x60, 0x87, 0xdf, 0x8a, 0x98, 0xd1, 0x30, 0x62, 0x37, 0x0b, 0x4e, 0x5d, 0x26, 0x5c, 0x79, 0x78, 0x05, 0xdb, 0xfc, 0xa3, 0x88, 0x19, 0x0d, 0x23, 0x76, 0x33, 0xe7, 0xd4, 0x65,
0x58, 0xbd, 0xa2, 0x92, 0x5b, 0x53, 0x84, 0xad, 0xf0, 0x2e, 0x13, 0xac, 0xf5, 0x6f, 0x0e, 0xf2, 0x82, 0xd5, 0xca, 0x2a, 0xb9, 0x55, 0x45, 0x38, 0x0a, 0x6f, 0x33, 0xc1, 0xcc, 0xa7, 0x50, 0x27,
0x6a, 0x2c, 0xc7, 0xa8, 0x0b, 0x65, 0x39, 0xa6, 0xd3, 0x97, 0x11, 0x1d, 0xac, 0x0d, 0xb2, 0xfb, 0x3c, 0xe1, 0xa2, 0xe7, 0x25, 0x89, 0x17, 0x06, 0xad, 0x30, 0x10, 0x71, 0x38, 0x4b, 0x1f, 0x00,
0x8f, 0x7e, 0xa3, 0xf1, 0x18, 0x95, 0x4e, 0xf5, 0x0f, 0x60, 0xe0, 0x44, 0x78, 0xbe, 0x9c, 0x78, 0xf3, 0x10, 0x0e, 0x1e, 0x64, 0xf5, 0x04, 0x6f, 0xfc, 0xf3, 0x08, 0x36, 0xd5, 0x4c, 0x8f, 0x51,
0xe9, 0xbb, 0x85, 0xd6, 0xf5, 0x0f, 0x1e, 0xc3, 0xc6, 0xf3, 0x47, 0xb9, 0xd4, 0x58, 0x5f, 0x1f, 0x1b, 0x4a, 0x72, 0xc6, 0xa7, 0xcf, 0x2a, 0xda, 0x5f, 0x99, 0x82, 0x77, 0xbf, 0x18, 0xea, 0xf5,
0x29, 0x7d, 0x39, 0xd0, 0xe1, 0x9a, 0xf6, 0xf3, 0xe7, 0xaa, 0xf1, 0xf2, 0xff, 0x68, 0x6d, 0xed, 0x87, 0xa8, 0xf4, 0x49, 0x78, 0x07, 0x06, 0x4e, 0x84, 0xe7, 0xcb, 0x71, 0x99, 0x3e, 0x7a, 0x68,
0xfd, 0x77, 0xbf, 0x9c, 0x4e, 0x3d, 0x31, 0x5b, 0x5c, 0x9e, 0x4c, 0x42, 0xff, 0x74, 0xee, 0x4d, 0x55, 0x7f, 0xef, 0x25, 0xad, 0x1f, 0x3c, 0xc8, 0xa5, 0xc6, 0xba, 0xfa, 0x48, 0xe9, 0xb3, 0x83,
0x67, 0x22, 0xf0, 0x82, 0x69, 0xc0, 0xc5, 0x1f, 0x61, 0x7c, 0x7d, 0x3a, 0x0f, 0xdc, 0x53, 0xf5, 0x0e, 0x57, 0xb4, 0x9f, 0xbe, 0x75, 0xf5, 0x67, 0x9f, 0xa3, 0x53, 0x6b, 0x2e, 0xec, 0x3c, 0x90,
0x7a, 0x9d, 0x2e, 0xcd, 0x5c, 0xe6, 0xd5, 0x1f, 0x9f, 0xef, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x0a, 0xf4, 0xf5, 0xea, 0x09, 0x3e, 0x9b, 0xc8, 0xfa, 0xcb, 0xff, 0x93, 0x69, 0x2f, 0x6f, 0xbf,
0x89, 0x21, 0x7b, 0xbd, 0x28, 0x09, 0x00, 0x00, 0xfb, 0xe5, 0x74, 0xe2, 0x89, 0xe9, 0xfc, 0xf2, 0x64, 0x1c, 0xfa, 0xa7, 0x33, 0x6f, 0x32, 0x15,
0x81, 0x17, 0x4c, 0x02, 0x2e, 0xfe, 0x08, 0xe3, 0xeb, 0xd3, 0x59, 0xe0, 0x9e, 0xaa, 0x07, 0xf6,
0x74, 0x61, 0xee, 0x72, 0x53, 0x7d, 0x9b, 0x7d, 0xff, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01,
0xde, 0xa4, 0x83, 0xcb, 0x09, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -860,6 +927,10 @@ type RouterClient interface {
//differs from SendPayment in that it allows users to specify a full route //differs from SendPayment in that it allows users to specify a full route
//manually. This can be used for things like rebalancing, and atomic swaps. //manually. This can be used for things like rebalancing, and atomic swaps.
SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error) SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error)
//*
//ResetMissionControl clears all mission control state and starts with a clean
//slate.
ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error)
} }
type routerClient struct { type routerClient struct {
@ -897,6 +968,15 @@ func (c *routerClient) SendToRoute(ctx context.Context, in *SendToRouteRequest,
return out, nil return out, nil
} }
func (c *routerClient) ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error) {
out := new(ResetMissionControlResponse)
err := c.cc.Invoke(ctx, "/routerrpc.Router/ResetMissionControl", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// RouterServer is the server API for Router service. // RouterServer is the server API for Router service.
type RouterServer interface { type RouterServer interface {
//* //*
@ -915,6 +995,10 @@ type RouterServer interface {
//differs from SendPayment in that it allows users to specify a full route //differs from SendPayment in that it allows users to specify a full route
//manually. This can be used for things like rebalancing, and atomic swaps. //manually. This can be used for things like rebalancing, and atomic swaps.
SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error) SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error)
//*
//ResetMissionControl clears all mission control state and starts with a clean
//slate.
ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error)
} }
func RegisterRouterServer(s *grpc.Server, srv RouterServer) { func RegisterRouterServer(s *grpc.Server, srv RouterServer) {
@ -975,6 +1059,24 @@ func _Router_SendToRoute_Handler(srv interface{}, ctx context.Context, dec func(
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _Router_ResetMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ResetMissionControlRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RouterServer).ResetMissionControl(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/routerrpc.Router/ResetMissionControl",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RouterServer).ResetMissionControl(ctx, req.(*ResetMissionControlRequest))
}
return interceptor(ctx, in, info, handler)
}
var _Router_serviceDesc = grpc.ServiceDesc{ var _Router_serviceDesc = grpc.ServiceDesc{
ServiceName: "routerrpc.Router", ServiceName: "routerrpc.Router",
HandlerType: (*RouterServer)(nil), HandlerType: (*RouterServer)(nil),
@ -991,6 +1093,10 @@ var _Router_serviceDesc = grpc.ServiceDesc{
MethodName: "SendToRoute", MethodName: "SendToRoute",
Handler: _Router_SendToRoute_Handler, Handler: _Router_SendToRoute_Handler,
}, },
{
MethodName: "ResetMissionControl",
Handler: _Router_ResetMissionControl_Handler,
},
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
Metadata: "routerrpc/router.proto", Metadata: "routerrpc/router.proto",

@ -245,6 +245,9 @@ message ChannelUpdate {
*/ */
bytes extra_opaque_data = 12; bytes extra_opaque_data = 12;
} }
message ResetMissionControlRequest{}
message ResetMissionControlResponse{}
service Router { service Router {
/** /**
@ -268,4 +271,10 @@ service Router {
manually. This can be used for things like rebalancing, and atomic swaps. manually. This can be used for things like rebalancing, and atomic swaps.
*/ */
rpc SendToRoute(SendToRouteRequest) returns (SendToRouteResponse); rpc SendToRoute(SendToRouteRequest) returns (SendToRouteResponse);
/**
ResetMissionControl clears all mission control state and starts with a clean
slate.
*/
rpc ResetMissionControl(ResetMissionControlRequest) returns (ResetMissionControlResponse);
} }

@ -36,6 +36,8 @@ type RouterBackend struct {
FindRoute func(source, target route.Vertex, FindRoute func(source, target route.Vertex,
amt lnwire.MilliSatoshi, restrictions *routing.RestrictParams, amt lnwire.MilliSatoshi, restrictions *routing.RestrictParams,
finalExpiry ...uint16) (*route.Route, error) finalExpiry ...uint16) (*route.Route, error)
MissionControl *routing.MissionControl
} }
// QueryRoutes attempts to query the daemons' Channel Router for a possible // QueryRoutes attempts to query the daemons' Channel Router for a possible

@ -59,6 +59,10 @@ var (
Entity: "offchain", Entity: "offchain",
Action: "read", Action: "read",
}}, }},
"/routerrpc.Router/ResetMissionControl": {{
Entity: "offchain",
Action: "write",
}},
} }
// DefaultRouterMacFilename is the default name of the router macaroon // DefaultRouterMacFilename is the default name of the router macaroon
@ -439,3 +443,13 @@ func marshallChannelUpdate(update *lnwire.ChannelUpdate) *ChannelUpdate {
ExtraOpaqueData: update.ExtraOpaqueData, ExtraOpaqueData: update.ExtraOpaqueData,
} }
} }
// ResetMissionControl clears all mission control state and starts with a clean
// slate.
func (s *Server) ResetMissionControl(ctx context.Context,
req *ResetMissionControlRequest) (*ResetMissionControlResponse, error) {
s.cfg.RouterBackend.MissionControl.ResetHistory()
return &ResetMissionControlResponse{}, nil
}

@ -1598,7 +1598,9 @@ type LightningPayment struct {
// will be returned which describes the path the successful payment traversed // will be returned which describes the path the successful payment traversed
// within the network to reach the destination. Additionally, the payment // within the network to reach the destination. Additionally, the payment
// preimage will also be returned. // preimage will also be returned.
func (r *ChannelRouter) SendPayment(payment *LightningPayment) ([32]byte, *route.Route, error) { func (r *ChannelRouter) SendPayment(payment *LightningPayment) ([32]byte,
*route.Route, error) {
// Before starting the HTLC routing attempt, we'll create a fresh // Before starting the HTLC routing attempt, we'll create a fresh
// payment session which will report our errors back to mission // payment session which will report our errors back to mission
// control. // control.

@ -476,7 +476,8 @@ func newRPCServer(s *server, macService *macaroons.Service,
return info.NodeKey1Bytes, info.NodeKey2Bytes, nil return info.NodeKey1Bytes, info.NodeKey2Bytes, nil
}, },
FindRoute: s.chanRouter.FindRoute, FindRoute: s.chanRouter.FindRoute,
MissionControl: s.missionControl,
} }
var ( var (

@ -187,6 +187,8 @@ type server struct {
breachArbiter *breachArbiter breachArbiter *breachArbiter
missionControl *routing.MissionControl
chanRouter *routing.ChannelRouter chanRouter *routing.ChannelRouter
authGossiper *discovery.AuthenticatedGossiper authGossiper *discovery.AuthenticatedGossiper
@ -646,7 +648,7 @@ func newServer(listenAddrs []net.Addr, chanDB *channeldb.DB, cc *chainControl,
return link.Bandwidth() return link.Bandwidth()
} }
missionControl := routing.NewMissionControl( s.missionControl = routing.NewMissionControl(
chanGraph, selfNode, queryBandwidth, chanGraph, selfNode, queryBandwidth,
) )
@ -656,7 +658,7 @@ func newServer(listenAddrs []net.Addr, chanDB *channeldb.DB, cc *chainControl,
ChainView: cc.chainView, ChainView: cc.chainView,
Payer: s.htlcSwitch, Payer: s.htlcSwitch,
Control: channeldb.NewPaymentControl(chanDB), Control: channeldb.NewPaymentControl(chanDB),
MissionControl: missionControl, MissionControl: s.missionControl,
ChannelPruneExpiry: routing.DefaultChannelPruneExpiry, ChannelPruneExpiry: routing.DefaultChannelPruneExpiry,
GraphPruneInterval: time.Duration(time.Hour), GraphPruneInterval: time.Duration(time.Hour),
QueryBandwidth: queryBandwidth, QueryBandwidth: queryBandwidth,