fboss/qsfp_service/if/qsfp_service_config.thrift (35 lines of code) (raw):
#
# Copyright 2004-present Facebook. All Rights Reserved.
#
namespace cpp2 facebook.fboss.cfg
namespace go neteng.fboss.qsfp_service_config
namespace py neteng.fboss.qsfp_service_config
namespace py3 neteng.fboss
namespace py.asyncio neteng.fboss.asyncio.qsfp_service_config
namespace rust facebook.fboss
include "fboss/qsfp_service/if/transceiver.thrift"
enum TransceiverPartNumber {
UNKNOWN = 1,
}
// The matching logic will treat the absent of an optional field as match all.
struct TransceiverConfigOverrideFactor {
1: optional TransceiverPartNumber transceiverPartNumber;
2: optional transceiver.SMFMediaInterfaceCode applicationCode;
}
struct Sff8636Overrides {
1: optional i16 rxPreemphasis;
}
struct CmisOverrides {
1: optional transceiver.RxEqualizerSettings rxEqualizerSettings;
}
union TransceiverOverrides {
1: Sff8636Overrides sff;
2: CmisOverrides cmis;
}
struct TransceiverConfigOverride {
1: TransceiverConfigOverrideFactor factor;
2: TransceiverOverrides config;
}
struct QsfpServiceConfig {
// This is used to override the default command line arguments we
// pass to qsfp service.
1: map<string, string> defaultCommandLineArgs = {};
// This has a list of overrides of settings on the optic together with the
// factor that specify the condition to apply.
2: list<TransceiverConfigOverride> transceiverConfigOverrides = [];
}