{"action":"created","issue":{"url":"https://api.github.com/repos/REANNZ/faucet/issues/112","repository_url":"https://api.github.com/repos/REANNZ/faucet","labels_url":"https://api.github.com/repos/REANNZ/faucet/issues/112/labels{/name}","comments_url":"https://api.github.com/repos/REANNZ/faucet/issues/112/comments","events_url":"https://api.github.com/repos/REANNZ/faucet/issues/112/events","html_url":"https://github.com/REANNZ/faucet/issues/112","id":161097598,"number":112,"title":"Implement (proper) support for configuring multi-datapaths","user":{"login":"gizmoguy","id":383287,"avatar_url":"https://avatars.githubusercontent.com/u/383287?v=3","gravatar_id":"","url":"https://api.github.com/users/gizmoguy","html_url":"https://github.com/gizmoguy","followers_url":"https://api.github.com/users/gizmoguy/followers","following_url":"https://api.github.com/users/gizmoguy/following{/other_user}","gists_url":"https://api.github.com/users/gizmoguy/gists{/gist_id}","starred_url":"https://api.github.com/users/gizmoguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gizmoguy/subscriptions","organizations_url":"https://api.github.com/users/gizmoguy/orgs","repos_url":"https://api.github.com/users/gizmoguy/repos","events_url":"https://api.github.com/users/gizmoguy/events{/privacy}","received_events_url":"https://api.github.com/users/gizmoguy/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/REANNZ/faucet/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2016-06-19T23:26:14Z","updated_at":"2016-07-12T22:53:24Z","closed_at":null,"body":"At the moment we only support configuring multiple datapath elements via running separate instances of Faucet with different configuration files (on separate ports)\r\n\r\nThis makes it annoying to manage multiple OpenFlow-enabled switches since we need to assign separate TCP ports for each to connect back to our multiple Faucet instances.\r\n\r\nIn original Valve we had the ability to list multiple DPIDs in the configuration file that would be configured (with different numbers of ports and different vlan assignments).\r\n\r\nI think this change will require a change to the config file format since there doesn't appear to be an easy way to list additional datapaths in there."},"comment":{"url":"https://api.github.com/repos/REANNZ/faucet/issues/comments/232206185","html_url":"https://github.com/REANNZ/faucet/issues/112#issuecomment-232206185","issue_url":"https://api.github.com/repos/REANNZ/faucet/issues/112","id":232206185,"user":{"login":"Callum027","id":2997843,"avatar_url":"https://avatars.githubusercontent.com/u/2997843?v=3","gravatar_id":"","url":"https://api.github.com/users/Callum027","html_url":"https://github.com/Callum027","followers_url":"https://api.github.com/users/Callum027/followers","following_url":"https://api.github.com/users/Callum027/following{/other_user}","gists_url":"https://api.github.com/users/Callum027/gists{/gist_id}","starred_url":"https://api.github.com/users/Callum027/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Callum027/subscriptions","organizations_url":"https://api.github.com/users/Callum027/orgs","repos_url":"https://api.github.com/users/Callum027/repos","events_url":"https://api.github.com/users/Callum027/events{/privacy}","received_events_url":"https://api.github.com/users/Callum027/received_events","type":"User","site_admin":false},"created_at":"2016-07-12T22:53:24Z","updated_at":"2016-07-12T22:53:24Z","body":"I've made a fourth branch, [gwacter/new-config-format](https://github.com/gwacter/faucet/tree/new-config-format), to track the new configuration format. I've implemented it as discussed, so if `version` is not specified or is set to `1`, it will parse the configuration as before, and if it is set to `2`, it will use a different version of the `parse` method which parses for `dps` (but of course, will only actually use the first one).\r\n\r\nThe configuration format would look like this:\r\n```yaml\r\nversion: 2\r\n\r\ndps:\r\n    0x000000000001:\r\n        name: \"test-switch-1\"\r\n        interfaces:\r\n            1:\r\n                native_vlan: 2040\r\n                acl_in: 1\r\n    0x000000000002:\r\n        name: \"test-switch-2\"\r\n        interfaces:\r\n            1:\r\n                native_vlan: 2040\r\n                acl_in: 1\r\n\r\nvlans:\r\n    2040:\r\n        name: \"dev VLAN\"\r\n\r\nacls:\r\n    1:\r\n        - rule:\r\n            nw_dst: \"172.0.0.0/8\"\r\n            dl_type: 0x800\r\n            allow: 1\r\n\r\n        - rule:\r\n            dl_type: 0x0806\r\n            allow: 1\r\n\r\n        - rule:\r\n            nw_dst: \"10.0.0.0/16\"\r\n            dl_type: 0x800\r\n            allow: 0\r\n\r\n        - rule:\r\n```\r\nI will test that the changes work (I am at home at the moment so no testbed to play with), and then make a PR.\r\n\r\nFor the documentation, should we modify the Configuration section of `README.rst` to elaborate a bit more on the configuration format, or would you rather there be two sample configuration files, one for each version?"}}
{"actor":{"display_login":"Callum027"}}