github.com/google/fleetspeak@v0.1.15-0.20240426164851-4f31f62c1aea/frr_python/frr_client.py (about) 1 """FRR Fleetspeak client 2 3 Receives TrafficRequestData messages from server service and responses with 4 TrafficResponseData 5 """ 6 7 from absl import app 8 from fleetspeak.client_connector.connector import FleetspeakConnection 9 from fleetspeak.src.common.proto.fleetspeak.common_pb2 import Message 10 from fleetspeak.src.inttesting.frr.proto.fleetspeak_frr.frr_pb2 import TrafficRequestData 11 from fleetspeak.src.inttesting.frr.proto.fleetspeak_frr.frr_pb2 import TrafficResponseData 12 13 14 def main(argv): 15 del argv # Unused. 16 17 connection = FleetspeakConnection(version="0.0.1") 18 while True: 19 request, _ = connection.Recv() 20 if request.message_type != "TrafficRequest": 21 continue 22 23 request_data = TrafficRequestData() 24 request.data.Unpack(request_data) 25 26 response_data = TrafficResponseData( 27 master_id=request_data.master_id, 28 request_id=request_data.request_id, 29 response_index=0, 30 data=b"client response", 31 fin=True, 32 ) 33 34 response = Message() 35 response.destination.service_name = request.source.service_name 36 response.data.Pack(response_data) 37 response.message_type = "TrafficResponse" 38 39 connection.Send(response) 40 41 42 if __name__ == "__main__": 43 app.run(main)