{"action":"created","issue":{"url":"https://api.github.com/repos/p4lang/p4-spec/issues/614","repository_url":"https://api.github.com/repos/p4lang/p4-spec","labels_url":"https://api.github.com/repos/p4lang/p4-spec/issues/614/labels{/name}","comments_url":"https://api.github.com/repos/p4lang/p4-spec/issues/614/comments","events_url":"https://api.github.com/repos/p4lang/p4-spec/issues/614/events","html_url":"https://github.com/p4lang/p4-spec/issues/614","id":318751825,"number":614,"title":"[PSA] Multiple clones","user":{"login":"samar-abdi","id":24684223,"avatar_url":"https://avatars2.githubusercontent.com/u/24684223?v=4","gravatar_id":"","url":"https://api.github.com/users/samar-abdi","html_url":"https://github.com/samar-abdi","followers_url":"https://api.github.com/users/samar-abdi/followers","following_url":"https://api.github.com/users/samar-abdi/following{/other_user}","gists_url":"https://api.github.com/users/samar-abdi/gists{/gist_id}","starred_url":"https://api.github.com/users/samar-abdi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samar-abdi/subscriptions","organizations_url":"https://api.github.com/users/samar-abdi/orgs","repos_url":"https://api.github.com/users/samar-abdi/repos","events_url":"https://api.github.com/users/samar-abdi/events{/privacy}","received_events_url":"https://api.github.com/users/samar-abdi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-04-29T21:31:26Z","updated_at":"2018-04-30T00:46:58Z","closed_at":null,"author_association":"NONE","body":"The cloning ability in PSA seems to be restricted to only one clone (we have a bool in ingress_output metadata to indicate if packet should be cloned, and a single param for clone session ID).\r\n\r\nWhat if we wanted to create N (>1) clones to different ports, and carrying different metadata?\r\n\r\nRelated, in v1model, does the clone3 extern call create a new clone every time it is called, let's say in multiple table actions? Thanks!"},"comment":{"url":"https://api.github.com/repos/p4lang/p4-spec/issues/comments/385295519","html_url":"https://github.com/p4lang/p4-spec/issues/614#issuecomment-385295519","issue_url":"https://api.github.com/repos/p4lang/p4-spec/issues/614","id":385295519,"user":{"login":"jafingerhut","id":109629,"avatar_url":"https://avatars2.githubusercontent.com/u/109629?v=4","gravatar_id":"","url":"https://api.github.com/users/jafingerhut","html_url":"https://github.com/jafingerhut","followers_url":"https://api.github.com/users/jafingerhut/followers","following_url":"https://api.github.com/users/jafingerhut/following{/other_user}","gists_url":"https://api.github.com/users/jafingerhut/gists{/gist_id}","starred_url":"https://api.github.com/users/jafingerhut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jafingerhut/subscriptions","organizations_url":"https://api.github.com/users/jafingerhut/orgs","repos_url":"https://api.github.com/users/jafingerhut/repos","events_url":"https://api.github.com/users/jafingerhut/events{/privacy}","received_events_url":"https://api.github.com/users/jafingerhut/received_events","type":"User","site_admin":false},"created_at":"2018-04-30T00:46:58Z","updated_at":"2018-04-30T00:46:58Z","author_association":"CONTRIBUTOR","body":"If you want to try to get a solution based on what PSA defines and nothing else, another possibility is to clone 1 packet on ingress the first time the packet is processed, and also resubmit the packet back to ingress, where it is cloned again, with different destination/clone-session and metadata the second time around.  By resubmitting N times, you can get N+1 different clones with their own independent metadata, but all with the original input packet received from the input port.\r\n\r\nIt does use up more ingress processing bandwidth that might otherwise be used for processing new packets by resubmitting so many times, of course."}}
{"actor":{"display_login":"jafingerhut"}}